diff --git a/www/app.js b/www/app.js index 39216eb..1d196f6 100644 --- a/www/app.js +++ b/www/app.js @@ -45,6 +45,71 @@ let agents = [ let currentAgent = null; // 当前选中的智能体 +// 智能体使用历史记录 +let agentUsageHistory = []; + +// 加载智能体使用历史 +function loadAgentUsageHistory() { + const saved = localStorage.getItem('agentUsageHistory'); + if (saved) { + agentUsageHistory = JSON.parse(saved); + } +} + +// 保存智能体使用历史 +function saveAgentUsageHistory() { + localStorage.setItem('agentUsageHistory', JSON.stringify(agentUsageHistory)); +} + +// 记录智能体使用 +function recordAgentUsage(agentId) { + const record = agentUsageHistory.find(r => r.agentId === agentId); + if (record) { + record.usageCount++; + record.lastUsedAt = Date.now(); + } else { + agentUsageHistory.push({ + agentId: agentId, + usageCount: 1, + lastUsedAt: Date.now() + }); + } + saveAgentUsageHistory(); +} + +// 格式化使用时间 +function formatUsageTime(timestamp) { + const now = Date.now(); + const diff = now - timestamp; + + const minute = 60 * 1000; + const hour = 60 * minute; + const day = 24 * hour; + const week = 7 * day; + const month = 30 * day; + const year = 365 * day; + + if (diff < minute) return '刚刚'; + if (diff < hour) return Math.floor(diff / minute) + '分钟前'; + if (diff < day) return Math.floor(diff / hour) + '小时前'; + if (diff < week) return Math.floor(diff / day) + '天前'; + if (diff < month) return Math.floor(diff / week) + '周前'; + if (diff < year) return Math.floor(diff / month) + '月前'; + return Math.floor(diff / year) + '年前'; +} + +// 获取最近使用的智能体(最多5个) +function getRecentUsedAgents(limit = 5) { + return agentUsageHistory + .sort((a, b) => b.lastUsedAt - a.lastUsedAt) + .slice(0, limit) + .map(record => { + const agent = agents.find(a => a.id === record.agentId); + return { ...agent, ...record }; + }) + .filter(a => a.id); // 过滤掉可能被删除的智能体 +} + // 功能开关 let enableThinking = false; // 深度思考 let enableSearch = false; // 联网搜索 @@ -71,6 +136,9 @@ document.addEventListener('DOMContentLoaded', () => { conversations = JSON.parse(saved); } + // 加载智能体使用历史 + loadAgentUsageHistory(); + // 兼容旧数据格式(chat_history) const oldHistory = localStorage.getItem('chat_history'); if (oldHistory && conversations.length === 0) { @@ -333,6 +401,10 @@ function renderAgentsPage() { const studyAgents = agents.filter(a => a.category === 'study'); const lifeAgents = agents.filter(a => a.category === 'life'); + // 获取最近使用的智能体(最多5个) + const recentAgents = getRecentUsedAgents(5); + const totalRecentCount = agentUsageHistory.length; + return `