Token 效率
很多编程 Agent 会把旧对话、旧工具输出、旧的仓库猜测慢慢塞满 prompt。March 走相反路线:每个 Agent Run 都应该从小而干净的上下文开始,只重建当前任务需要的事实。
text
上一个 Agent Run
→ 保留用户问题和最终回答
→ 丢掉中间工具噪音
→ 下一个 Agent Run 从仓库重新读取当前事实核心想法
仓库本来就是项目数据库。prompt 不需要变成第二份会过期的仓库副本。
March 保留稳定指令和近期对话,然后只在相关时读取文件、命令输出、记忆笔记和浏览器状态。
哪些东西会变小
March 尽量不跨 Agent Run 携带这些内容:
- 只在调试中有用的大段命令输出
- 中间失败尝试
- 可能已经过期的文件快照
- 只需要短 hint 时的完整记忆正文
- 和下一件事无关的旧工具结果
这样普通模型调用会更接近模型真正好用的工作区间。
哪些东西仍然持久保存
Token 效率不是失忆。March 把长期状态放在比巨大 prompt 更容易检查的位置:
- 仓库里的源码文件
AGENTS.md中的项目指令- 保存长期偏好和决策的 Markdown 记忆文件
- 近期用户和助手消息的 session history
- 调试上下文组装时可选的 context dump
为什么不把一切都总结掉
总结有用,但总结不是事实来源。总结可能保留了错误细节,漏掉关键细节,或者继续描述已经变了的代码。
March 把总结和 recall hint 当作指针。需要准确时,它回到真实文件、命令输出或记忆笔记。
实际效果
对用户来说,效果很简单:可以继续工作,而不用让 agent 淹没在昨天的终端输出里。下一件事需要旧决策时,March 可以召回或打开它;下一件事需要当前代码时,March 读取当前代码。