Agent Loop — 一个循环就够了

⚡ "One loop & Bash is all you need" — 一个工具 + 一个循环 = 一个 Agent。

Github 原文:shareAI-lab/learn-claude-code

Harness 层: 循环 — 模型与真实世界的第一道连接。

问题

你提出了一个问题给大模型:“帮我读取下我的目录下有哪些文件,并且执行XXX.py”。OK,模型能输出一条 bash 命令,但输出完了就停了,它不会自己跑,也不会看到结果后继续推理。

当然,你可以手动跑一遍,把输出粘贴回对话框,让它接着干。下一个命令出来,你再跑一遍、再贴回去,就像在 2023 年我们是用 chat gpt 写代码一样。

每一个来回,你都在做中间层,而把它自动化,就是这一章要做的事。

解决方案

Agent Loop — 一个循环就够了

图片中的工具也只有一个 Bash 工具作为示例。

本质上也就是一个 while True 循环,模型调用工具就继续,不调用就停。整个过程只有两个信号:

信号含义循环动作
stop_reason == "tool_use"模型举手说”我要用工具”执行 → 结果喂回去 → 继续
stop_reason != "tool_use"模型说”我做完了”退出循环

工作原理

📍 原文在这里开始利用 Python 代码来讲解原理,我这里为方便,不会使用代码,只介绍思路和逻辑,不说技术,如果你对技术感兴趣,可以查看:https://github.com/shareAI-lab/learn-claude-code/blob/main/s01_agent_loop/README.md#%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86

其实这部分并不复杂,简单来说就是有一个循环,如果你稍微懂一点代码就知道就是个最基础的 if 循环。

条件判断的基准就是模型是否要求调用工具,如果要调用,那么就让模型去调用对应的工具,然后把调用工具后的结果输出后追加到用户的提问后,也就是回到最开始用户提问后交给 AI 的时候,但是这一次除了用户的问题,还多了上一次调用后 AI 调用工具后的结果,这时候再次执行之前的条件判断,如果模型认为不需要调用工具了,OK,循环结束,进入下一步骤或是直接输出。

如果文字还是不好理解,我这里用 AI 出了一个小漫画,你可以通过这种方式理解到底是怎么回事。

Agent Loop — 一个循环就够了