小功能添加,模型切换问题修复

This commit is contained in:
2026-04-13 19:34:03 +08:00
parent c435ab15cf
commit f6a43302d2
7 changed files with 259 additions and 36 deletions

View File

@@ -91,6 +91,51 @@
- **chosen_alternative**: 当前资源库使用手动标签 + Prompt 文本搜索
- **deferred_reason**: 当前阶段资源量少,手动管理足够;等资源积累到一定量级后再引入自动化
### [context-window-management] 对话上下文管理Token 预算 + 滑动窗口 + 摘要)
- **status**: deferred
- **tags**: 上下文管理, token, 滑动窗口, 对话摘要, agent loop, 长对话
- **recorded**: 2026-04-13
- **source_chat**: [Art Agent 上下文与记忆体系讨论](memory-architecture-discussion)
- **prerequisite**: 无(随时可做,优先级高于长期记忆)
- **related_files**:
- art-agent/backend/app/agent/loop.py
- art-agent/frontend/src/lib/api.ts
- art-agent/frontend/src/lib/store.ts
- **context**: |
当前 Art Agent 对话采用"全量透传":前端把完整 messages 发给后端,后端原样拼接传给 LLM
没有 token 计数、截断或摘要。长对话会导致上下文超限、费用线性增长。
实施方案(自建,无需外部依赖):
1. Token 计数:用 tiktoken 库在构建 api_messages 时计数
2. 滑动窗口:超过预算时截断最早的消息
3. 对话摘要:被截断的消息先调 LLM 生成摘要,作为压缩上下文保留
预估工作量 1-2 天,是记忆体系的第一层基础。
- **chosen_alternative**: 当前全量透传,依赖模型自身的上下文窗口上限
- **deferred_reason**: 当前探索期对话通常较短,暂未触及上限;但随着迭代使用会很快需要
### [mem0-long-term-memory] 引入 Mem0 作为长期记忆层
- **status**: deferred
- **tags**: 长期记忆, Mem0, 用户偏好, 语义检索, 事实提取, memory layer
- **recorded**: 2026-04-13
- **source_chat**: [Art Agent 上下文与记忆体系讨论](memory-architecture-discussion)
- **prerequisite**: 第一层上下文管理context-window-management完成后
- **related_files**:
- art-agent/backend/app/agent/loop.py
- art-agent/backend/app/config.py
- **context**: |
引入 Mem0 开源版Apache 2.0)作为 Art Agent 的跨会话长期记忆层:
- Mem0 是"bolt-on"设计,保留自己的 agent loop只外挂 memory API
- 核心 APImemory.add()(存储+自动事实提取)+ memory.search()(语义检索)
- 自部署pip install mem0ai + Qdrant 向量库LLM 用 DeepSeek 降成本
- 记忆范围:用户风格偏好、历史生成反馈、常用参数等
- 与自建 Rules/Docs 静态知识系统互补Mem0 负责动态记忆Rules 负责预置知识
技术选型对比(本次讨论结论):
- Letta 不适合:它是完整 agent runtime不是 memory layer需要替换现有 loop
- Zep 可行但偏重:时序知识图谱能力强但集成复杂度更高
- Mem0 最适合:设计哲学完全对口"已有 agent + 外挂 memory",集成最简(~20 行代码)
预估工作量 3-5 天(含 Mem0 部署 + 集成 + extraction prompt 调优)。
- **chosen_alternative**: 当前无长期记忆,每次会话从零开始
- **deferred_reason**: 探索期优先做第一层上下文管理;长期记忆在用户量和使用频率增长后再引入
---
## Completed / Cancelled Items