最佳实践-为什么不应该使用Openclaw/Hermes进行开发

💸 为什么 Auto-Agent(自主智能体)像“Token 碎纸机”?

在使用 Hermes Agent、OpenClaw 等自主代理或自动化工具进行开发时,你可能会发现 Token 消耗极快。这并不是你的错觉,也不是代码写错了,而是由 Auto-Agent 架构的底层逻辑 决定的。这类工具在开发和运行阶段,存在几个天然的“Token 碎纸机”机制。

以下是核心原因的深度剖析:


1. 恐怖的“上下文滚雪球”效应 (Context Accumulation)

Auto-Agent 核心的运作方式是 ReAct 框架:

$$\text{思考} \rightarrow \text{行动} \rightarrow \text{观察} \rightarrow \text{再思考}$$

随着任务推移,其上下文会呈指数级或线性堆叠:

  • 第 1 轮:Prompt + 任务目标 $\rightarrow$ 消耗 $2\text{k}$ Token
  • 第 2 轮:Prompt + 任务目标 + 第 1 轮思考与执行结果(如读文件、查数据库) $\rightarrow$ 消耗 $4\text{k}$ Token
  • 第 3 轮:Prompt + 任务目标 + 前两轮所有历史和报错信息 $\rightarrow$ 消耗 $8\text{k}$ Token

💥 核心痛点:Agent 每尝试修复一个 Bug 或多走一步,都会把前面所有的对话历史、代码上下文和控制台报错原封不动地叠加塞回给大模型。这种上下文堆叠是烧 Token 的头号杀手。


2. System Prompt(系统提示词)过于臃肿

像 OpenClaw 和 Hermes 这种为了保证高成功率、能进行复杂工具调用(Function Calling)的 Agent,其背后的 System Prompt 极其庞大。里面包含了:

  • 严密的逻辑框架与角色设定
  • 各种异常处理守则
  • 输出格式规范(例如强制要求 JSON 且不能出错)
  • 每一个可调用工具(API、文件读写、执行 Shell 命令行)的定义说明

📌 结果:哪怕你只是让它修改一行代码,只要产生一次交互(哪怕模型只回答一个词),这几千甚至上万 Token 的 System Prompt 都要作为输入重新计费一次(在未开启 Context Caching 的情况下)。


3. “反思”与“自我纠错”机制的代价

Hermes 等 Agent 之所以显得聪明,是因为它拥有一套 Self-Reflection(自我反思) 与纠错闭环:

  1. 编写代码:Agent 完成代码修改。
  2. 运行测试:自动调用编译器或运行环境执行代码。
  3. 捕获报错:将报错信息吞入上下文。
  4. 自我讨论:“哦,看来这里类型不对,我得换个方法…”

🔍 隐形消耗:用户表面上只看到了最终改好的那一行代码,但在后台,Agent 可能已经与背后的 Claude 或 GPT 悄悄交互了 $5 \sim 10$ 个回合,且每一回合都是全量上下文的输入。


4. 代码文件全量读取 (Full File Injection)

在执行开发任务时,Agent 为了理解依赖关系,往往需要读取整个文件甚至多个关联文件的内容:

  • 输入端 (Input):如果你没有做精细的路径裁剪,Agent 可能会把整段文件的代码都塞进 Prompt 里面。
  • 输出端 (Output):一旦它决定“重写这个函数”,它在 Output 侧又会把整段代码重新吐出来。

⚠️ 高昂代价:Output Token 的价格通常是 Input Token 的 $3$ 倍左右,反复吐出大段代码会让账单瞬间飙升。