你的第一个最小 Agent

你的第一个最小 Agent:用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体,通过架构、轨迹和故障重放完成验收。

学习目标

  • 能解释“你的第一个最小 Agent”如何用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体
  • 能区分工具注册表、输入 schema、分发器、执行结果、验收器,并指出控制权、数据与副作用边界
  • 能固定输入与版本,沿以下证据定位首个分叉:工具白名单、输入校验、执行日志、结果消息、退出状态与验收断言
  • 能注入“把模型返回的工具名直接映射到任意函数,并允许未经校验的参数触发副作用”,完成阻断、恢复、复位和同输入重放

来源、课程编排与适用边界

“你的第一个最小 Agent”以Anthropic 公开全文《Building effective agents》为总纲,并用Claude Platform《How tool use works》核对本单元机制;涉及 MCP 的控制权边界再由MCP 2025-06-18 官方规范交叉检查。

这不是 Anthropic 出版的“19 章教材”。平台把公开文章、官方工具文档与协议规范重组为 19 个应用单元;下列 152 个节点是站内课程地图,不冒充原文目录。正文、代码、图表、实验和练习均为独立教学重写;产品接口、模型行为或协议版本变化时必须重新验证。

本单元的八个课程坐标

  • 你的第一个最小 Agent:这是“用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体”的第 1 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
  • 先说说这一章干嘛:这是“用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体”的第 2 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
  • 最小 Agent,就是这四块拼起来:这是“用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体”的第 3 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
  • 动手看:最小 agent 跑一次长什么样:这是“用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体”的第 4 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
  • 一段段把它拼出来:这是“用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体”的第 5 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
  • 第一段:定义一个工具:这是“用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体”的第 6 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
  • 第二段:给工具写一份 schema:这是“用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体”的第 7 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
  • 第三段:解析 LLM 的工具调用,并执行:这是“用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体”的第 8 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。

术语与运行合同

本页不变量是:最小实现也必须分离模型决策、工具执行、权限检查和成功判定。任何“成功”结论都要保存以下证据:工具白名单、输入校验、执行日志、结果消息、退出状态与验收断言,模型生成的计划或自信不能替代环境事实。

关键机制与可推翻实验

先选无副作用切片

首个 Agent 应使用天气、计算或查询等只读工具,先证明协议闭环。

动手验证:把工具替换为返回固定值的测试替身,验证消息序列。

schema 不是授权

字段合法只说明形状正确,资源范围与操作者权限仍要单独判断。

动手验证:提交格式正确但越权的资源标识,确认执行器拒绝。

注册表阻断任意调用

模型产生的名称永远不能直接进入 eval、反射或 shell。

动手验证:注入未注册工具名,断言零副作用并返回 structured error。

验收独立于模型措辞

模型说“已经完成”不能替代数据库、文件或测试断言。

动手验证:让模型错误声称完成,确认验收器仍返回 blocked。

先预测,再操作三类证据

分步1 / 3

1. 架构与复杂度边界

在“你的第一个最小 Agent”中切换简单基线、受控工作流与自主循环,先预测“用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体”在哪个阶段需要增加控制权,再比较延迟、成本、可观测性和自主性。

Architecture decision laboratory

你的第一个最小 Agent

用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体

复杂度档位

不变量:最小实现也必须分离模型决策、工具执行、权限检查和成功判定

受控工作流:只激活能够由收益证明的阶段1注册工具2模型选择3校验参数4受控执行5验收退出蓝色表示当前方案承担的责任;虚线阶段仍留在系统边界外。关键证据:工具白名单、输入校…
自主性46
延迟52
成本48
可观测78

最小可运行实现

const registry = { get_weather: getWeather } satisfies ToolRegistry;
 
async function dispatch(call: ToolCall, actor: Actor) {
  const tool = registry[call.name as keyof typeof registry];
  if (!tool) return { ok: false, error: "unknown_tool" };
  const args = tool.schema.parse(call.input);
  await authorize(actor, call.name, args);
  return { ok: true, value: await tool.run(args) };
}

这段切片只暴露“用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体”的最小运行合同。交付版本还要补齐超时、密钥隔离、结构化日志、幂等和批量评测;缺少工具白名单、输入校验、执行日志、结果消息、退出状态与验收断言时,代码能运行也不代表本章结论成立。

练习与答案

练习

问题 1:最小证明。 怎样用最少样本证明“最小实现也必须分离模型决策、工具执行、权限检查和成功判定”?

问题 2:课程覆盖。 你的第一个最小 Agent、先说说这一章干嘛、最小 Agent,就是这四块拼起来、动手看:最小 agent 跑一次长什么样、一段段把它拼出来、第一段:定义一个工具、第二段:给工具写一份 schema、第三段:解析 LLM 的工具调用,并执行如何进入可操作验证?

问题 3:恢复闭环。 怎样证明“把模型返回的工具名直接映射到任意函数,并允许未经校验的参数触发副作用”已经修复?

本章回顾

  • “你的第一个最小 Agent”的主问题是用一个只读工具、一个显式状态机和一个确定性验收器组装最小可运行智能体。
  • 核心不变量是最小实现也必须分离模型决策、工具执行、权限检查和成功判定。
  • 首要反例是把模型返回的工具名直接映射到任意函数,并允许未经校验的参数触发副作用。
  • 最小证据包包含工具白名单、输入校验、执行日志、结果消息、退出状态与验收断言。

名词解释

本章出现的专业名词,用大白话再讲一遍。

工具注册表

从公开工具名到受控执行函数的显式映射。在“你的第一个最小 Agent”中必须能按以下证据重新定位:工具白名单、输入校验、执行日志、结果消息、退出状态与验收断言。

输入 schema

限定参数字段、类型、枚举和必填项的合同。在“你的第一个最小 Agent”中必须能按以下证据重新定位:工具白名单、输入校验、执行日志、结果消息、退出状态与验收断言。

分发器

校验调用后选择并执行白名单工具的运行时代码。在“你的第一个最小 Agent”中必须能按以下证据重新定位:工具白名单、输入校验、执行日志、结果消息、退出状态与验收断言。

执行结果

包含成功值或结构化错误的工具回执。在“你的第一个最小 Agent”中必须能按以下证据重新定位:工具白名单、输入校验、执行日志、结果消息、退出状态与验收断言。

验收器

根据环境事实判断任务是否真正完成的确定性逻辑。在“你的第一个最小 Agent”中必须能按以下证据重新定位:工具白名单、输入校验、执行日志、结果消息、退出状态与验收断言。

阅读导航

← 智能体循环:感知、思考与行动 · 提示工程精要 →

讨论

评论区加载中…