news 2026/5/9 0:04:34

从“想”到“做”:手把手教你实现AI Agent Loop循环机制,解锁智能体进阶玩法!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从“想”到“做”:手把手教你实现AI Agent Loop循环机制,解锁智能体进阶玩法!

写这篇文章的初衷主要是为了复盘自己近期的学与思,毕竟在脑子里想的再多,都不如将所思所想通过文字的形式表达出来。

这既能达到个人学习复盘的目的,又能将自己的学习心得分享给对这块儿同样感兴趣的朋友。

虽然如此,但我深知理论必须与实践相结合,只有通过动手实践才能检验和纠正自己可能存在的认知偏差。

因此,我决定写一个关于Harness工程实践的系列文章,通过理论和实践相结合,来进一步加深我对Harness相关机制的理解深度。

这个系列的文章主题包括但不限于Agent Loop、Tool Use、Sub-agent、Context Compact、Agent Teams等。

今天是Harness工程实践系列的第一篇,主题主要是围绕“Agent Loop”来展开我的分享。


什么是Agent Loop?

1. 先说说什么是“Loop”?

Loop,即循环(为方便阅读,以下简称循环)。在我们日常的工作和生活中,有很多循环的例子,这里简单列举两个。

先说说工作场景下的循环

例如,一名刚入职公司不久的新人在接到一项任务时,他不会一开始就把完成任务所需步骤都想清楚,而是先基于自己的理解去做第一步。

做完后,他会找相关人员沟通确认,如“这样做对吗?”。

如果发现有问题,他会马上调整,然后再做下一步。接着再次沟通、再次调整,以此重复循环,直到任务被确认完成为止。

再说说生活场景下的循环

例如,我正在家里找钥匙。我先想“可能在沙发上”,然后去沙发上查看,结果没找到;接着,我再想“可能在外套口袋”,然后去衣帽间翻外套,果然,在外套口袋里找到了。

从以上例子中,我们可以提炼出以下要素:

  • 有明确的目标
  • 先尝试执行
  • 获取外部反馈
  • 根据反馈判断是否正确
  • 动态调整下一步行动
  • 持续循环直到完成

可能有人会说,这和本文要讲的Agent循环有啥关系?别急,我们接着往下看。

  1. 再说说什么是Agent循环?

其实,前面讲的那些工作中的反复确认、生活中的翻找钥匙,如果把主角换成大模型,就是最典型的Agent循环。

为了让大家有一个更直观的对比,我们先来看看Agent在没有循环的工作场景下是如何工作的。

没有循环机制的Agent是如何工作的?

一个没有循环机制的Agent,你可以把它想象成一个只给一次机会、不允许中途问问题的执行者。

当我们给Agent下达一个任务时,它会先识别我们的意图,然后根据意图来决定是否需要调用外部工具来处理。

需要注意的是,这里的工具调用是一次性的,即它在完成一次工具调用后就会将最终回答返回给我们,并结束当前对话。

举个具体例子:你让它“帮我查一下明天去北京的航班,想订一张下午3点前能到、且价格低于1000元的机票。”

这时候,没有循环的Agent可能只会做一次搜索,比如直接调用一个航班查询接口,然后把返回的原始列表给到你:“这是所有明天去北京的航班。”

它既不会筛选“下午3点前到达”,也不会过滤“1000元以下”,更不会因为你皱了一下眉头而追问“是不是太贵了需要重新找?”

整个过程中,它没有感知、没有确认、没有调整,就像一个只能执行单步命令的“筛选器”——你只问了一次,它就只答了一次,执行结果是好是坏,它并不知晓。

而我们的实际需求可能需要Agent通过多次调用工具来完成,比如前面订机票的例子,仅靠调用一次工具远远满足不了实际需求。

因此,我们可以得出这样的结论:Agent想要很好的完成复杂任务,就需要加入循环机制。

那么,Agent循环到底是什么?

说到这里,Agent循环的定义就呼之欲出了。

Agent循环,简单来说,就是让Agent自己决定“什么时候该动手”,然后反复“思考—>动手—>看结果—>再思考”,直到任务完成为止。

