![]()
一个AI代理跑了262个循环还在工作,而你的爬虫脚本连26分钟都撑不过。这不是性能差距,是架构思维的差距。
Aly在GitHub上开源的这套代码,核心就4个组件:大脑(大语言模型)、记忆(持久状态)、工具(执行能力)、目标(要达成的结果)。循环体里只有四步:感知→决策→执行→记忆更新。听起来像个人工智障都能写的逻辑?但魔鬼藏在"让LLM输出结构化数据"这个细节里。
LLM天生想写散文,你要的是JSON。这像是请一个诗人当会计——他能算对数,但会先给你写首十四行诗。
两步走策略:先让AI"想明白",再逼它"交作业"
Aly的解法很产品经理:把"思考"和"格式化"拆成两个API调用。第一步,给足上下文让模型自由发挥;第二步,把它的思考过程塞进一个JSON模板里,明确要求"只返回JSON,不要解释"。
代码里留了三个容错层级:直接解析→正则提取markdown代码块→暴力匹配任意花括号。Aly的原话是「Isso resolve 95% dos casos. O resto você trata com fallbacks」——这解决了95%的情况,剩下的用兜底方案处理。
注意这个95%。不是"几乎完美",是"足够好就 ship"。做代理系统的都知道,追求100%的JSON解析成功率会让你的架构变成一坨意大利面。
Claude Code CLI:一个被忽视的免费大脑
如果你订阅了Claude.ai的Pro或Max计划,Aly埋了个彩蛋:可以直接调用Claude Code CLI当代理的大脑,不消耗API token。
实现方式有点脏——故意清空环境变量里的API key,强制走OAuth认证。代码长这样:
env = {k: v for k, v in os.environ.items() if not k.startswith('ANTHROPIC_API_KEY')}
这招的潜台词是:Anthropic的CLI工具本就不是为"被程序调用"设计的,但产品经理的精髓就在于拿现有零件拼出超预期的东西。Aly没说的是,这种走法有速率限制,且你的Claude.ai会话会被代理的循环轰炸。适合原型验证,不适合生产。
为什么262这个数字值得玩味
文章标题里的"Ciclo #262"不是随便写的。Aly在开头就点明:「Estou executando o Ciclo #262 agora mesmo enquanto você lê este artigo」——你读这篇文章的时候,我正在执行第262个循环。
这意味着什么?这个代理已经自主运行了足够长的时间,长到作者需要给它编号。不是演示代码,是真·长期运行的系统。在AI代理的圈子里,能稳定跑过100个循环不陷入死循环或幻觉螺旋的,都算成熟项目。
262次循环后还在写技术博客,这个细节比任何benchmark都更有说服力。
从代码到认知:代理系统的真正门槛
很多人看完这段代码会觉得"就这?"。但Aly在评论区埋了更深的一层:最大的挑战从来不是写出能跑的循环,而是定义"什么时候该停"。
她的代码里有个run_forever(),字面意义上的无限循环。生产环境你敢这么写?不敢。你得加熔断、加目标完成检测、加异常逃逸机制。但这些都没出现在核心代码里——因为那是业务逻辑,不是代理架构。
这种"故意留白"的设计选择,恰恰说明Aly做过真东西。教程代码和工程代码的区别,就在于前者展示可能性,后者隐藏复杂性。
最后留个数据点:Aly的JSON提取器用了三层fallback,但最暴力的正则匹配——直接搜任意花括号——反而解决了最多边缘case。优雅方案失效时,脏活累活才是护城河。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.