stoneskin (Mr. Sun)

Personal homepage of Mr Sun - AI Solutions Architect, Tech Lead & AWS Cloud Specialist: resume, selected projects, and teaching archive

namiai《从零手写 Agent》学习笔记(EP01–07)

← 返回目录

Stone 的学习笔记,2026-11-06。

说明:以下是我读完 EP01–07 后的个人理解与延伸,不是 namiai 原文的内容。原文导读见 《从零手写 Agent》导读。记录于 2026-11-06。

一、最小循环就是一个 double loop

外层给 LLM 输入 prompt,内层调用工具。当模型不再请求任何工具,它的结果就是最后的输出。

模型是没有状态的,所以每一次输入应该是前面的历史,加上人或工具的反馈。

有多少工具可以用,应该在系统 Prompt 里说明,或者用 MCP 调。skill 就是一段复杂的 prompt,有名字与介绍,这个要每次注入(名字与介绍),具体内容按需加载。

二、上下文:我的 quote-ai 做法

我第一次写的 AI 应用叫 quote-ai,主要是把人的语言转化为固定格式的 API 输入(JSON 格式)。我当时就觉得把所有的历史都作为上下文放进去特别傻,所以我的上下文就是:把没有完成的固定格式与用户的语言输入,让 AI 来填表;没有填完的,让 AI 问用户接着输入。

所以我的 prompt 就特别小:除了系统提示词,就是没有完成的输入表格,加上用户的口头输入语言。

作为一种特定任务的小 Agent 或工具,这种设计就足够了。不过这是任务形状固定才成立;通用任务形状不固定,上下文迟早会爆掉,还是得有压缩或摘要的策略。

三、Agent 的权限

我认为 Agent 能自己写工具、也能改 skill 是非常重要的,不然只能做特定的任务。所以不同类型的 agent 的 permission 是不一样的。

顺带说明:namiai 的 EP05 里 skill 是只读的,让 agent 自己改 skill 是我自己的主张,不是原文的说法。

权限比较大的 agent(比如 OpenClaw)最好放在沙盒里面。

一个新 Agent 刚开始用的时候可以少给一些权限,等慢慢用熟、框架成熟以后,权限可适当放宽——就像我们用一个新雇员,有一个适应与培训的过程,权限也是慢慢放给他的。

权限不光不能只靠 prompt,要靠代码与框架、电脑及网络 Permission 的设置。

如果需要用户执行的审批,可以这样:用户的审批是软件框架里的硬审批,点击以后就执行命令,不需要再回到 Agent。

四、接入聊天软件与 WorkBuddy 的界面

接入聊天软件,不同软件有不同的解法。架构应该有专门一层用于跟用户和软件交流,包括 authentication。

不同聊天窗口应有自己的 session 与工作区,也是挺好的设计。

我在考虑 WorkBuddy 外面的用户界面会是怎样:除了 command line,可以写个 web 界面,也可以写个聊天框,最好能接入团队聊天工具。

五、定时任务与心跳、无人值守

在我看来,定时任务与心跳是一回事儿:有结果就输出结果,没有结果就静默。大模型应该足够聪明,知道什么需要知会我、什么不用烦我;返回固定格式代码以便外面的框架识别处理。

无人值守的任务的确要事先给权限。如果发生需要额外权限的事情,安全起见最好等人上线审,因为这个说明这个任务超出了原来无人值守任务的范围。

六、做 AI 没有标准答案

我认为怎样做 AI 没有标准答案,不要让别人的做法限制住自己。最合适的办法,就是最好的办法。


补充(对照验收)