在这个闭环里,Agent不再是只输出一次,而是不断地重复以下动作:

  • 观察当前状态:“我现在拿到了哪些信息?外部环境有什么反馈?”
  • 思考下一步行动:“基于这些信息,我现在最应该做什么才能离目标更近?”
  • 采取具体行动:调用工具、执行计算、向用户提问等。
  • 收获新的观察:行动带来了什么结果?然后再次进入思考……

把这四个动作首尾相连,就构成了经典的思考-行动-观察循环。

这个循环会一直转动,直到Agent判断“目标已经达成”或者“确实无法解决,需要向用户求助”,循环才会停止,并输出最终结果。

回到之前订机票的例子,有了循环的Agent会怎么做呢?

它会先搜航班,发现第一轮结果满足下午3点前到达的航班都超过1000元;基于这个“观察”,它会“思考”:“看来需要放宽条件,也许试试转机航班或者把价格上限调整到1200元?”

接着它可能会主动问你:“直飞的都超预算,转机的有低于1000元的,可以吗?” 得到你的反馈后,它再调整下一步行动。


Agent循环的工作原理

那么,Agent循环机制到底是怎么转起来的呢?下面我们以“工具调用”为核心,拆解加入了循环机制的Agent在工作时,背后究竟发生了什么。

1. 创建对话

在新创建的对话窗口里,用户会向Agent发送第一条消息。此时的对话窗口没有任何上下文,用户发送的消息就是当前窗口的唯一上下文。

2. 循环判断

用户发送的消息会触发系统的循环机制,大模型根据用户消息识别其意图,并根据意图来判断是否需要调用工具来解决。

首先是调用大模型

用户发送的消息会作为输入提供给大模型,大模型基于输入内容来识别任务类型以及是否需要调用工具。

当大模型判断当前输入内容无需调用工具时,它会直接返回最终回答。反之,大模型则会发起调用工具的请求,系统接收到请求后,会调用指定工具执行相关操作。

这里需要注意,大模型本身并不直接调用外部工具。它只是告知系统当前需要调用哪个工具,并且提供调用工具所需的相关信息及参数。

然后是执行工具

当接收到大模型提供的工具相关信息(如工具名称、描述和相关参数)后,系统会直接调用对应工具,并同步将相关参数传给工具。

被调用的工具在接收到相关参数后,就会进入到具体的处理流程。

最后是返回工具执行结果

当工具处理完后,会同步返回处理结果给到大模型。

此时,大模型在接收到工具返回的结果后,它会再次基于历史对话和工具返回结果来判断是否还需要再次发起工具调用请求。

若不需要,则直接返回最终回答;若需要,则继续发起工具调用请求,系统执行工具,工具返回执行结果,以此循环。

当大模型不需要再次调用工具时,循环结束。

3. 返回最终回答

从最终结果来看,用户收到的回答有两种可能:

  • 一是未经工具调用,大模型仅依靠自身知识得到的回答。
  • 二是经过工具调用,大模型除了依靠自身知识外,还结合了工具返回结果综合得到的回答。

简单总结一下,我们从Agent循环的工作原理可以看出,循环机制的核心就是由大模型持续做决策,通过循环来引导Agent逐步地去解决问题。


动手实践:Agent循环的工程实现

不知道读到这里的你是否还记得,我在本文开头有提到,学习只有理论加实践才能对学习内容有更深刻的理解,而实践是核心。

因此,当前这部分就是本文的动手实践环节。

我的动手实践主要按照以下思路进行:

  • 首先,明确要解决的问题;
  • 其次,确定解决问题的思路;
  • 接着,进行实操验证;
  • 最后,基于实操结果进行优化调整。
  1. 问题描述

一个轻量的编码助手(Code Agent)项目,该项目主要用于实践从0-1搭建Harness相关的核心机制。

目前,这个编码助手的问题在于无法多次调用工具,只能根据我的任务完成一次工具调用,这显然无法满足我的任务需求。

我的预期效果是编码助手能够根据任务的复杂程度完成单次或者多次的工具调用,直到任务完成。

  1. 解决思路

既然编码助手的当前问题在于无法多次调用工具,那么我们可以为其加入循环机制,让编码助手能够根据任务的实际需要进行单次或多次的工具调用。

  1. 实操验证

