本阶段课程 · Agent 的组成与运行
从一次 API 调用到一个 AgentAgent Loop:行动、反馈与停止任务规划与多 Agent 协作Agent 的权限、确认与执行回执
LESSON 29 / 36阅读约 7 分钟

从一次 API 调用到一个 Agent

逐层加入工具、状态、反馈循环与停止条件,解释每层解决的问题。

Agent是在一次模型调用之外,增加了什么

到这里,你已经学过模型API、消息、资料与工具。Agent可以用这些已有概念连接起来理解:应用围绕一个目标,让模型选择行动,执行允许的工具,把反馈交回模型,再根据新情况继续或停止。

本课程使用这个工作定义,是为了突出“根据反馈选择后续行动”。不同产品对Agent的命名范围可能不同,不能只凭一个产品叫作Agent,就判断它具备怎样的自主能力。

第一层:一次普通模型请求

任务是“为12人找周日14—16点可用、总价不超过600元的场地”。如果只调用一次模型,没有提供场地信息和查询能力,它可以给选址建议,却不能确认真实空位与价格。

这一层只有用户目标和模型生成。应用把结果显示给用户后就结束,不会自动知道下一步查哪一家。模型能够描述计划,不代表计划已经执行。

第二层:加入一次工具调用

应用增加query_venue工具,并向模型说明它能查营业、空位、容量与价格。模型返回“查询A”的请求,应用运行工具,得到“A周日关闭”。然后把结果交回模型,它可以说明A不合适。

此时系统已经连接了外部能力,但如果应用到此就停止,仍没有完成找场地的目标。单次工具调用解决的是一次交互,不能代替持续推进整个任务。

第三层:让反馈决定下一次调用

应用保留原目标与查询记录,再次调用模型。模型看到A关闭,可以请求查询B。工具返回“B容纳16人,目标时段可用,总价520元”。这些新事实再次进入上下文,模型才有条件做出比较。

新增部件解决的问题少了它会怎样
目标与约束定义什么算完成可能找到场地却忘记预算
模型调用理解情况、提出下一步没有基于语言与反馈的选择能力
工具执行获取事实或完成动作只能描述查询,无法真正取得结果
状态记录保留已知与未完成事项可能重复查询或沿用旧条件
循环控制把反馈用于下一轮查一次就停,无法持续推进
停止与权限检查限制过程与外部后果可能无限重试或越过授权

第四层:决定什么时候可以结束

B是否满足目标,要逐项比较:16人容量能容纳12人;目标时段可用;520元不超过600元。若任务只要求推荐,交付这个候选及依据便可以结束。若还要预约,则需要预约工具与具体授权,并核对执行回执。

应用还需要规定失败条件,例如工具连续不可用、没有合适候选、预算无法满足、达到轮数上限。停止时保留已有证据,说明还缺什么,不能靠不断生成文字假装任务一直在进展。

最小实现的逻辑可以怎样写

下面是白话伪代码,用来说明控制过程,不能直接作为某个平台的可运行程序:

结构示例
保存用户目标、约束和可用工具。
在次数与权限允许的范围内:
  把当前记录交给模型。
  如果返回最终答案,检查并结束。
  如果返回工具请求,检查参数与权限。
  执行工具,把真实结果加入记录。
达到限制或无法继续时,说明状态并停止。

框架可以替开发者封装这段循环、消息格式和工具分发。可视化平台也可以提供类似能力。无论使用哪一种,理解这些部件都能帮助你判断系统实际做了什么,以及为什么卡住。下一课会把这段循环展开为可观察的日志。

交互演示 · Agent 透明实验室跟着一次真实机制的模拟,看助手如何行动。 8 分钟 · 教学模拟

检查一下理解

从单次调用发展到多步Agent,新增的关键关系是什么?

本节参考与继续阅读

下列章节用于核对概念与机制。本站以中文重新组织讲解,例子和练习为独立编写。

可选练习能说出Agent相比一次模型请求多了哪些部件,每个部件解决什么问题。
练习目标

能说出Agent相比一次模型请求多了哪些部件,每个部件解决什么问题。

先读下面四层搭建过程,再打开Agent透明实验室。实验把每次请求和结果分开显示,使用固定分支帮助观察;真实系统中的动作选择由模型参与完成。

全程不变的目标
为12人读书会找周日14:00—16:00可用场地,总预算600元。先核对人数、时段、总价,给出推荐;预约前让我确认。

跟着做一遍

下面的结果是本站编写的对照示例。实际工具的措辞可能不同,按每步的关键条件检查即可。

01

第一层:只有一次模型请求

把目标发给没有联网或查询工具的普通对话,并明确没有场地资料。

发给 AI 的内容
目标:为12人找周日14—16点可用场地,总预算600元。当前没有场地数据,也没有查询工具。请说明还需要哪些事实,不要编造实时空位或价格。
做完后,展开结果对照
对照示例 · 不要求逐字相同

需要场地容量、营业时段、目标时间空位和总价。只能提出查找办法,不能确认哪个场地现在可用。

为什么这样做API能生成回答,但不会因为目标具体就自动拥有实时业务数据。

02

第二层:让模型能提出查询请求

读上一阶段的工具约定:query_venue需要场地、日期与人数。在实验中点击第一步、第二步,看请求A与A关闭的反馈。

做完后,展开结果对照
对照示例 · 不要求逐字相同

模型先提出查询A;应用验证后运行工具;工具返回A周日关闭。此时有了一条新事实,但任务还没完成。

为什么这样做工具定义告诉模型可以问什么;应用代码或平台负责执行。只接上一个工具,并不意味着任务会自动反复推进。

03

第三层:把结果送回,再决定下一步

继续点击,观察模型第二次请求与工具结果。不要跳过中间事件。

做完后,展开结果对照
对照示例 · 不要求逐字相同

模型看到A关闭后改查B;工具返回B容纳16人、目标时段可用、总价520元。

为什么这样做应用把目标、已有记录与工具结果一起交回模型,模型才可以根据新反馈选择下一步。这个来回,是从一次调用变成持续做事的关键。

04

第四层:加验收、停止和确认

继续到任务交付。阅读B的具体条件,此时先不要确认预约。再看“最多模型调用轮数”与查询权限控制。

做完后,展开结果对照
对照示例 · 不要求逐字相同

B满足12人、指定时段、600元预算,系统给出推荐并等待确认。默认场景用3轮模型调用:查A、查B、交付。

为什么这样做可运行的Agent还需要保存任务状态、检查参数与权限、限制轮数、处理失败,并在有明确后果的动作前保留确认点。

刚才用到的一个新词

Agent,智能体

在本课中,指围绕目标使用工具、根据反馈选择后续行动,并在满足条件或触及限制时停止的系统。

没做出来?从这里排查

它一直给建议却不查询

检查是否真的配置了查询工具,以及模型是否能看到工具定义。

查一次后就结束,没继续找B

检查应用是否把工具结果返回模型,并允许在次数限制内继续下一轮。

换一个例子验证

把这个Agent拆成五张部件卡。

  1. 写出目标与完成标准。
  2. 写出模型调用、工具、记录状态、循环与停止各负责什么。
  3. 删掉任意一张卡,说明任务会在哪一步卡住。
检查标准能从一次API请求逐层解释Agent如何建立,不把它只定义成“更聪明的聊天”。

完成状态仅保存在当前浏览器,可再次点击取消。