Skip to content

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 读取当前代码。

开源、源码优先、终端原生、基于 Markdown。