Agent 研习舱

chapter 01 / 模型内核

Agent 是什么

从工作流到自主体:模型提供能力,系统给出形态

2025 年之后,「Agent」几乎成了 AI 领域最常被滥用的词。这一章先把定义钉住,再建立一个贯穿全站的心智模型。

Workflow 还是 Agent?

Anthropic 在《Building Effective AI Agents》里给出了一个被广泛引用的区分:

Workflow(工作流)Agent(智能体)
过程由谁决定预先写好的代码路径模型在运行中自主决定
LLM 的角色流水线上的一个环节掌握方向盘的司机
适合的任务步骤明确、可预定义开放式、步数未知
失败模式流程僵化跑偏、失控、烧预算

关键不是「Agent 更高级」,而是那条设计原则:找到最简方案,仅在需要时增加复杂度。能用一次提示解决的别上工作流,能用工作流编排的别上 Agent。

Anthropic2024-12-19

Building Effective AI Agents

最成功的 Agent 实现用的是简单、可组合的模式而非复杂框架——「找到最简方案,仅在需要时增加复杂度」。区分了 workflow(预定义编排)与 agent(模型自主决定过程)。

OpenAI 的实战指南给出了几乎相同的判断:适合 Agent 的场景是传统规则式自动化搞不定的——复杂决策、难以维护的规则库、大量依赖非结构化信息的流程。如果一个流程能画成清晰的流程图,先别写 Agent。

OpenAI2025-04

A Practical Guide to Building Agents

OpenAI 的 Agent 构建实战指南(PDF):何时该用 Agent、单 Agent 与多 Agent 的选择、工具与护栏设计、以及从小范围试点开始的落地路径。

从「推理思维」到「Agentic 思维」

模型这一侧也有一条对应的演化线。早期推理模型追求的是内部推演质量——在给出最终答案前做很长的思维链。而 Agent 需要的是另一种能力:

在与环境持续交互中有效行动——为了行动而思考,而不是思考得更久。

这叫 Agentic 思维。它要处理的是推理模型不曾面对的问题:何时停止思考开始行动?工具怎么选、按什么顺序调?环境反馈是嘈杂的怎么整合?行动失败了怎么修订计划?

一个编码 Agent 在终端执行代码、观察报错、修改策略、重新执行——这是 Agentic 思维的典型闭环。对比之下,推理模型写一长段思维链再交卷,是另一种优化目标。

全站最重要的一个心智模型

这个模型解释了很多现象:为什么上下文是稀缺资源(第 4 章)、为什么中断可以恢复(状态本来就在模型外面)、为什么换模型不用重写整个系统(模型只是内核,可替换)。

分析 Agent 系统时别混层

市面上的 Agent 框架五花八门,比较它们时最容易犯的错误是把不同层级的东西放在一起比执行模型两层给出了清晰的拆法:

  • 第一层:Loop 承载方式 —— 主循环跑在哪种运行时容器里?图式(LangGraph:节点/边/checkpoint)、代码式(灵活直写)、托管式(平台托管零运维)。
  • 第二层:编排协议模式 —— 循环内部哪些语义对象被显式建模?ReAct 工具循环、Plan-and-Execute(把计划/步骤提升为显式状态)、会话式协作(把参与者/消息/交接提升为显式状态)、Manager-Worker。

常见误判是把「会话式协作」和 Graph/Code/Managed 放同一层比较——前者是运行在运行时之上的协作契约。实践要点:让状态管理、工具调用、流式输出独立于具体执行模型,切换运行时或编排模式时其他能力才能复用。openJiuwen 的 agent-core 正是这样分层的:core/sessioncore/foundation/toolcore/single_agent 各自独立,第 2 章会看到它们如何在 ReAct 循环里合奏。

本章能力在 Harness 中处于什么位置?

harness positioning

本章能力在 Harness 中处于什么位置?

本章站在最内层:模型内核只提供「一次无状态调用」的智能。它上面的每一层——循环、上下文、工具、状态、评估、编排——都是后续章节要逐层展开的 Harness 部件。记住这张图,每章我们都会回来标注位置。

本章概念清单 / 点击进入概念卡片

章末测验

chapter quiz

0/4 已答

  1. Q1按 Anthropic《Building Effective Agents》的区分,workflow 和 agent 的本质区别是?

  2. Q2「Agentic 思维」优化的目标是什么?

  3. Q3「模型是无状态的」这句话意味着什么?

  4. Q4分析 Agent 执行模型时,「执行模型两层」提醒我们不要混淆哪两层?