diff --git a/www/app.js b/www/app.js index ac6e73f..314e337 100644 --- a/www/app.js +++ b/www/app.js @@ -45,69 +45,19 @@ 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) +// 获取使用智能体的对话列表(按时间倒序) +function getAgentConversationHistory(limit = 5) { + return conversations + .filter(conv => conv.agentId) // 筛选有智能体的对话 + .sort((a, b) => b.updatedAt - a.updatedAt) // 按更新时间倒序 .slice(0, limit) - .map(record => { - const agent = agents.find(a => a.id === record.agentId); - return { ...agent, ...record }; - }) - .filter(a => a.id); // 过滤掉可能被删除的智能体 + .map(conv => { + const agent = agents.find(a => a.id === conv.agentId); + return { + ...conv, + agent: agent + }; + }); } // 功能开关 @@ -136,9 +86,6 @@ document.addEventListener('DOMContentLoaded', () => { conversations = JSON.parse(saved); } - // 加载智能体使用历史 - loadAgentUsageHistory(); - // 兼容旧数据格式(chat_history) const oldHistory = localStorage.getItem('chat_history'); if (oldHistory && conversations.length === 0) { @@ -401,9 +348,9 @@ 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; + // 获取使用智能体的对话历史(最多5个) + const recentAgentConvos = getAgentConversationHistory(5); + const totalAgentConvos = conversations.filter(c => c.agentId).length; return `