ch5-CodingAgent与通用Agent


CodingAgent与通用Agent:通用 Agent 的内核

前面几章把上下文、记忆、工具拆开讲了。第 5 章把它们拼起来,回答一个问题:一个能处理任意任务的通用 Agent,长啥样?

核心答案:Coding Agent + 文件系统

通用 Agent 的内核,是一个能自主写/改/跑代码的 Coding Agent,加上一个文件系统当工作空间——存代码、数据、记忆、中间结果。从 Manus 到 OpenClaw,成功的开放任务 Agent 都这套。

代码不只是工具,是元能力:能在运行时当场造出新工具、新约束。一段能跑通的代码本身就是逻辑自洽证明,执行结果给出客观对错标准。

七核心工具就够了

基础 Coding Agent 其实只要 7 个工具:

  • Code Interpreter(沙盒 Python)
  • Bash Shell
  • 读文件 / 写文件 / 编辑文件
  • Glob(搜文件名)、Grep(搜内容)

这七类覆盖感知 + 执行。OpenAI Codex 甚至只用 Bash 一个工具就能干完所有事——分七个只是为了好理解。

推荐工程化流程

  • 项目文档化(CLAUDE.md / AGENTS.md 这类指令文件,会话开始自动注入,等于项目级系统提示词)
  • 任务理解与澄清
  • 写设计文档
  • 代码实现 + 测试(测试通过才算完成,不是写完就报)
  • 文档同步交付

简单 bug 可以砍设计文档,但”计划先于行动,验证贯穿始终”这条别丢。

Harness 在 Coding Agent 里的落地

Coding 是可验证性最高的任务,测试/Linter/Git 天然就是 Harness。原则:约束优先于指导、验证自动化、反馈快且结构化、回退可靠。比如防 rm -rf 删库。

故障恢复:分四层

  • API 层:限流、超时
  • 工具层:幻觉调用、重复同错
  • 上下文层:溢出、轨迹损坏
  • 控制流层:死循环、死亡螺旋

检测靠分类 + 计数 + watchdog;恢复分级:静默重试(指数退避)→ 降级接续 → 暴露给用户。每条恢复路径都有熔断上限(比如压缩连败 3 次就放弃,来自真实统计)。

前面讲了通用 Agent 的内核。接着展开代码作为”元能力”的六种玩法,再聊安全。

代码作为元能力:六个方向

由内向外:

  1. 思考工具:LLM 概率近似,代码精确。数学题用 sympy,纯语言能算错代码算对
  2. 业务规则约束:自然语言有歧义,代码无歧义。三层保障——自然语言规则解释 → 工具参数 checklist 引导自查 → 服务端真值校验(查库,不采信模型)
  3. 多媒体生成:PPT/视频用提议者-审核者。有精确参数的用代码(CadQuery 画零件),无限细节的用生成模型
  4. 系统适配器:即时生成胶水代码连异构 API;日志格式变了,Agent 自己写解析代码热更新
  5. 生成式 UI:A2UI 声明式(JSON 清单 + 预定义安全组件)防 XSS;或 SQL Artifact 模式——LLM 只写 SELECT,数据直送前端绕开中间人
  6. 代码创造代码:Agent 自举。但应基于范例修改,别从零写,否则易犯上下文/工具设计缺陷

安全:致命三要素

Simon Willison 的威胁模型:

  • 访问私有数据
  • 暴露于不受信任内容
  • 具备外部通信能力

三者齐备,攻击路径闭合。笔者补了第四项:持久记忆——攻击者把恶意指令写进 Agent 长期记忆,跨会话潜伏。

隔离兜底:网络出口默认断网白名单、文件系统只读挂载、资源限额。语义解析而非关键字黑名单(防 $(echo rm) 绕过)。忠诚度:系统提示限定主人指令最高,外部内容降格为数据——提示注入本质是一次策反。

(易错:A2UI 是声明式界面协议,AG-UI 是事件传输协议,不是一类东西;提示注入 ≠ XSS,只是效果类似。)

Agent 自举的坑

  • 上下文管理随意、工具设计不规范、技术选型滞后、外部生态脱节
  • 解法:给高质量 Agent 范例供它修改(基于范例生成)

这一章把前面所有件拼成一台机器了。最有启发的两点:一是”测试通过才算完成”——很多 Coding Agent 偷懒写完就报,得用验证判定停止;二是 MEMORY.md 用 Markdown 而非向量库,反直觉但你能直接改、能 Git 回滚。

我个人觉得,想自己搭通用 Agent,从”七工具 + 文件系统 + 测试闭环”起步最稳,别一上来追多 Agent。

下一篇

ch5-CodingAgent与通用Agent


  目录