mirror of
https://github.com/aiclientproxy/proxycast.git
synced 2026-09-24 23:10:56 +08:00
4.0 KiB
4.0 KiB
P0: 上下文管理升级实施文档
当前状态分析
代码结构
-
session_context_service.rs (src-tauri/crates/services/src/)
- 负责 general 模式的上下文管理
- 使用本地关键词提取生成摘要(第 355-463 行)
- 支持配置:max_messages、max_characters、summary_threshold
-
SessionConfigBuilder (src-tauri/crates/agent/src/aster_state_support.rs)
- 用于构建 aster Agent 的会话配置
- 当前字段:id、max_turns、system_prompt、include_context_trace
- 缺少上下文压缩相关配置
-
AsterAgentWrapper (src-tauri/src/agent/aster_agent.rs)
- 在第 48-50 行创建 SessionConfig
- 只设置了
include_context_trace(true)
问题识别
-
双轨制:
- general 模式使用 session_context_service.rs
- agent 模式使用 aster 框架
- 两者的上下文管理策略不统一
-
摘要质量差:
- session_context_service.rs 使用硬编码关键词匹配
- 无法理解语义,摘要质量低
-
aster 能力未接入:
- 不清楚 aster 框架是否内置上下文压缩
- SessionConfig 未暴露相关配置
实施策略
策略 A:利用 aster 内置能力(优先)
前提:aster 框架已内置上下文压缩和 AI 摘要
步骤:
- 研究 aster 框架文档,确认内置能力
- 扩展 SessionConfigBuilder,暴露配置接口
- 在 AsterAgentWrapper 中配置上下文压缩参数
- 将 general 模式迁移到 aster 框架(与 P1 任务关联)
优点:
- 复用 aster 的成熟实现
- 统一 agent 和 general 模式的上下文管理
- 减少维护成本
缺点:
- 依赖 aster 框架的能力
- 需要等待 P1 任务完成(general 模式迁移)
策略 B:在 Lime 层实现(备选)
前提:aster 框架不支持或支持不足
步骤:
- 改造 session_context_service.rs,实现 AI 摘要
- 创建 LLM Provider 抽象,调用 AI 模型生成摘要
- 实现渐进式工具响应移除策略
- 为 aster Agent 创建类似的上下文管理服务
优点:
- 完全可控,不依赖外部框架
- 可以针对 Lime 的场景优化
缺点:
- 需要自己实现和维护
- 代码量大,开发周期长
- 可能与 aster 框架的内置能力冲突
下一步行动
立即执行
-
研究 aster 框架:
- 查看 aster-rust GitHub 仓库文档
- 搜索 context、compression、summary 相关代码
- 确认是否有内置的上下文压缩能力
-
决策路径:
- 如果 aster 有内置能力 → 采用策略 A
- 如果 aster 没有或不足 → 采用策略 B
待确认问题
- aster 框架的 SessionConfig 支持哪些字段?
- aster 是否有 context_mgmt 模块?(研究报告提到)
- aster 的 AI 摘要是如何实现的?
- aster 的渐进式工具响应移除是如何配置的?
验证计划
单元测试
- 测试 AI 摘要生成逻辑
- 测试摘要缓存机制
- 测试降级到本地摘要的逻辑
集成测试
- 发起 20+ 轮长对话
- 验证 AI 摘要在 80% token 使用率时触发
- 对比 AI 摘要与本地摘要的质量
- 验证工具响应的渐进式移除
性能测试
- 测试摘要生成的延迟
- 评估 API 调用成本
- 测试缓存命中率
风险与缓解
风险 1:aster 框架能力不足
缓解:准备策略 B 作为备选方案
风险 2:AI 摘要成本过高
缓解:
- 实现智能缓存策略
- 提供本地摘要作为降级方案
- 允许用户配置是否启用 AI 摘要
风险 3:与 P1 任务的依赖关系
缓解:
- P0 和 P1 可以并行推进
- P0 先在 agent 模式验证,P1 完成后再统一
参考资料
- 研究报告:Lime AI Agent 改进研究报告
- aster-rust GitHub: https://github.com/astercloud/aster-rust
- 相关文件:
- src-tauri/crates/services/src/session_context_service.rs
- src-tauri/crates/agent/src/aster_state_support.rs
- src-tauri/src/agent/aster_agent.rs