按照解决思路,结合前面的工作原理,我准备用Claude Code来协助我,为这个编码助手加入循环机制。

这里特别强调一下,实践里涉及到的相关代码实现并非本文重点。

实操验证这部分,主要是想传递一个观点:不仅理论要学得扎实,更重要的是,要多去动手实践。

实践过程中遇到的问题会反向推动你进一步查漏补缺,最终对相关概念有一个更加深刻的理解。

若你想尝试用代码来实践,也可以和我一样,通过当前主流的编程Agent(国产的RRAE、CodeBuddy,国外的Claude Code、Codex)来完成。

不用担心你不会代码,我一开始也不会。遇到问题就问你使用的编程Agent或者平时常用的AI(豆包、元宝或者Kimi)。

当你真正动手实践的那一刻开始,你已经走在了多数人的前面。

具体实现

关于具体实现,我仅分享涉及Agent循环的核心部分。项目依赖和环境变量配置等常规设置,不再过多赘述。

在该项目中,我使用的编程语言是Python。

(1) 实现Agent循环

1 定义 Agent Loop 函数

首先,在现有编码助手的工程实现里新增一个 Agent Loop 的函数定义。然后在定义的函数里添加一个无限循环 while True 。

这里需要注意,虽然是一个无限循环,但当其满足退出条件时,就会退出当前循环。

def agent_loop(messages: list): while True:

1 以下代码均包含在定义函数的 while True 无限循环里。

1 初始化消息列表

接着,我们创建对话历史列表,第一条消息来自用户的原始输入。

messages = [{"role": "user", "content": query}]

1 调用大模型

接着,将当前所有消息作为输入,发送给大模型。同时,将大模型的回复结果添加到对话历史中。

response = client.messages.create( model=MODEL, system=SYSTEM, messages=messages,tools=TOOLS, max_tokens=5000, ) messages.append({"role": "assistant", "content": response.content})

1 循环判断

接着,我们将明确退出循环的判断条件。

如果大模型不需要调用工具,则直接退出函数,即结束循环;如果大模型需要调用工具,则继续往下执行,即继续循环。

if response.stop_reason != "tool_use": return

1 执行工具

接着,我们需要明确执行工具时的规则。

我们通过遍历大模型来返回所有的内容块,找到类型为 tool_use 的块,执行Bash命令,并将执行结果打包成 tool_result 格式。

results = [] for block in response.content: if block.type == "tool_use": output = run_bash(block.input["command"]) results.append({ "type": "tool_result" ...... })

1 返回工具结果

最后,我们将工具返回的结果追加到对话历史中。当下次循环时,大模型就会看到这个工具结果,并决定是否再次调用用工具。

messages.append({"role": "user", "content": results})

1 “role”: “user” 是 Anthropic Claude API 的设计约定,告诉模型"这是外部工具执行返1 回的信息,而不是模型内部的信息"。

(2) 效果验证

Agent循环的相关处理逻辑完成后,我们通过终端来运行这个项目,看一下添加了循环机制后的效果:

从运行效果来看,Agent触发了循环机制,并进行了两次工具调用,一次是创建文件并写入指定内容;第二次是显示被创建文件的具体内容。


写在最后

循环机制就像智能体的“心脏”,持续驱动着其他机制的运转。

比如:

  • 工具调用,多次调用的逻辑串联依赖循环来实现;
  • 上下文压缩,随着对话轮次增加,需要在循环中动态判断哪些信息该保留、哪些该压缩,才能避免上下文溢出;
  • 多智能体协作,每个智能体的输出作为其他智能体的输入,这个交互过程得靠循环来维持,直到共同完成任务。

没有循环,这些机制就成了“一次性操作”,无法应对复杂场景的持续需求。

结语:抓住大模型时代的职业机遇

AI大模型的发展不是“替代人类”,而是“重塑职业价值”——它淘汰的是重复性、低附加值的工作,却催生了更多需要“技术+业务”交叉能力的高端岗位。对于求职者而言,想要在这波浪潮中立足,不仅需要掌握Python、TensorFlow/PyTorch等技术工具,更要深入理解目标行业的业务逻辑(如金融的风险控制、医疗的临床需求),成为“懂技术、懂业务”的复合型人才。

