AI 上下文工程

长期记忆系统

反思

  • 元提示(框架):
    • 向 llm 提问,让其回顾失败,生成摘要避免未来犯错

观察

  • 原始日志收集
  • 合成日志
    • 让 llm 总结出新洞察

选择

  • 工具集
    • 使用 RAG 建立工具索引,这样子可以把最相关的 n 个加载进上下文而无需全部加载
  • 固定+遮蔽:
    • 通过复用 cv 缓存来加速
  • 混合检索
    • 多路召回:向量、关键词、知识图谱,多方面去获取信息
    • Agentic 探索: agent 在循环中,主动使用检索工具进行多步推理
    • 重排序:把召回的数据进行二次总结,用更加精细的规则或模型去提高信噪比

压缩

  • 上下文总结
    • LLM 提炼
      • 总结对话历史(提炼成任务概览)
      • 对海量的 API 返回结果总结成摘要
  • 上下文裁剪
    • 丢弃信息
      • 滑动窗口(只保留最近n轮对话)
      • 用轻量级的模型进行智能裁剪

微调 vs 上下文工程

  • Manus 团队优先上下文工程发展

kv 缓存设计

  • kv 缓存工作机制
    • 前缀匹配
  • 提高缓存命中率的工程原则
    • 选用 vllm 这种能支持 kv 缓存功能的现代推理框架
    • 缓存只存于同一个推理进程,所以需要用唯一标识来确保同一个会话请求打到同一个进程
    • 保持前缀稳定
    • 上下文只追加,不修改或删除中间部分
    • 如果不支持自动前缀匹配的框架,需要手动插入断电来进行缓存

工具选择

响应预填充

通过特定的前缀标签,为模型提前提供模式信号,引导他提前激活相应的模式

img

专注力

todo.md

  • 通过 write 工具在两个关键时机更新 todo.md
    • 复杂任务分解后写入
    • 完成每个子任务就覆写最新进度

反直觉

将错误日志保留在上下文中,降低其重复犯错可能

多 Agent 协作

  • 通信
    • 上下文不共享,子 agent 只处理原子性子任务
  • 共享上下文
    • 类似于 fork
    • 子 agent 拥有主 agent 全部历史+子 agent 新 system prompt

三层工具

  • 极少数、固定的原子函数
  • 能力扩展,通过第一层的原子函数(execute_shell)调用获得外部动态工具箱
  • 组合使用第一层和第二层编写并执行脚本

处理大型工具输出

  • 创建子 agent 去提炼,只返回固定的、结构化的结果。(就是一层层套娃,直到套娃到原子行为)