AIHero
    阅读约 4 分钟

    为什么 Anthropic Ralph 插件很糟糕(请改用 Bash 循环)

    了解 Anthropic Ralph 插件为何会填满上下文窗口、降低 AI 性能,以及 Bash 循环为何能让 Claude 留在智能区。

    Matt Pocock
    Matt Pocock
    本页目录

    Ralph 是一种基于连续 AI 智能体循环的开发方法:用简单 Bash 脚本反复向 Claude 提交提示词文件,让它迭代改进工作直到完成。

    有关 Ralph 实现的完整指南,请查看 入门指南.

    什么是 Anthropic 插件?

    Anthropic 为 Claude Code 发布了官方 Ralph 插件,用于自动执行这个循环。

    无需手动多次运行脚本,只要使用类似以下命令运行一次插件:

    /ralph-loop "Build a REST API for todos. Requirements: CRUD operations, input validation, tests. Output <promise>COMPLETE</promise> when done." --completion-promise "COMPLETE" --max-iterations 50

    随后插件会自动处理循环。无需编写 Bash 脚本,也无需反复运行命令。插件位于 Claude Code 内部,拦截退出尝试,并自动把提示词重新送入会话。

    表面看来,这很完美:Ralph 被自动化,你无需再操心。

    但它的实现方式存在一个根本问题。

    Anthropic Ralph 插件的问题

    要理解插件为何失败,首先要理解 LLM 在负载下如何工作。

    随着 LLM 接收更多 token,token 之间的关系会按平方增长。这意味着输入的 token 越多,LLM 的负载增长越快;每增加一个 token,模型处理信息并作出良好决策都会更困难。

    实际上,每个 LLM 都有 智能区 以及 迟钝区.

    区域位置表现
    智能区上下文前 40%敏锐、有能力、决策良好
    迟钝区上下文后 60%混乱、犯错、性能下降

    上下文使用量约达到 40% 时,LLM 开始进入 迟钝区。人们会争论边界的准确位置,但都同意它确实存在。

    为什么 Bash 循环有效

    Ralph 会让 AI 留在智能区。如何做到? Ralph 每次迭代都使用全新的上下文窗口.

    运行 Bash 循环时,Claude 从空上下文开始。输入 PRD 和进度文件,Claude 处理一项任务,然后脚本退出。

    再次运行时,Claude 会获得另一个全新的 上下文窗口。PRD 和进度文件再次进入上下文,Claude 通过 Git 历史和文件修改读取先前成果,选择下一项任务并实现。

    上下文窗口不会堆满杂物,AI 始终在智能区工作,性能不会退化。

    The Bash Loop

    每个阶段都会重置上下文,让 LLM 保持在表现最佳的智能区。

    插件如何破坏这一点

    Anthropic 插件则把一切都留在单个 Claude Code 会话中。

    插件不会退出并重启,而是使用 stop hook 拦截 Claude 的退出尝试,再把相同提示词送回会话。整个循环都发生在同一会话中。

    这意味着:

    • 迭代 1:Claude 读取 PRD、实现任务 1,上下文占用约 20%
    • 迭代 2:Claude 看到先前工作、实现任务 2,上下文占用约 35%
    • 迭代 3:Claude 看到先前工作和上次迭代、实现任务 3,上下文占用约 50%,已经进入迟钝区。

    每次迭代都会进一步填满上下文窗口。插件不断积累会话历史、先前尝试和上下文。经过 3~4 次迭代,AI 就会完全在迟钝区工作。

    换句话说,插件 guarantees 会确保你填满智能区并进入迟钝区,从根本上破坏 Ralph 原本有效的原因。

    Anthropic's Ralph Plugin

    插件把所有迭代留在同一会话中,导致上下文逐渐填满,性能随时间下降。

    解决方案:继续使用 Bash 循环

    如果希望 Ralph 真正有效,请使用 Bash 循环而不是插件。以下是一些资源:

    1. 读取 the 入门指南 获取详细实现建议
    2. 通过以下 11 条技巧
    3. 学习如何流式查看 AFK Claude Code 结果 here

    Ralph 有效,正是因为它极度简单。请保持这种简单。