AI 智能体动画
智能体把语言模型放进一个可重复执行的循环:模型提出行动,运行框架执行行动,结果回到上下文,模型再决定下一步。这组动画展示工具请求如何经过运行框架得到结果,以及循环如何继续或结束。
单独的语言模型生成文本。运行框架把其中的工具请求变成搜索、计算或数据库查询,再把结果交还模型。工具、循环和跨轮次状态共同构成智能体。这些课程先拆开各部分,再展示它们如何配合。
智能体由哪些部分构成
- 工具:模型输出函数名和参数组成的结构化请求,运行框架执行后返回结果。
- 循环:推理、行动、观察,再根据结果决定下一步。模型可以逐步调整计划。
- 记忆:跨轮次状态需要进入后续请求。上下文窗口决定哪些信息保留、摘要或丢弃。
- 事实依据:检索把相关文档放进上下文,让回答能引用当前提供的资料。
围绕循环的课程
| 课程 | 观察重点 |
|---|---|
| Agent 循环 | while 循环调用模型、执行工具,直到模型返回文本;运行框架设置执行预算 |
| 工具调用 | 模型发出结构化函数调用,再读取执行结果 |
| MCP 插件 | 外部工具描述加入主机工具池,调用经 MCP 客户端路由;区分路由缺失与工具查询失败 |
| 权限治理 | allow、deny、ask 规则决定请求能否执行 |
| 钩子 | 事件与工具匹配器决定何时在执行前后触发回调 |
| ReAct 循环 | 推理、行动、观察不断重复,直到任务完成 |
| 上下文与记忆 | 跨轮次信息如何占用上下文窗口 |
| System Prompt 组装 | 运行时来源如何成为系统段落、工具定义与选定上下文;列出技能或文件不等于读取正文 |
| 错误恢复 | 重试前先识别失败原因:等待、压缩上下文、提高输出预算、换用兼容备用模型,或停止并报告错误 |
| 子智能体 | Task 调用在新的 messages[] 上启动子循环,探索过程留在子上下文,只返回结果卡片 |
| 先计划后执行 | 检查完成条件;检查失败后修复,再重新验证 |
| 任务系统 | 目标分解为依赖图,持久化到 tasks.json;中断后从受影响任务恢复 |
| 后台任务 | 慢命令在独立 shell 运行,智能体继续处理其他工作,在轮次边界收到完成通知 |
| 智能体团队 | 接口约定更新通过收件箱传到另一上下文,再检查 API 与 UI 是否配合 |
| RAG | 检索相关文档并加入提示 |
建议的学习顺序
先学 Agent 循环。它反复调用模型、执行模型请求的工具,直到模型返回文本。正常路径由模型的 stop_reason 表示是否继续,运行框架另设预算上限。再看工具调用,跟踪一次结构化请求、工具执行和结果回传,区分模型提出请求与代码执行工具。
接着学权限治理和钩子。权限在执行前允许、拒绝或请求审批;未回答的审批保持等待。钩子按事件和工具匹配触发回调,可以观察执行前阻止、执行后报告,以及匹配失败导致回调未触发的区别。ReAct 循环从模型的推理视角观察同一过程:决定行动,读取结果,再修正下一步。
随后学习上下文与记忆。模型在调用之间不保留请求状态,它需要的信息必须重新进入上下文,而窗口容量有限。子智能体把探索放进新的上下文,只返回结论;子智能体不会自动获得父任务中未传给它的信息。先计划后执行则把工作和完成条件写明,区分“尝试过”与“证据表明已完成”。
任务系统把工作拆到时间维度:依赖图写入磁盘,依赖关系决定执行顺序,进程中断后从受影响任务恢复。后台任务允许慢命令独立运行,智能体可在此期间处理不依赖其输出的工作;完成通知在下一轮边界送达。智能体团队连接独立上下文:任务完成状态不会自动传递 API 字段变化,需要同级消息传递更新,再检查 UI 能否读取响应。错误恢复回到一次失败的模型调用:先识别失败原因,修复原因后再重试,或者停止;原因没有变化就重发,通常得到同样结果。
最后学习 RAG:检索与问题相关的文档,加入提示,让模型基于这些来源回答。它补充回答所需的事实依据。
全部智能体课程
学完工具调用后,打开 MCP 插件。保持工具请求不变,切换 Notes 集成,再查询一条不存在的笔记:移除集成会导致主机路由缺失;笔记不存在时,请求能到达工具,但工具返回错误。
学完上下文与记忆后,打开 System Prompt 组装。对比只列出技能与读取技能正文,再启用记忆加载,确认所需的私有事实是否进入组装后的请求。
选择下方课程,修改输入或单步执行,查看每一步的结果。