从程序员熟悉的概念出发,理解 Agent 的定义、特性与基本架构。
模型输出了「请确认」,程序为什么真的会停?从一段 JSON 输出跟到状态迁移、调度退出和调用计数:模型只产生候选决定,Runtime 才拥有状态迁移权;ReAct、计划步、Workflow 节点只是等待信号的三种来源。
一个系统凭什么能根据目标和环境,自己决定下一步做什么?本文从传统 Agent 的目标、行动、反馈谈起,看语言模型进来后,承担了原先需要人工知识工程或专门模块完成的部分解释和选择工作,但系统仍需提供观察、执行动作并判断结果——具体职责如何分配因架构而异。
MCP 把工具实现拆成了可发现、可调用的协议。Skill 做的是同一件事的下一个对象:把「怎么做对一件事」的方法,从 Agent 代码里拆成可发现、可版本化的文件。
前七话的工具都是写死在代码里的函数。MCP 把「工具怎么被发现、怎么被调用」做成标准协议,但到 Agent 为止——选哪个工具、给什么参数,仍是 LLM 在 function-calling 层做的。
模型单次调用不会自动记住历史。把记忆拆成工作、情节、语义、程序四层,用 SQLite 落盘、bge-m3 + Qdrant 做检索,再把命中的记忆装进消息,Agent 才真正跨会话记得你是谁。
把只在内存里的状态显式化、落盘、checkpoint,让崩溃后的循环能接着跑,有副作用的步骤不重复执行。
从「光想不做会幻觉、光做不想会盲目」出发,讲清 ReAct 为什么让推理和行动交替,并亲手跑出一个 Observation 改变下一步 Action 的最小例子。
模型提出的工具调用不可信:Runtime 怎么校验、执行,并在超时后靠幂等状态避免重复退款。
从训练样本、Toolformer、Gorilla 到 Native tools:工具调用能力究竟来自哪里。