Levon's Blog

微信: L6241425

1. 文件写完了,Agent 却不知道

上一篇完成了 Session JSONL、上下文预算和自动 Compaction。Agent 已经能调用 read_filerun_bashwrite_file,但工具循环里还藏着一个故障窗口:

1
2
3
4
5
保存 Assistant Tool Call

执行 write_file

保存 Tool Result

假设文件已经替换成功,程序却在保存 Tool Result 前崩溃。重启后的 Session 只有 Tool Call,没有回执。Agent 无法判断工具根本没运行,还是已经运行但丢了结果。

这不是普通的 failed

1
2
failed  = 已确认工具执行失败
unknown = 无法确认副作用是否发生

如果把 unknown 当成失败并自动重跑,邮件可能发两次,付款可能扣两次,echo x >> audit.log 也会追加两行。本章要解决的就是这段空白:让工具执行留下可恢复的证据,再用证据完成原来的 Agent Turn。

阅读全文 »

1. 上下文管理

Agent 一次测试输出 10MB,一次工具轮次包含几十条消息,一个会话运行几小时后远远超过模型窗口。随后可能出现以下三个故障:

  • 日志挤掉系统指令、最近问题和相关代码;
  • 旧 Tool Call 与 Tool Result 可能在裁剪时被拆开,API 无法配对;
  • 每轮都重传巨大前缀,延迟、费用和 Prompt Cache 失效一起上升。

这三个故障指向同一条主线: 完整事实留在持久层;模型每次只看完成当前任务所需的 Prompt View。

上一课使用一个不断覆盖的 Checkpoint JSON。本课把它迁移为 append-only Session JSONL,并从 Pi、OpenClaw 与 Hermes 的当前实现中校正工具输出、Prompt View 和 Compaction 的边界。

源码结论核验于 2026-08-28:Pi e54d45d、OpenClaw 74d1852、Hermes 0abecf7。不同项目、同一项目的不同包也可能采用不同 Backend,不能只用项目名推断存储格式。

阅读全文 »

1. 从失忆现象建立模型

程序一关,先猜一下:它还能答出来吗?

1
2
3
4
5
6
7
8
9
10
11
12
第 1 轮
你:记住,部署博客前必须运行 hexo g。
Agent:好的。

第 2 轮
你:帮我修改文章。
Agent:调用工具,修改文章并回答。

关闭 Python,重新启动。

第 3 轮
你:部署前要做什么?
阅读全文 »

1. 给“缸中大脑”接上外部世界

单独看大语言模型,它很像一个“缸中大脑”:可以读懂输入并生成文本,却不会真的打开文件、访问天气接口或发送邮件。外部动作来自模型之外的程序。

这个程序通常称为 Agent Harness。它保存会话,向模型描述可用工具,执行模型请求的动作,再把环境结果送回模型。模型根据新结果决定下一步,直到任务结束。

模型可以提出“删除数据库”,却不能批准自己的请求。Harness 必须独立检查参数、权限和审批规则;提出动作的人不能同时成为授权动作的人。

1
2
3
4
5
6
7
8
9
10
用户目标

Harness 调用模型

模型选择下一步或请求工具

Harness 执行工具

环境结果回到模型
└─────────────── 循环

从工程运行时看,可以先记住四个部分:

1
2
3
4
model       判断下一步
harness 组织循环、状态与控制边界
tools 读取或改变外部世界
environment 返回文件、网页、命令等真实反馈

这是一种运行时拆法,不是行业唯一标准。规划、记忆、感知和行动则是另一种“能力视角”,用来描述 Agent 表现出了什么。一个最小 Agent 未必有独立规划器、长期记忆或反思模块,但一定要有人组织模型与环境之间的循环。Anthropic 对 Agent 运行时的拆解

阅读全文 »

1. 常驻

  • Ponytail少写。 让 Agent 先复用现有代码、标准库和平台能力,少造抽象。
  • Agent Reach联网。 统一搜索网页、GitHub、社交平台和视频字幕。
  • Matt Pocock Skills管流程。 Engineering 负责澄清、诊断、评审和 TDD;Productivity 负责拷问、交接和 Agent 文档。
阅读全文 »
0%