无论是技术研发岗(如算法工程师、研究员),还是业务落地岗(如产品经理、应用工程师),大模型都为不同背景的职场人提供了广阔的发展空间。只要保持学习热情,紧跟技术趋势,就能在AI大模型时代找到属于自己的职业新蓝海。

最近两年大模型发展很迅速,在理论研究方面得到很大的拓展,基础模型的能力也取得重大突破,大模型现在正在积极探索落地的方向,如果与各行各业结合起来是未来落地的一个重大研究方向

大模型应用工程师年包50w+属于中等水平,如果想要入门大模型,那现在正是最佳时机

2025年Agent的元年,2026年将会百花齐放,相应的应用将覆盖文本,视频,语音,图像等全模态

如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

扫描下方csdn官方合作二维码获取哦!

给大家推荐一个大模型应用学习路线

这个学习路线的具体内容如下:

第一节:提示词工程

提示词是用于与AI模型沟通交流的,这一部分主要介绍基本概念和相应的实践,高级的提示词工程来实现模型最佳效果,以现实案例为基础进行案例讲解,在企业中除了微调之外,最喜欢的就是用提示词工程技术来实现模型性能的提升

第二节:检索增强生成(RAG)

可能大家经常会看见RAG这个名词,这个就是将向量数据库与大模型结合的技术,通过外部知识来增强改进提升大模型的回答结果,这一部分主要介绍RAG架构与组件,从零开始搭建RAG系统,生成部署RAG,性能优化等

第三节:微调

预训练之后的模型想要在具体任务上进行适配,那就需要通过微调来提升模型的性能,能满足定制化的需求,这一部分主要介绍微调的基础,模型适配技术,最佳实践的案例,以及资源优化等内容

第四节:模型部署

想要把预训练或者微调之后的模型应用于生产实践,那就需要部署,模型部署分为云端部署和本地部署,部署的过程中需要考虑硬件支持,服务器性能,以及对性能进行优化,使用过程中的监控维护等

第五节:人工智能系统和项目

这一部分主要介绍自主人工智能系统,包括代理框架,决策框架,多智能体系统,以及实际应用,然后通过实践项目应用前面学习到的知识,包括端到端的实现,行业相关情景等

学完上面的大模型应用技术,就可以去做一些开源的项目,大模型领域现在非常注重项目的落地,后续可以学习一些Agent框架等内容

上面的资料做了一些整理,有需要的同学可以下方添加二维码获取(仅供学习使用)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 23:39:31

角色扮演大语言模型:从核心原理到多智能体架构的实践指南

1. 角色扮演大语言模型:从概念到前沿的深度解析如果你对AI聊天机器人、虚拟角色或者让AI模拟特定人物(比如历史名人、小说角色甚至是你自己)感兴趣,那么“角色扮演大语言模型”这个领域就是你绕不开的核心。这不仅仅是让AI说几句符…

作者头像 李华
网站建设 2026/5/8 23:33:52

轻量级Python爬虫框架pocketclaw:快速构建与工程化实践指南

1. 项目概述与核心价值最近在折腾一些数据采集和自动化任务时,发现了一个挺有意思的项目,叫pocketclaw。这个名字本身就挺有画面感的,“口袋里的爪子”,一听就知道是个轻量级、便携式的爬虫工具。作为一个在数据领域摸爬滚打了十多…

作者头像 李华
网站建设 2026/5/8 23:32:52

基于MCP协议构建透明可控的AI编程助手文档检索系统

1. 项目概述:为你的AI编程助手构建一个透明、可控的文档检索大脑如果你和我一样,日常重度依赖 Cursor、Claude Code 这类“AI原生”的 IDE 来写代码,那你肯定遇到过这样的场景:当你向助手提问一个关于某个框架(比如 La…

作者头像 李华
网站建设 2026/5/8 23:30:07

ProScreenCast SC02无线HDMI套件评测与应用指南

1. ProScreenCast SC02无线HDMI传输套件深度解析作为一名影音设备评测博主,我最近测试了ProScreenCast SC02这款4K无线HDMI传输套件。与市面上大多数需要依赖AirPlay或Miracast协议的无线投屏方案不同,这套设备通过独立的发射器(TX01)和接收器(SC02)组合…

作者头像 李华