打开网易新闻 查看精彩图片

去年有个数据挺有意思:GitHub Copilot用户平均每次会话要手动复制粘贴7.3次。不是敲代码,是把AI生成的命令贴进终端,再把报错贴回去——人类成了AI的"人肉接口"。

Anthropic最近放了个实验项目,用20行Swift代码解决了这个问题。不是优化提示词,不是换更大的模型,而是造了一个"代理循环(Agent Loop)"——让AI能自己调用工具、读取结果、决定下一步,直到任务完成。

这套机制的核心逻辑简单到离谱:用户说一句话,AI自己跑十步。

01 | 没有循环之前,人类是"人肉胶水"

01 | 没有循环之前,人类是"人肉胶水"

想象一下这个场景:你让Claude"创建一个新文件"。没有代理循环时,对话是这样的——

AI说"请运行 `touch main.swift`"。你复制命令,打开终端,粘贴,回车。然后把输出(空)复制回来,告诉AI"执行成功"。AI说"现在写入内容",给你一段代码。你再复制,打开编辑器,粘贴,保存。报错。你把报错贴回去……

十次工具调用,十次人工往返。Anthropic的工程师在文档里写得很直白:「We are the loop.」我们是那个循环。

这像极了早期的汽车——每开一段,司机得下车摇手柄发动引擎。不是车不会跑,是缺一个自动点火装置。

02 | 20行代码的"自动点火"装置

02 | 20行代码的"自动点火"装置

代理循环的结构用一张图就能说明白:

用户输入 → 大模型推理 → 调用工具 → 工具返回结果 → 模型判断继续/停止。循环直到模型自己说"搞定了"。

打开网易新闻 查看精彩图片

Anthropic的实现分两层。外层是REPL(交互式命令行),负责读用户输入、等结果、再读下一条。内层才是代理循环——真正的自动化引擎。

外层代码长这样:

while true { 读一行输入 → 交给agent.run() → 打印结果 → 继续循环 }

内层的agent.run()才是精华。它调用API,检查响应:如果模型想调用工具,就执行工具、把结果塞回去、再调API;如果模型说"我完成了",就退出循环。一个exit_reason字段控制全部流程。

整个内层循环的核心逻辑,Swift代码不到20行。不是演示版,是生产可用的骨架。

03 | 为什么偏偏是Swift?

03 | 为什么偏偏是Swift?

这里有个反直觉的选择。AI基础设施领域,Python是默认选项。但Anthropic选了Swift——苹果生态的原生语言。

原因藏在细节里。Swift的async/await让并发工具调用变得干净,类型安全在调试时省掉大量"字符串拼错"的坑,而且最终产物是单个二进制文件,部署比Python环境简单一个数量级。

更关键的是,这个项目叫"SwiftClaudeCode"——目标用户是苹果开发者。用Swift写代理,意味着工具调用可以直接操作Xcode项目、调用xcodebuild、解析Swift语法树,不需要跨语言胶水。

这不是技术炫技,是场景贴合。就像你不会用卡车送外卖,尽管卡车更能装。

04 | 从"建议者"到"执行者",边界在哪?

04 | 从"建议者"到"执行者",边界在哪?

打开网易新闻 查看精彩图片

代理循环把AI从"顾问"变成了"承包商"。但这也带来新问题:权限边界。

Anthropic的设计很克制。工具列表是白名单制的——模型只能调用预定义的函数,不能任意执行shell命令。每次工具调用前,系统会打印"正在运行:xxx",让用户看见AI在干什么。

更隐蔽的安全机制在循环条件里。模型必须通过特定的stop_reason才能退出,不能假装完成来逃避检查。工具执行超时、返回错误码、输出异常长度,都会触发中断。

这些不是事后补丁,是架构层面的设计。Anthropic的工程师显然吃过亏:「给AI一把锤子之前,先装好安全绳。」

05 | 20行代码的行业涟漪

05 | 20行代码的行业涟漪

这个项目开源在GitHub,标签叫"01-agent-loop"。数字01暗示这只是系列的第一步。

但它的影响已经溢出技术圈。Cursor、Windsurf、Devin这些AI编码工具,底层都是类似的循环架构。区别在于:别人封装成黑箱,Anthropic把骨架摊开给你看。

对于开发者,这意味着可以自定义工具集——让AI操作内部CI系统、查询私有API、对接公司知识库。对于产品经理,这意味着"AI能做什么"的边界从模型能力变成了工程想象力。

一个具体案例:有团队在这20行基础上,加了本地文件系统监控工具。AI现在能"感知"代码变化——你保存文件,它自动检查语法、跑测试、提出修复建议。循环从"用户驱动"变成了"事件驱动"。

这20行代码像乐高基础板。本身不起眼,但决定了上面能搭什么。

GitHub仓库的README最后有个TODO列表:多轮对话状态管理、工具并行执行、人类介入确认机制。都是已知问题,都有明确方向。

最底下一条备注挺有意思:「Currently, the agent will happily rm -rf your project if you ask it to. Use at your own risk.」