1 - 2023年的概述

2023:四要素在形态上第一次接通。Function Calling 是协议;AutoGPT 是传播;SWE-bench 显示完成率不可用。

一句话主线: 2023 年,LLM Agent 在形态上第一次被工程化——ReAct 的文本循环被抄进产品,Function Calling 把工具从 prompt 约束收成 API,AutoGPT 把无界自主循环送上舆论顶点。同年也证明:热度不等于完成率。

2023 年是按时间线学 Agent 的样板页。定义和六类里程碑见 调研方法,总弧线见 概述。

和 LLM 的关系

没有 2022 年底的对话接口和思维链,2023 的循环没有可挂载的核心。2023 年模型侧又补了两块落地前提:

  • 更稳的多步决策核心。 GPT-4(2023-03)让「拆任务、选工具、读回执、再决定」在复杂指令上第一次达到可产品化阈值。前一年的 ChatGPT / GPT-3.5 已经能聊,长链工具使用仍然脆。GPT-4 是决策核心,不是 Agent;循环在宿主。
  • 结构化的工具接口。 上半年开发者仍在 prompt 里约束模型吐 JSON;Function Calling(2023-06-13)把「选哪个函数、参数是什么」收进 Chat Completions API。这是协议:模型↔工具的第一种稳定方言。单次 Function Call 有一次 I/O,没有「根据返回值再选」。接口本身不是 Agent,却是后面所有编排的地基。
  • 稍长一点的工作集。 2023 年 gpt-3.5-turbo-16k 把窗口从约 4k 拉到 16k;11 月 GPT-4 Turbo 到 128k。上下文长度是一次轨迹能装下多少观察的物理上限——当时仍然偏短,长任务只能靠外部记忆和截断,状态丢失随处可见。窗口够,仍不产生副作用。

Toolformer(2023-02)从训练侧证明「该在何时插入工具调用」可学,而不是只能靠提示词约定。ReAct 论文更早(arXiv 2022-10,会议在 ICLR 2023),但大规模抄进产品循环发生在 2023 上半年。叙事上:论文是首证,2023 年是它被抄成默认控制协议的一年。

里程碑

只记改写了后续可能的事件。每条一个分类,标签可多个(六类历史角色)。ReAct 的论文在 2022,今年是被抄进产品的一年,不另占行。

时间 事件 分类 标签 为什么记
2023-02 Toolformer 论文 首证 从训练而非纯 prompt 证明「该在何时调工具」可写入权重,而不只存在于提示词约定
2023-03 GPT-4 模型 — 决策核心第一次撑得住稍长的工具链(schema、错误回执、部分结果之间保持目标)。后续产品默认站在它上面。核心不是 Agent
2023-03 ChatGPT plugins 产品 工程化 把「模型 + 外部工具」做成面向终端用户的产品形态;清单与鉴权仍是厂商私有协议
2023-03 AutoGPT 爆红 产品 引爆 把终止条件交给模型自己写的任务队列,四要素在形态上接通。star 数度量传播,不度量完成率;空转与不可逆副作用是无界循环的预期行为
2023-03 BabyAGI 产品 引爆 用更短的任务队列演示同一控制流归属:模型列任务、模型选下一步。衍生项目极多,大多很快消失
2023 全年 LangChain 成为默认编排层 框架 警示 把 chain / agent / tool 做成库,循环可复制。后来的批评针对抽象层过厚,不否定「当时必须有人把循环跑起来」——当时生态与后来口味要分开看
2023-04 Generative Agents(Stanford) 论文 首证 用记忆流 + 反思做社会模拟,打开「长期记忆 / 角色」旁支。不是任务型 Agent 的主线:完成谓词是行为可信,不是仓库绿
2023-05 Voyager 等「开世界」实验 论文 首证 在 Minecraft 等环境里展示终身学习式技能库;影响力在研究,不在生产
2023-06 OpenAI Function Calling 协议 工程化 工具调用从 prompt 约束变成 API:name + arguments 可校验。循环仍由调用方写。后续各家 tool use 沿这条形状走。协议不是系统
2023-07 ChatGPT Code Interpreter(后称 Advanced Data Analysis) 产品 工程化 模型在云端隔离 VM 里写代码、看图、处理文件。只要允许模型执行代码,沙箱就从可选项变成执行边界;观察通道是真实 stdout / 异常栈
2023-08 Microsoft AutoGen 框架 工程化 把多角色做成消息总线。控制流变成「谁对谁说话」。至少一方执行代码或外部调用,才有作用在环境上的循环;只产文本则仍是对话
2023-10 SWE-bench 评测 首证、警示 第一次给出仓库级完成判据:真实 GitHub issue 对应的测试必须通过。当时公开分数接近零。循环能转与目标已达成,从此必须分列
2023-10 MemGPT 产品 首证 用操作系统式分层分页对抗窗口上限。延长的是循环能走的步数,不引入新动作类型
2023-11-06 GPT-4 Turbo 模型 — 128k 窗口,单次轨迹能多装文件。工作集变大 ≠ 副作用产生。发布会不当条目
2023-11-06 Assistants API 产品 工程化 线程、工具、检索收成托管状态机雏形。循环上云,锁在一家 API。GPTs 不单独升格

刻意不升格为里程碑的:无数「AutoGPT 克隆」、大多数行业演示、GPT Store 里的 GPTs(自定义助手,不是循环产品)、以及任何只有厂商通稿、没有可复现行为的「自主员工」宣布。发布会不当条目。

能力栈切片

模型层

GPT-4 让长链规划不再完全是幻觉;Function Calling 让工具选择可解析;16k–128k 上下文让单次循环能多装一点材料。推理仍是显式的:靠 CoT / ReAct 把想法写进文本,还没有后来的推理模型把规划藏进内部计算。多模态几乎还没进入 Agent 主线——看不见屏幕,就谈不上通用电脑操作。模型是核心,不是系统。

框架 / 协议层

2023 年的关键词是框架,不是跨厂商协议。

LangChain 提供 AgentExecutor、工具包装、记忆插槽,成为 2023 默认胶水。LlamaIndex 偏检索编排。AutoGen 把多 Agent 做成消息传递。它们都是开发库:调用方自己托管循环、自己接工具、自己处理失败。控制流在库里,不在模型厂商的运行时里。

工具协议是各家私有的:OpenAI plugins、Function Calling schema、各框架自己的 Tool 抽象。没有跨厂商的「模型 ↔ 工具」标准——那是 2024 年 MCP 的事。MCP 与 Function Calling 都是接线,不是 Agent。Assistants API 是托管运行时的雏形,仍锁在一家 API 里。

记忆方面,短期靠窗口,长期靠向量库外挂;MemGPT 指出这条路不够,提出分层分页,但还没有成为产品默认。

应用层

公众看见的是 AutoGPT 和 BabyAGI:给定目标,自己列任务、自己搜网、自己调 API。四要素形态接通;缺的是可靠解析、工作集管理、对「已完成」的外部检验。演示好看,真实完成率低。这是引爆型事件,不是可靠性事件。热度 ≠ 完成率。

稍扎实的应用形态其实更窄:检索增强的问答机器人、在沙箱里分析表格的 Code Interpreter、由人盯着的客服工具调用。Coding Agent 作为品类已经有人做(GPT-Engineer 等),但还经不起后来 SWE-bench 那种考核。浏览器 / 电脑操作仍属研究原型。

基础设施层

沙箱从「可选」变成「只要让模型跑代码就必须有」:Code Interpreter 是云端先例。评测刚刚摸到任务型 Agent——SWE-bench 在 10 月出现,WebArena 等网页基准也在 2023 年前后发表——观察通道进入产品,仓库级完成判据打到接近零。可观测性几乎空白:一次循环跑飞了,往往只剩日志和账单。

还做不到什么

2023 结束时,下面这些仍然不成立。把它们写清楚,是为了后面几年的进步有参照:

  • 靠谱地做完一件几天级的事。 循环会漂、会忘、会在同一失败上重复。自主度宣传远高于实际可放手程度。无界循环没有外部完成谓词,只能靠步数上限或账单熔断。
  • 通用电脑操作。 看不见屏幕,也没有稳定的 GUI 动作接口。
  • 可验证的软件工程 Agent。 SWE-bench 给出了考卷,当时公开分数接近零。循环在第一层(观察写回)上转,在第二层(测试谓词)上失败。
  • 跨产品的工具协议。 每接一个模型厂商或框架,工具就要重写一遍。Function Calling 是一家方言,不是总线。
  • 跨会话、可治理的记忆。 向量库能搜到片段,不等于状态在任务之间可寻址、可审计。
  • 组织级身份。 Agent 要么借用某个用户的 OAuth,要么拿一把泄露风险极高的 API key。动作的主体仍是用户。2026 年 Claude Tag 要解决的,正是这条线的后续。

当时就有反方意见:无限循环、prompt injection、成本、以及「给一个目标就去创业」类 demo 的空洞。这些批评对准的是控制流无界与副作用未隔离,后来被证明比 star 数更耐放。

2 - Toolformer

自监督插入工具调用。「何时调」可写入权重;一次生成里的 API,不是循环。

Schick 等,2023-02,Toolformer: Language Models Can Teach Themselves to Use Tools(Meta AI)。在 GPT-J 上插入计算器、问答、搜索、翻译、日历等 API 调用。

  1. 论文 — 自监督采样与过滤、工具集、相对更大模型的增益。
  2. 讲解 — 训练侧证据与开放 schema 差在哪一层;为何仍不是 Agent。

原文:arXiv:2302.04761。

2.1 - Toolformer(论文)

按原文结构转述 Schick 等 2023:自监督插入 API 调用。

Timo Schick, Jane Dwivedi-Yu, Roberto Dessì, Roberta Raileanu, Maria Lomeli, Luke Zettlemoyer, Nicola Cancedda, Thomas Scialom. Toolformer: Language Models Can Teach Themselves to Use Tools。Meta AI。2022-12 工作,arXiv 2023-02。arXiv:2302.04761。


摘要

语言模型在需要最新信息、或做精确计算一类任务上仍会失败。本文表明:语言模型可以自己教会自己使用外部工具,只需少量工具使用示范。方法称 Toolformer:以自监督方式决定调用哪些 API、传什么参数、以及如何把结果写回后续 token 预测。

在不牺牲通用语言模型能力的前提下,Toolformer 学会使用多种工具:计算器、问答系统、搜索引擎、翻译系统、日历。作者用 GPT-J(66 亿参数)实现;在若干任务上超过大得多的、不会用工具的模型。

方法

出发点:人写文本时,遇到算不准或不知道的地方会去查工具。作者把这种行为做成生成过程里的内联 API 调用。

流程大意:

  1. 给模型少量如何调用某工具的示范。
  2. 在无标注语料上,让模型采样可能的 API 调用(插在文本中间)。
  3. 真正执行这些调用,得到结果。
  4. 过滤:只保留那些能降低后续 token 损失的调用——也就是「这次调用对接着写下去有帮助」。
  5. 用过滤后的文本(含调用与结果)继续微调模型。

调用在文本里表现为特殊标记包起来的字符串,解码时遇到调用就执行工具、把返回值填回去,再继续生成。工具集在文中包括:Calculator、QA 系统、Wikipedia 搜索、机器翻译、日历。

关键主张:不必为每个工具准备大规模人类标注轨迹;自监督过滤就够让模型学会何时调用。

限度(文中可见)

工具集合是作者选定的,不是开放的任意函数。调用格式仍是文本插入,不是后来的 JSON schema。评测是语言任务与知识/计算基准,不是开放目标上的多步 Agent 循环。模型规模远小于 GPT-3 / GPT-4。

2.2 - Toolformer 讲解

「何时调工具」可以写进权重。Function Calling 是 schema;这篇是训练侧证据。

论文解决了什么问题

2022 年工具使用默认靠提示:示范格式、解析字符串、赌模型吐出可执行调用。脆,也不会从预训练目标里长出来。Toolformer 改问:若一次 API 调用能降低后续 token 损失,模型能不能自己发现该插在哪。

过滤标准不是人喜欢哪条轨迹,是语言模型损失有没有下降。对象仍是生成中间的内联 API,不是「给一个目标转完」。

对后续 LLM 的影响

「工具使用可学」从此有训练侧证据。后来各家把函数调用做进微调与偏好数据,问题陈述同类:何时调用、参数是什么。它没有规定 Chat Completions 的 functions 字段;那是 6 月的接口工程。训练目标 ≠ 开放 schema。

对 AI Agent 的影响

按 AI Agent 定义,Toolformer 不是 Agent:一次生成里插入调用,没有目标驱动的多步循环,也没有宿主侧的执行循环。它补的是决策核心的一块——算不准时把计算交出去。没有这一块,循环里的 Action 只能靠提示词演戏。有了这一块,仍缺宿主、缺停机、缺完成谓词。

3 - GPT-4

2023-03。多模态大模型。核心第一次撑得住稍长工具链。核心不是 Agent。

OpenAI,2023-03-14 产品发布;技术报告 3 月 15 日挂出。ChatGPT Plus 与 API 上的 GPT-4。

  1. 论文 — 按技术报告转述:能力、预测规模、限度。不写清参数量(报告本身未披露)。
  2. 讲解 — 为何长链工具使用开始像样,以及为何模型仍不是 Agent。

原文:arXiv:2303.08774。产品说明:GPT-4。

3.1 - GPT-4 Technical Report(论文)

按原文结构转述 OpenAI 2023:多模态、基准、可预测扩展与限度。

OpenAI。GPT-4 Technical Report。2023-03-15 首挂,后有修订。arXiv:2303.08774。架构、数据配比、参数量报告未披露。

中文译本:飞书(DeepL + 人工校)、CSDN 章节译本。


摘要

报告 GPT-4:大规模多模态模型,接受图像与文本输入,产出文本。在许多现实场景上仍不如人,但在一批专业与学术基准上达到人类水平表现,包括模拟律师资格考试约位于应试者前 10%。GPT-4 是基于 Transformer、预训练为预测文档中下一个 token 的模型。训练后对齐改善真实性,以及是否遵守期望行为。项目的核心之一是:基础设施与优化方法在很宽的规模范围内行为可预测,从而能用不超过 GPT-4 计算量 1/1000 的小模型,预先估出 GPT-4 在某些指标上的表现。

能力与评测(报告主张)

报告用大量考试与学术基准对照 GPT-3.5:多数任务上 GPT-4 明显更高。强调的是专业考试、多语言、以及一些需要更长推理的题。图像理解写在报告里;面向 ChatGPT 用户的视觉能力是后来分阶段放出,不是 3 月 14 日网页聊天的默认形态。

对齐:用与 InstructGPT 同类的后训练,改善事实性与按期望行为回答。系统卡另文讨论安全、幻觉、越狱。

限度(报告自己列的方向)

仍会幻觉。仍可能自信地错。对知识截止日期之后的事实不可靠。在不少现实任务上不如专家。报告刻意不写模型大小与训练数据细节,因此无法从本文核对「多少参数」。

对象是一个语言模型检查点及其基准,不是开放环境里的行动循环。

3.2 - GPT-4 讲解

决策核心变强,稍长工具链开始像样。它是决策核心,不是 Agent;循环在宿主。

报告解决了什么问题

GPT-3.5 / ChatGPT 已经能多轮对话。把一件稍长的事拆开、选工具、读回执再改主意,仍然容易漂。GPT-4 把同一套「预测下一个 token + 对齐」做到:在 schema、错误回执、部分结果之间还能保住目标。对应用方,这意味着可以开始认真做多步编排,而不只是聊天演示。

它没有发明循环,也没有发明函数接口。3 月的 GPT-4 聊天仍主要是对话;插件和 Function Calling 是随后几周到三个月的产品。核心换了,控制流仍在调用方。

对后续 LLM 的影响

此后一年的默认决策核心就是它(以及同级的 Claude、Gemini 竞品)。128k 窗口、视觉、更便宜的 Turbo,都长在这只模型家族上。报告里「用小模型预测大模型损失」把规模定律再写一遍,细节对外锁住。考试分数度量的是决策核心,不是系统。

对 AI Agent 的影响

按 AI Agent 定义,GPT-4 不是 Agent:一次调用生成文本(或稍后看图再生成文本)。副作用出不去,观察通道不存在。没有它,2023 年 AutoGPT 一类演示更早散架;有了它,也不等于循环可靠。可靠性要另看完成谓词与产品,不能从专业考试直接推出「已经能自主干活」。

4 - ChatGPT plugins

2023-03-23。外部工具做成 ChatGPT 插件。面向终端用户;协议私有;人在环路里。

OpenAI,2023-03-23,ChatGPT plugins。浏览、第三方服务、检索等以插件形式接到对话。

  1. 材料 — 按当时公告转述:形态、安全提醒、与 API 的差别。
  2. 讲解 — 终端用户第一次在聊天窗口里看见工具调用;为何仍不是无界循环。

当时公告:ChatGPT plugins。

4.1 - ChatGPT plugins(材料)

按 2023-03-23 公告转述:插件、浏览与安全边界。

本页转述 插件发布当时公开说了什么,不以 2024 停用插件、GPTs Actions 回填。

主要出处:OpenAI,2023-03-23,ChatGPT plugins。本页不复制公告全文。


产品主张

ChatGPT 默认只根据训练数据说话,无法取最新信息、不能代表用户做外部动作。插件让模型访问最新信息、运行计算、使用第三方服务。公告把这写成扩展 ChatGPT 能力的途径。

当时公开的形态包括:

  • 浏览: 让模型访问互联网。
  • 代码解释器(alpha): 在沙箱里跑 Python,处理上传文件。完整对 Plus 用户放开是几个月后。
  • 第三方插件: 用清单文件描述 API,模型在对话里选择调用。早期示例包括旅行、购物、餐饮等。
  • 检索插件: 把开发者自己的文档接到对话。

使用方式是:用户在 ChatGPT 里启用插件,模型在需要时调用,结果回到对话。人仍在环路里确认下一步说什么;不是把一个开放目标交给系统自己转完。

安全(公告自己写的)

把模型接到外部工具会放大风险:插件返回的不可信内容可能诱导模型做非预期动作。公告要求谨慎启用、限制可调用的工具,并对有真实世界后果的动作保持人确认。这与三个月后 Function Calling 公告里的那条 proof-of-concept 同一类问题。

当时不是什么

私有协议,锁在 ChatGPT 产品里,不是开放的跨厂商工具标准。也不是 Assistants API:那是 11 月 DevDay 才把类似能力收给开发者。

4.2 - ChatGPT plugins 讲解

工具第一次作为产品功能出现在大众聊天窗口。协议私有;人仍在环路中。

当时解决了什么问题

ChatGPT 能聊,不能查今天的网页,也不能订票。插件把「模型 + 外部 API」做成用户可开关的附件,不要求每个人自建循环。对普通用户,这是第一次看见对话框里出现「正在调用某某工具」。

调用嵌在一轮轮对话里,由用户接着问。它解决的是可达的工具,不是无人盯着的目标执行。清单、鉴权、manifest 仍是厂商私有协议。

对后续 LLM 与 Agent 的影响

厂商私有的工具清单(manifest / OpenAPI)成为 2023 年的默认做法。开发者侧三个月后的 Function Calling,把同类能力收进 API:从产品插件变成 schema。2024 年插件体系逐步关掉,能力拆进浏览、代码执行和后来的 GPTs Actions。

记它,是因为「终端用户 + 工具」这一产品形态从这里开始。不要写成已经稳定的开放协议,也不要写成 AutoGPT 那种无界循环。按 AI Agent 定义,人在每一跳上点头,观察通道等于用户下一句——可达工具 ≠ Agent。

5 - AutoGPT

2023-03。给目标,让 GPT-4 自己拆任务、搜网、写文件、再循环。无界循环;热度 ≠ 完成率。

Toran Bruce Richards / Significant Gravitas。仓库 2023-03-16 创建;约 3 月底公开爆红。自称让 GPT-4 充分自主的实验。

  1. 材料 — 按当时仓库主张转述:目标、循环、工具。不加入后来的产品化改版。
  2. 讲解 — 无界循环如何接通四要素形态,以及为何 star 数不是完成率。

当时仓库:Significant-Gravitas/AutoGPT。

5.1 - AutoGPT(材料)

按 2023-03 公开仓库转述:自主循环、工具与目标陈述。

AutoGPT 没有对应一篇研究论文。本页转述 2023 年 3 月公开爆红时仓库在说什么,不以后来的产品品牌、云服务回填。

主要出处:GitHub Significant-Gravitas/AutoGPT(创建于 2023-03-16);早期 README 与提示词将项目写成 an experimental open-source attempt to make GPT-4 fully autonomous。本页不复制仓库全文。


产品主张(当时)

给 Agent 一个用自然语言写的目标(以及角色/约束),由 GPT-4(或 GPT-3.5)在循环里自己决定下一步。早期演示里的动作包括:网页搜索、读写本地文件、执行代码、启动更多模型实例、把结果写入所谓长期记忆。人可以设一个总目标后少干预——这与 ChatGPT 一轮一轮确认不同。

循环的直观形状:思考当前状态 → 选择一个动作 → 执行 → 把观察写回上下文 → 再思考。格式直接抄自 ReAct 一类交错文本,外加任务列表与记忆。没有 Function Calling schema(接口要到 6 月);解析靠模型吐出的结构化文本。

当时能看见的边界

仓库自称 experimental。公开讨论很快集中在:无限循环、重复同一失败、token 账单、以及在文件/网上做出难以撤销的操作。这些不是后来才发明的批评,是上线几周内就并排存在的反方意见。

它按循环和工具已经像 Agent;它没有提供可复核的任务完成率。热度指标是 GitHub star 与媒体标题,不是 SWE-bench 一类考卷——考卷要到 10 月才出现。

5.2 - AutoGPT 讲解

把终止条件交给模型自己写的任务队列。无界循环接通四要素形态;热度 ≠ 完成率。

当时解决了什么问题

ChatGPT 要人接着问。插件要人启用再聊。AutoGPT 把问题改成:能不能把 GPT-4 放进 while 循环,对着一个目标自己搜、自己写、自己再决定?这把 2022 年写在论文里的交错循环,做成了可 git clone 的脚本。

它没有新的训练方法,也没有新的工具协议。新的是控制流归属:目标框,而不是对话框;停机条件交给模型自己列的任务队列。无界循环没有外部完成谓词,只能靠步数上限或账单熔断。

对后续 LLM 与 Agent 的影响

按 AI Agent 定义,这已经是 Agent:LLM 决策、多步循环、对环境行动、按回执再决策。四要素在形态上接通。2023 年几乎所有「自主 Agent」演示都沿这条幻想生长,也沿同一失败模式死去:计划漂、记忆靠窗口、解析失败、空转烧钱。空转与不可逆副作用是无界循环的预期行为,不是实现瑕疵。

10 月 SWE-bench 把「修真实 issue」的分数打在接近零:那是完成谓词,不是对「循环这个想法」的否定。star 数度量传播,不度量完成率。引爆型事件记热度;可靠性另记。两者不要合成一句「2023 年 Agent 已经能干活」。热度 ≠ 完成率。

6 - BabyAGI

2023-03。执行、创建、重排三条 LLM 调用围着任务队列转。更短的无界循环演示。

Yohei Nakajima。2023-03-28 先以 Task-Driven Autonomous Agent 公开,随后收成约百行的 babyagi.py。名字不表示这是 AGI。

  1. 材料 — 任务队列、三个 agent 函数、向量库记忆。
  2. 讲解 — 和 AutoGPT 同一控制流归属,实现更短;热度为何不等于完成率。

当时说明:GitHub yoheinakajima/babyagi(后来仓库改版,早期脚本见作者归档说明)。

6.1 - BabyAGI(材料)

按 2023 春公开脚本转述:任务队列与三条 LLM 调用。

本页转述 2023 年 3–4 月那一版短脚本在做什么,不以 2024 以后作者重写的框架回填。作者写明:这是对 3 月 28 日推上 Task-Driven Autonomous Agent 的精简;仓库名里的 AGI 来自围观反应,并不声称这是 AGI。


机制

核心是一个 while True:

  1. 从队列取出当前任务。
  2. execution_agent:用 LLM 按总目标执行该任务,得到一段文本结果。
  3. 把结果写入向量库(早期常用 Pinecone + text-embedding-ada-002)。
  4. task_creation_agent:根据结果和现有队列,让 LLM 提出新任务。
  5. prioritization_agent:让 LLM 按总目标重排队列。

早期实现用 Completions API(如 text-davinci-003),不是 Chat Completions,更没有 Function Calling。上下文靠目标字符串、最近结果和检索到的旧结果拼接。公开讨论里也有人指出:检索到的片段有时并没有真正进执行提示——脚本首先是概念演示。

当时不是什么

没有沙箱权限模型,没有稳定的工具 schema,没有任务完成的自动判定。长度上比 AutoGPT 短很多,因此更容易被复制和改写。衍生项目在几个月内大量出现,也大量停更。

6.2 - BabyAGI 讲解

把自主循环收成任务队列。同一控制流归属:模型列任务、模型选下一步。好抄,也空转。

当时解决了什么问题

AutoGPT 已经把循环摊在一个大仓库里。BabyAGI 把同一想法收成「队列 + 三个提示」:执行、生新任务、重排。读者能在一页纸上画出控制流。这降低了「自己做一个 Agent」的起步成本,也把失败模式暴露得更清楚——队列会自我膨胀,执行结果不一定推进目标。无界循环换了更短的实现,停机条件仍在模型自己写的队列里。

对后续 LLM 与 Agent 的影响

按 AI Agent 定义,这也是 Agent,只是工具和环境往往薄到只剩 LLM 自己和一层向量库。后来许多多 Agent / 任务图框架,第一张示意图仍是「规划器往队列里塞任务」。它不是可靠运行时,也不是评测。

记引爆:短脚本改变了 2023 年春天大家以为 Agent 长什么样。记限度:名字里的 AGI 是反讽,作者自己写过。衍生项目极多,大多很快消失。热度 ≠ 完成率;队列在转 ≠ 目标已达成。

7 - LangChain 成为默认编排层

2023 全年。把 chain、agent、tool 做成默认胶水。循环可复制;生日在 2022 秋。

Harrison Chase 等。库出现于 2022-10;公司 2023-02。2023 年记的是它成为教程和起步代码的默认层,不是生日。

  1. 材料 — 按 2023 年公开文档转述:Chain、Agent、Tool、记忆插槽。
  2. 讲解 — 2023 年为何人人先用它;抽象过重批评针对的是哪一段。

文档与仓库:langchain。

7.1 - LangChain 2023(材料)

按 2023 年库的公开表面转述:Chain、AgentExecutor、工具与记忆。

2022 年 10 月的 0.0.1 见 2022 · LangChain。本页只写 2023 年作为默认编排层时,文档把系统拆成哪些块,不以 2024 拆包、LangGraph 回填。


当时文档里的块

公开文档把 LLM 应用拆成可组合部件,名称在 2023 年稳定下来:

  • Model I/O: 提示模板、聊天模型、输出解析。
  • Retrieval: 文档加载、切分、向量库、检索器。这是 RAG 流水线的默认拼法。
  • Chains: 把上列部件串成一步或多步调用。
  • Agents: 由模型决定下一步调用哪个工具;AgentExecutor 跑思考—行动—观察循环,默认实现大量抄 ReAct 文本格式。
  • Memory: 把对话摘要或检索结果再塞回提示。短期等于窗口,长期常等于向量库。
  • Tools: 搜索、计算器、Python、HTTP 等包装,让 Agent 有可调用的函数。

开发者用 Python(随后有 JS)在自己的进程里托管循环。没有跨厂商协议:换模型厂商往往要换包装类。版本是 0.0.x,接口变动快,这是当时就存在的使用成本,不是后来才发明的抱怨。

公司与生态

2023-02 公司成立。2023 年融资与教程爆炸同步发生:ChatGPT 之后人人要「自己接工具」,现成胶水成为默认答案。LlamaIndex 等在检索侧分流,并不改变 LangChain 作为 Agent 入门词条的位置。

7.2 - LangChain 讲解

把循环、工具、检索收成可 pip 的默认胶水。循环可复制;抽象泄漏变成 2023 的日常。

当时解决了什么问题

ReAct 在论文里,AutoGPT 在一个大仓库里,RAG 在各人的 notebook 里。LangChain 提供一套共同名词:Agent、Tool、Memory、Chain。抄作业的成本从「读论文再手搓」变成「改一个工具类」。没有 Function Calling 之前,它用提示词解析撑过上半年;6 月之后又把函数调用收进同一套 Agent 抽象。

生日在 2022 秋。2023 年记的是它成为教程和起步代码的默认层:当时必须有人把循环跑起来。

对后续 LLM 与 Agent 的影响

2023 年大多数公开 Agent 教程从这里起步。警示:抽象层厚、版本不稳、出错时难以看见模型实际收到的提示;这些批评针对膨胀期,不能用来否定当年为什么它先被采用。当时生态与后来口味要分开看。

它是开发库,不是运行时:循环仍在你的服务器上,失败仍要自己停。控制流在库里,不在模型厂商。更薄的 SDK 和后来的代码优先运行时,是对这一层口味的修正,不是 2023 年已经发生的事。胶水能把循环复制出来;胶水不是协议,也不是完成谓词。

8 - Generative Agents

2023-04。记忆流、反思、检索驱动的社会模拟。旁支首证;完成谓词是可信,不是仓库绿。

Park 等,Stanford / Google Research。25 个 agent 的 Sims 式沙盒小镇。论文 2023-04 挂出;UIST 2023。

  1. 论文 — 按原文转述:记忆流、反思、计划,以及情人节派对。
  2. 讲解 — 为何这是长期记忆 / 角色旁支的首证,而不是任务型主线。

原文:arXiv:2304.03442。

8.1 - Generative Agents(论文)

按原文结构转述 Park 等 2023:可信的人类行为模拟。

Joon Sung Park, Joseph C. O’Brien, Carrie J. Cai, Meredith Ringel Morris, Percy Liang, Michael S. Bernstein. Generative Agents: Interactive Simulacra of Human Behavior。Stanford University、Google Research / DeepMind。arXiv 2023-04。arXiv:2304.03442。UIST 2023。

中文译本:全文翻译 + 导读。


摘要

可信的人类行为代理可以支撑沉浸式环境、人际沟通演练、原型工具。本文引入 generative agents:用计算软件模拟可信人类行为的 agent。它们起床、做早餐、去上班;画家画画,作者写作;形成观点、注意到彼此、发起对话;记住并反思过去的日子,再计划下一天。

架构把大语言模型接上三块:用自然语言存下完整经历(记忆流),随时间把记忆合成更高层的反思,再动态检索来规划行为。作者把 25 个这样的 agent 放进一个类似《模拟人生》的沙盒小镇。终端用户可用自然语言观察和干预。评测显示它们能产生可信的个体行为与涌现的社会行为。例如:用户只指定一名 agent 想办情人节派对,两天内邀请会自己扩散,有人新结识、有人约着去派对,并在正确时间到场。消融表明观察、计划、反思各自都对可信度有贡献。

架构

实现用当时的 gpt-3.5-turbo(ChatGPT)。文中写明:写作时 GPT-4 API 仍是邀请制。

记忆流是一份按时间排列的自然语言记录。每条有描述、创建时间、最近访问时间。最基本的条目是观察:自己做了什么,看见别人或物体做了什么。检索按三项打分再加权:近因(距上次取出的游戏小时数,指数衰减)、重要性(让模型打 1–10 分)、相关性(嵌入向量与当前查询的余弦相似度)。取出能装进窗口的顶部记忆,再交给语言模型。

反思是更高层、更抽象的想法,也作为记忆存回去。当最近事件的重要性分数之和超过阈值(实现里是 150),大约每天两三次生成反思:先从最近 100 条里问「三个最显著的高层问题」,再检索、抽取洞察并引用证据。反思可以再反思,形成树:叶子是观察,越往上越抽象。

计划把结论和环境译成高层日程,再递归拆成更细的动作(先一天的几大块,再小时,再 5–15 分钟)。计划和反思都写回记忆流。每一步感知世界后,模型决定是继续原计划还是反应;需要互动时再生成对话。没有计划时,模型会为「当下可信」在短时间内重复吃饭一类动作。

环境用树表示空间包含关系,再译成自然语言。agent 只记住自己见过的子图,不是全知。动作再映射回沙盒状态(例如咖啡机从 idle 变成 brewing)。

评测(文中数字)

受控评测:用自然语言「采访」agent,测自我认知、记忆、计划、反应、反思。100 名人类评估者对五种条件做可信度排序,再用 TrueSkill。完整架构最高(μ≈29.89);去掉反思次之;再去掉计划再次之;众包人类角色扮演更低;完全没有观察/计划/反思最低(μ≈21.21)。端到端:25 个 agent 连续两天游戏时间互动。情人节派对从一条用户指定的意图扩散并真正发生。常见错误:检索失败、给记忆加戏、继承指令微调后过于正式的说话方式。

文中脚注写明:说 agent「去某处、做某事」是为了可读,并不暗示真正的人类式主体性;目标是迪士尼角色那种可信幻觉。

8.2 - Generative Agents 讲解

完整经历写成自然语言记忆,再反思、再计划。社会模拟旁支;完成谓词是可信,不是仓库绿。

论文解决了什么问题

当时用 LLM 一次生成一段角色行为已经能看,但窗口装不下不断增长的经历,角色会忘、会自相矛盾、会在同一顿午饭上停住。这篇把「记得住、能概括、能按概括再行动」做成一套检索架构,而不是再训一个更大的模型。

环境是游戏沙盒,不是 GitHub 或浏览器。成功标准是行为可信,不是修好一个 issue。完成谓词和任务型主线不是同一把尺子。

对后续 LLM 与 Agent 的影响

按 AI Agent 定义,这些角色确实在循环:感知小镇、行动、把观察写回记忆、再决策。但主线对象是任务型 Agent——给目标、对环境做事、按回执推进。这篇打开的是另一条旁支:长期角色记忆、社会涌现、NPC。后来许多「记忆模块」示意图仍能看见记忆流 + 反思 + 检索这三块。

限度要从原文读:实现绑在 ChatGPT 上,成本高;检索失败会编造;论文自己把「主体性」写成可读性修辞。不要把它读成 2023 年已经有了可治理的组织记忆,也不要用情人节派对的热闹去填 SWE-bench 的零分。热度 ≠ 任务完成率。

9 - Voyager

2023-05。Minecraft 里用自动课程、技能库和迭代提示做终身学习。研究样本,不是生产。

Wang 等。NVIDIA / Caltech / UT Austin / Stanford 等。arXiv 2023-05。自称第一只在 Minecraft 里持续探索、积累技能、少需人工干预的 LLM 具身终身学习 agent。

  1. 论文 — 自动课程、可执行代码技能库、环境反馈与自验证。
  2. 讲解 — 代码即动作、技能可组合;为何停在研究原型。

原文:arXiv:2305.16291。

9.1 - Voyager(论文)

按原文结构转述 Wang 等 2023:Minecraft 中的开放式具身终身学习。

Guanzhi Wang, Yuqi Xie, Yunfan Jiang, Ajay Mandlekar, Chaowei Xiao, Yuke Zhu, Linxi “Jim” Fan, Anima Anandkumar. Voyager: An Open-Ended Embodied Agent with Large Language Models。arXiv 2023-05。arXiv:2305.16291。

中文译本:宝玉。


摘要

Voyager 是作者所称第一只由 LLM 驱动、在 Minecraft 中做具身终身学习的 agent:持续探索、获得多样技能、发现新事物,无需人工干预。三块组成:

  1. 自动课程,最大化探索。
  2. 不断增长的技能库,用可执行代码存储和检索复杂行为。
  3. 迭代提示:把环境反馈、执行错误、自验证写回提示,改进程序。

与 GPT-4 的交互是黑盒查询,不微调参数。技能在时间上可延长、可解释、可组合,能力会复利,并减轻灾难性遗忘。相对先前方法,文中报告:独特物品约 3.3 倍,旅行距离约 2.3 倍,关键科技树里程碑最快约 15.3 倍。学到的技能库可以带到新世界,从零解新任务;对照方法难以泛化。

方法

环境基于 MineDojo,底层动作走 Mineflayer 的 JavaScript API,而不是像素到按键。作者写明:重点是推 GPT-4 做终身具身学习,不是解 3D 感知或低层运动控制。

自动课程让 GPT-4 在「发现尽可能多样的事物」这一总目标下提出下一任务,输入包括当前物品栏、附近方块、已完成/失败任务,以及 GPT-3.5 自问自答的附加上下文。难度自下而上,避免下一步过难。

技能是一段可复用函数。成功并通过自验证后,用描述的嵌入做索引,存进向量库。新任务时检索最相关的若干技能,再生成新代码。复杂技能由简单程序组合。

迭代提示用三类反馈:环境中间进度(例如还缺 7 个铁锭)、解释器报错、以及另一个 GPT-4 充当批评者判断任务是否完成并给改进建议。最多约 4 轮仍卡住就换课程里的下一个任务。主模型 gpt-4-0314,部分 NLP 辅助用 gpt-3.5-turbo-0301。

基线是作者改写后能在 MineDojo 里跑的 ReAct、Reflexion、AutoGPT 风格循环。Voyager 相对它们多了技能库、自验证和开放探索课程。文中对照方法在科技树的钻石层解锁为 0/3 试次;Voyager 是唯一解锁钻石工具的。160 次提示迭代内发现 63 种独特物品。

9.2 - Voyager 讲解

动作写成可复用代码,环境报错再改。开世界终身学习的研究样本,不是可部署运行时。

论文解决了什么问题

Minecraft 没有固定通关剧本。先前 LLM agent 往往对着一个目标做一次 ReAct,做完就忘。这篇要的是:自己出题、做成了就存成函数、下次还能检索组合。动作空间选代码而不是原始按键,是因为程序天然表示一段延续的、可组合的行为。观察通道是库存与解释器报错,不是测试套件。

对后续 LLM 与 Agent 的影响

按 AI Agent 定义,这是具身环境里的 Agent:GPT-4 决策、多步写代码、看库存和报错、再改。它把 2023 年几条线接到一起——代码当工具、技能当外部记忆、课程当规划器。影响力在研究:后来「技能库 / 代码即策略」的开世界实验会引到这里。

它不是生产系统。控制依赖 Mineflayer 高级 API;评测在游戏里,不是 SWE-bench;token 成本高;自验证仍是另一只模型在看。完成谓词是游戏内进度,不是仓库绿。记首证:终身技能积累可以靠提示和库,不必先微调身体。不要记成「游戏 Agent 已经能当员工」。研究热度 ≠ 可部署完成率。

10 - Function Calling

2023-06-13。工具调用收成 Chat Completions 的可校验 schema。协议不是 Agent;循环在宿主。

OpenAI,2023-06-13。gpt-4-0613 与 gpt-3.5-turbo-0613 微调成:判断要不要调函数,并吐出符合签名的 JSON。同日还有 16k 窗口的 gpt-3.5-turbo-16k。

  1. 材料 — 按当时公告转述:functions / function_call、模型、安全提示。
  2. 讲解 — 为何这是后面所有编排的地基,以及为何接口仍不是 Agent。

当时公告:Function calling and other API updates。

10.1 - Function Calling(材料)

按 2023-06-13 公告转述:函数描述、JSON 参数与 16k 窗口。

本页转述 2023-06-13 公告当时公开说了什么,不以后来的 tools 参数改名、并行工具调用回填。

主要出处:OpenAI,2023-06-13,Function calling and other API updates。本页不复制公告全文。


接口主张

开发者可以把函数描述交给 gpt-4-0613 和 gpt-3.5-turbo-0613,由模型决定是否输出一个含参数的 JSON 对象。公告把这写成更可靠地把 GPT 接到外部工具和 API 的方式。这两只快照被微调成两件事:根据用户输入判断要不要调用;以及输出符合函数签名的 JSON。

Chat Completions(/v1/chat/completions)新增参数:

  • functions: 用 JSON Schema 描述一组函数(名称、参数形状)。
  • function_call: 可选;让模型自动决定,或强制调用某一个。

模型并不在 OpenAI 一侧执行函数。开发者在自己的代码里跑完,把结果作为后续消息送回去,再生成给人看的回复。公告举例包括:用外部工具回答问题、把自然语言转成 API 或数据库查询、从文本抽出结构化数据。

同日还发布 gpt-3.5-turbo-16k:上下文从约 4k 拉到 16k。公告同时下调部分价格,并给出旧快照(gpt-3.5-turbo-0301、gpt-4-0314)的弃用时间表。

安全(公告自己写的)

工具返回的内容可能诱导模型做非预期动作。公告要求:只消费可信工具的信息;对有真实世界后果的动作(发邮件、上网发帖、下单等)加人确认。这与三个月前插件公告是同一类问题。

当时不是什么

这是模型层与 API 层能力。一次请求里「选不选函数、参数是什么」可以被可靠解析,不等于系统已经在环境里多步循环。循环、重试、停机策略仍由调用方自己写。

10.2 - Function Calling 讲解

工具调用从 prompt 把戏收成可校验 schema。协议,不是系统;循环仍由宿主写。

当时解决了什么问题

上半年开发者仍在 prompt 里逼模型吐 JSON,再正则抠字段。ReAct 的 Action 是自由文本。插件是 ChatGPT 产品里的私有协议。Function Calling 把同一件事做成 Chat Completions 的一等参数:schema 进、结构化调用出。模型还被专门微调过「何时调用」,不再只靠少样本示范。

模型输出的是 name + arguments。执行发生在调用方进程里:宿主跑完,把回执当后续消息送回去。单次 Function Call 是一次 I/O,没有「根据返回值再选」——那一跳仍要宿主再发一次请求。16k 窗口是并列的物理前提:单次循环能多看一点工具回执,仍然远不够装下一个仓库。

对后续 LLM 与 Agent 的影响

这是 2023 年工具接口的工程化节点。之后各家的 tool use 都沿着「模型选工具 + JSON 参数 + 宿主执行」走。LangChain 一类库很快把函数调用收进同一套 Agent 抽象。跨厂商总线是下一年的 MCP;今年只有一家方言。

按 AI Agent 定义,Function Calling 本身不是 Agent。它是协议:模型↔工具的第一种稳定 schema。它没有规定多步循环,也不对环境行动——副作用出在你的服务器上。缺了它,循环仍然能用文本协议硬撑;有了它,循环才变得可产品化。不可信工具输出仍可注入非预期动作:公告已经写明,不是后来才发现的漏洞。协议不是系统;schema 到位,循环仍在宿主。

11 - Code Interpreter

2023-07。ChatGPT Plus 上云端 Python 沙箱全面放开。只要 exec,沙箱就是执行边界。

OpenAI。插件期已是 alpha;约 2023-07-06 开始向全体 ChatGPT Plus 用户滚动放出。后来改称 Advanced Data Analysis。2023 年记的是沙箱成为产品能力,不是改名。

  1. 材料 — 按当时公开说明转述:能跑什么、文件与图表、仍在对话里。
  2. 讲解 — 为什么「只要跑代码就必须有沙箱」从这里开始成立。

当时产品说明见 OpenAI 发布说明与 7 月公开滚动通知;插件期总述见 ChatGPT plugins。

11.1 - Code Interpreter(材料)

按 2023-07 Plus 放开时的公开说明转述:云端 Python、文件与图表。

本页转述 2023 年 7 月对 ChatGPT Plus 全面放开时产品在说什么,不以后来的 Assistants API Code Interpreter、改名 Advanced Data Analysis 回填材料细节。改名发生在约 9 月,属于同一功能的商标调整,不在本页展开。

主要出处:OpenAI 2023-07-06 公开滚动通知(全体 Plus 用户约一周内可用,需在设置中打开 beta);ChatGPT 发布说明;插件期已把它列为官方插件的 alpha。本页不复制公告全文。


产品主张

模型在云端隔离环境里写并执行 Python,可选地读取用户上传的文件。当时公开列出的用途包括:分析数据、画图、编辑文件、做数学计算、在上传与下载之间转换格式。这与纯聊天不同:答案可以来自实际跑过的代码,而不是只生成一段看起来像代码的文本。

使用方式仍是 ChatGPT 对话。用户打开功能、上传文件、提问;模型决定写什么代码、在沙箱里执行、把打印结果和图表带回对话。人仍在环路里:下一步问什么由用户说。不是把一个开放目标交给系统自己转完。

沙箱有隔离边界:能跑的是环境里提供的 Python 与库,不能当作用户本机的任意 shell。会话级文件与有限的执行时间是当时使用体验的一部分。

当时不是什么

不是 11 月 Assistants API 里那个开发者可托管的同一工具接口——那是 DevDay 才把类似能力收给 API。也不是通用电脑操作:看不见屏幕,没有稳定的 GUI 动作。插件期的浏览是另一条线,本页只记代码执行。

11.2 - Code Interpreter 讲解

模型生成的代码必须隔离执行。沙箱从此是执行边界,不是插件彩蛋。

当时解决了什么问题

GPT-4 已经能写分析脚本,但写完没有地方安全地跑,结果也无法自动看图。插件 alpha 证明这条路走得通;7 月对 Plus 放开,使「上传表格、要一张图、要一个计算」变成数百万人能点的产品,而不只是开发者 notebook。

隔离是前提,不是附加项:一旦执行模型生成的代码,就必须限制文件系统、网络和持久化。观察通道变成真实 stdout / 异常栈,不再是模型自己描述「我跑过了」。这把环境问题从研究论文里的假设,变成产品默认架构。

对后续 LLM 与 Agent 的影响

工程化:沙箱开始成为 Agent 能力栈的基础设施层——后来 Assistants API、各种本地/云端代码工具都沿着「模型生成 → 隔离执行 → 回执进上下文」走。只要允许模型执行代码,沙箱就从可选项变成执行边界。

按 AI Agent 定义,对话里偶发的一次跑代码仍是人在环路的工具调用;循环和停机策略没有因此自动出现。但它把「环境」从抽象的 API 变成了真的进程。编码 Agent 要干活,先得有一个能失败、能看 traceback 的地方。有沙箱 ≠ 有完成谓词;有副作用通道 ≠ 目标已达成。

12 - AutoGen

2023-08。多 Agent 做成消息总线。至少一方执行副作用,才有作用在环境上的循环。

Wu 等,Microsoft Research / 宾州州立大学等。arXiv 2023-08。开源库允许用可对话的多个 agent 协作完成任务。

  1. 论文 — 可对话 agent、对话式编程、内置助手与用户代理。
  2. 讲解 — 消息总线如何成为 2023 年多 Agent 的默认拼法;为何必须有一方碰环境。

原文:arXiv:2308.08155。当时仓库:microsoft/autogen。

12.1 - AutoGen(论文)

按原文结构转述 Wu 等 2023:用多 Agent 对话构建 LLM 应用。

Qingyun Wu, Gagan Bansal, Jieyu Zhang, Yiran Wu, Beibin Li, Erkang Zhu, Li Jiang, Xiaoyun Zhang, Shaokun Zhang, Jiale Liu, Ahmed Awadallah, Ryen W. White, Doug Burger, Chi Wang. AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation。Microsoft Research 等。arXiv 2023-08。arXiv:2308.08155。


摘要

AutoGen 是开源框架,让开发者通过多个可以互相交谈的 agent 构建 LLM 应用。agent 可定制、可对话,后端可以是 LLM、人类输入、工具,或它们的组合。交互行为也可灵活定义。自然语言和代码都能用来编排不同应用的对话模式。作者在数学、编程、问答、运筹、在线决策、娱乐等示例上展示框架有效。

框架

两个核心概念:

可对话 agent。 能收发消息、维护内部上下文。能力来自三类后端:LLM(角色扮演、根据对话推进、写代码)、人(按配置在若干轮征求输入,默认 UserProxy 可设频率与可跳过)、工具(执行代码或函数调用)。ConversableAgent 是最高层抽象;预置的 AssistantAgent 偏 LLM 助手,UserProxyAgent 偏人类代理兼代码/函数执行。

文中示例:助手生成方案,用户代理征求人输入或执行代码,再把结果作为反馈送回助手。

对话式编程。 把复杂工作流收成 agent 之间的对话:计算是「为了回话采取的动作」,控制流是「谁在何时对谁说话」。统一接口包括 send/receive 与 generate_reply。默认 auto-reply:收到消息就生成回复并送回,直到终止条件。控制可以用自然语言提示(例如出错就再写代码,完成时输出 TERMINATE)、Python 代码(最大自动回复数、人工模式、注册自定义回复函数),以及两者切换(含 LLM 提出的 function call)。除静态来回外,还支持动态选下一个说话者的群聊(GroupChatManager)。

应用与限度(文中可见)

示例包括:两只内置 agent 解 MATH;检索增强问答(助手在上下文不够时回复 UPDATE CONTEXT 以触发再检索);ALFWorld 上加一只常识 grounding agent,相对两 agent 变体平均约 15% 提升;把 OptiGuide 编码工作流从 430 行以上收到约 100 行,多 agent 相对单 agent 在识别不安全代码上 F1 更高。伦理节写明:让 LLM agent 通过执行代码或函数调用改外部环境(例如装包)有风险,需要额外防护。文中称工作仍偏早期实验。

12.2 - AutoGen 讲解

多角色收成消息总线。控制流变成「谁对谁说话」。必须有一方产生副作用,否则仍是对话。

论文解决了什么问题

单只 LLM 加工具已经能跑 ReAct。更复杂的任务被拆成「写代码的、跑代码的、盯安全的、补常识的」。若每次都手写控制平面,编排会爆炸。AutoGen 的解法是:每个角色是可对话对象,默认收到消息就回;工作流看起来像聊天,而不是一张显式状态机。控制流从 while 变成消息总线:谁在何时对谁说话。

对后续 LLM 与 Agent 的影响

工程化:2023 年「多 Agent」从口号变成可 clone 的库。后来许多图/角色框架仍是消息传递加自动回复。按 AI Agent 定义,多只 LLM 互相对话,至少一方在对环境行动(执行代码、调函数),整体才是 Agent 系统;若只产文本,就还是角色扮演。总线本身不产生副作用。

限度:角色变多会放大空转和串通式幻觉;论文自己把代码执行写成风险。它是开发库,循环仍在你的进程里。不要把它读成已经解决了 SWE-bench 那种真实仓库修改。消息条数 ≠ 完成率;多角色 ≠ 更可靠的单步。

13 - SWE-bench

2023-10。真实 GitHub issue 上的仓库级完成谓词。当时分数接近零:考卷也是冷水。

Jimenez、Yang、Yao 等,Princeton 等。arXiv 2023-10。2,294 道来自 12 个流行 Python 仓的 issue。

  1. 论文 — 任务怎么构造、怎么用测试评分、当时模型分数。
  2. 讲解 — 为何这既是编码 Agent 赛道的出生证明,也是对 2023 自主编码宣传的完成谓词。

原文:arXiv:2310.06770。

13.1 - SWE-bench(论文)

按原文结构转述 Jimenez 等 2023:真实 GitHub issue 上的软件工程评测。

Carlos E. Jimenez, John Yang, Alexander Wettig, Shunyu Yao, Kexin Pei, Ofir Press, Karthik Narasimhan. SWE-bench: Can Language Models Resolve Real-World GitHub Issues?。Princeton Language and Intelligence 等。arXiv 2023-10。arXiv:2310.06770。后续年份的排行榜数字不回填本页。


摘要

语言模型的能力已经跑过许多旧基准。作者认为真实软件工程是可持续且够难的下一张考卷。SWE-bench 从 12 个流行 Python 仓库收集 2,294 个软件工程问题:每个问题把 GitHub issue 与对应的合并 PR 对齐。模型拿到一份代码快照和 issue 描述,要编辑仓库来解决问题。这经常要求同时理解并修改多个函数、类、甚至文件,与执行环境交互,处理极长上下文,推理复杂度远超传统代码生成。评测显示,当时最强的专有模型和作者微调的 SWE-Llama 都只能解决最简单的 issue。摘要给出的最好成绩:Claude 2 仅约 1.96%。

任务构造

从约 9 万个 PR 中过滤:已合并、解决了某个 issue、改了测试文件、安装能跑,并且至少有一项测试从失败变为通过(fail-to-pass)。代码库平均约 3,010 个非测试文件、43.8 万行;参考补丁平均改 1.7 个文件、3 个函数、32.8 行。issue 文本平均约 195 词。评估:把模型生成的 patch 打上去,跑相关测试;全部通过才算解决。指标是解决比例。

输入在实践中是 issue + 检索出的文件(主结果用 BM25),因为整库通常塞不进窗口。另有「oracle」设置:直接提供参考补丁改过的文件,供分析,不等于真实工程师事先知道改哪。

因预算,GPT-4(gpt-4-32k-0613)在 BM25 与 oracle 的部分设置上只跑了约 25% 随机子集。该子集上 GPT-4 的 BM25 解决率约 1.74%。ChatGPT-3.5(gpt-3.5-turbo-16k-0613)在全文上约 0.17%。补丁经常根本 apply 不上。oracle 检索会提高分数,但量级仍低。作者另发布 SWE-bench-train(约 1.9 万条、37 个与测试集不重叠的仓库)以及基于 CodeLlama 微调的 SWE-Llama 7B/13B。

限度(文中可见)

当时评测主要是「一次生成补丁」,不是完整的仓库内 Agent 循环(虽然作者写明这张考卷也可以用来比 agent)。多模态 issue(截图)当时的模型处理不了。难度与上下文长度相关:更长的检索窗口即使提高文件召回,分数仍可能下降,因为模型难以在噪声里定位该改的行。

13.2 - SWE-bench 讲解

第一次给「修真实 issue」一个外部完成谓词。考卷出生;当时分数接近零。

论文解决了什么问题

HumanEval 一类基准是自包含短函数。真实工程是:在几千个文件里找到该改的几十行,改完还不能把原有测试弄挂。没有执行,分数就是人眼或模型自评。SWE-bench 把考卷接到真实 issue、真实 PR、真实 fail-to-pass 测试上,并且可以随新 PR 持续更新。完成判据独立于演示:测试必须绿。

对后续 LLM 与 Agent 的影响

首证:编码 Agent 从此有了一张会随时间变难的卷。警示:2023 年舆论里的 AutoGPT / 「自主程序员」在这张卷上几乎交白卷——最好也只在 2% 量级(Claude 2 约 1.96%;GPT-4 在子集上约 1.74%)。循环能转与目标已达成,从此必须分列。

按 AI Agent 定义,这张考卷考的是「对环境(代码库 + 测试)行动并按反馈验证」,比聊天写函数更接近 Agent;但 2023 年论文主结果仍是检索 + 一次生成补丁,不是已经跑通的多步运行时。无界循环在第一层(观察写回)上转,在第二层(测试谓词)上失败。

不要用后来排行榜上的高分回填这一页。2023 年要记住的是:完成谓词出现了,当时的系统还不会做。 热度 ≠ 完成率。

14 - MemGPT

2023-10。操作系统式分页搬进 LLM。延长循环的步数,不引入新动作类型。

Packer 等,UC Berkeley。arXiv 2023-10。针对固定窗口,提出虚拟上下文管理。还不是产品默认。

  1. 论文 — 主上下文 / 外部上下文、函数换页、文档分析与多会话聊天。
  2. 讲解 — 为何向量库外挂不够,以及这篇仍停在研究系统。

原文:arXiv:2310.08560。

14.1 - MemGPT(论文)

按原文结构转述 Packer 等 2023:把 LLM 上下文当成要分页的内存。

Charles Packer, Sarah Wooders, Kevin Lin, Vivian Fang, Shishir G. Patil, Ion Stoica, Joseph E. Gonzalez. MemGPT: Towards LLMs as Operating Systems。UC Berkeley。arXiv 2023-10。arXiv:2310.08560。项目后来的产品化名称不回填本页。

中文译本:宝玉、CSDN。


摘要

LLM 受固定上下文窗口限制,长对话和长文档分析都会吃亏。作者提出 virtual context management:借鉴传统操作系统用分页在物理内存和磁盘之间制造「更大内存」的假象。MemGPT 智能管理多层存储,让有限窗口里出现可扩展的有效上下文。评测两个窗口特别不够用的领域:文档分析(远超窗口的大文档)、多会话聊天(要记住、反思、随长期互动演化)。代码与数据发布在文中给出的研究站点。

系统

主上下文(类比 RAM)即提示 token,推理时模型直接可见;外部上下文(类比磁盘)必须经函数调用搬进来才可见。主上下文三段:只读的系统指令、可经函数读写的 working context、FIFO 消息队列(含用户/系统消息与函数输入输出;队首是被驱逐消息的递归摘要)。

队列管理器在窗口到达告警阈值(文中举例约 70%)时插入 memory pressure 警告,让模型把重要信息写入 working context 或 archival 存储;到达冲刷阈值则驱逐部分消息并更新摘要。被驱逐的消息仍在 recall 存储里,可用函数再取回。

模型输出被解析为函数调用。可用 request_heartbeat=true 在一次用户回合里链式多步检索。事件触发推理:用户消息、系统警告、定时中断等。记忆编辑与检索是自导向的:由模型决定何时换页,而不是宿主固定截断。

评测(文中报告)

多会话聊天基于扩展的 Multi-Session Chat。Deep memory retrieval:MemGPT 相对同一底层模型的固定窗口基线明显更高(例如 GPT-4 准确率从约 32.1% 到约 92.5%;GPT-3.5 从约 38.7% 到约 66.9%)。文档 QA:固定窗口受检索条数与截断伤害,MemGPT 可对 archival 多次分页查询。嵌套键值检索:需要多跳查找时,无 MemGPT 的 GPT-3.5/GPT-4 在若干嵌套层后掉到 0%;MemGPT+GPT-4 随嵌套层数保持稳定。实现依赖模型的函数调用能力:GPT-3.5 上明显更弱。

14.2 - MemGPT 讲解

窗口是物理上限。用函数自己换页。延长的是循环能走的步数,不引入新动作类型。

论文解决了什么问题

2023 年 Agent 的长期记忆默认等于:窗口里塞得下的部分,外加一层向量库相似度搜索。窗口一满就摘要或丢掉;检索到的片段也不一定真的进当前提示。MemGPT 把问题改写成操作系统问题:主存有限,磁盘更大,缺页时自己发函数去取。Function Calling 在这里不是产品功能,是换页指令集。

对后续 LLM 与 Agent 的影响

首证:分层记忆可以成为 Agent 架构,而不只是 RAG 流水线的另一个 retriever。按 AI Agent 定义,这套系统在用工具(记忆函数)对环境(外部存储)行动,并按回执再决定——是记忆子系统上的 Agent 循环。延长的是循环能走的步数和工作集可寻址范围,不引入新的动作类型。它还不是 ChatGPT 或各框架的产品默认;向量库外挂仍然是 2023 年底的主流拼法。

不要把后来的托管记忆产品写进这一页的材料。2023 年要记住的是诊断:上下文太短,截断和检索都不够,需要模型自己管理层级。能换页 ≠ 有完成谓词;工作集变大 ≠ 副作用自动正确。

15 - GPT-4 Turbo

2023-11-06。128k 上下文的下一代 GPT-4。换核心与降价;工作集 ≠ 副作用。发布会不当条目。

OpenAI,2023-11-06 随开发者大会放出预览。更强、更便宜,窗口 128k。知识截止约 2023-04。同场还有带视觉的 GPT-4 Turbo。

  1. 材料 — 按当天公告转述:窗口、价格档、多模态组合。不把后来的 4o / o1 回填。
  2. 讲解 — 窗口变长如何改写一次轨迹能装下多少观察;为何仍不是 Agent。

当时公告:New models and developer products announced at DevDay。同日的托管运行时见 Assistants API。

15.1 - GPT-4 Turbo(材料)

按 2023-11-06 公告转述:128k 窗口、更便宜的下一代 GPT-4。

本页只转述 GPT-4 Turbo 这只模型当天公开说了什么。Assistants API 与 GPTs 见 Assistants API,不写进本页。

主要出处:OpenAI,2023-11-06,New models and developer products announced at DevDay。


产品主张

预览中的下一代 GPT-4:更强、更便宜,上下文窗口 128k。知识截止到约 2023-04。同场还有平台上的多模态能力:带视觉的 GPT-4 Turbo。GPT-4 本身已在 7 月对 API 全面放开;这次是窗口、价格与工具组合的下一跳。

当时不是什么

不是新的 Agent 运行时,也不是 Function Calling 的替代。它是默认决策核心换档:一次请求能多装一些文件片段和对话。发布会里同时出现的 DALL·E 3 API、语音合成等,不进本条。

15.2 - GPT-4 Turbo 讲解

128k 窗口让单次轨迹能多装观察。换核心,不换循环。工作集变大 ≠ 副作用产生。

当时解决了什么问题

GPT-4 已经能撑住稍长的工具链,但 8k–32k 量级窗口对「塞进一份说明书 + 几轮工具回执」仍然紧。2022 年约 4k 更不用说。128k 把一次会话能看见的文件和轨迹拉长一截。对 Agent,上下文长度是任务能走多远的物理上限——这一跳发生在模型层,不是提示词技巧。

按 AI Agent 定义,GPT-4 Turbo 本身不是 Agent。它是循环里更宽的核心。窗口够,仍不产生副作用。同日的 Assistants API 才把线程和工具收成托管状态机。发布会不当条目;换核心与托管运行时必须拆开记。

对后续 LLM 与 Agent 的影响

价格下降让「多步调用」在账单上不那么劝退。2024 年 Gemini 1.5 把窗口推到约百万 token,是同一条物理前提的下一跳。不要用后来的 4o / o1 回填这一天。工作集变大 ≠ 完成率上升;核心换了,循环仍在宿主——除非你改用同日的 Assistants。

16 - Assistants API

2023-11-06。线程、工具、检索收成托管状态机雏形。循环上云,仍锁在一家 API。

OpenAI,2023-11-06。帮助开发者在自己的应用里构建 agent-like 体验:一个 assistant 有指令,可接知识,并可调用模型和工具。Code Interpreter、Retrieval、function calling 绑在同一套线程上。

  1. 材料 — 按当天公告转述:Assistants、工具积木。GPTs 只作对照,不单独升格。
  2. 讲解 — 托管状态机意味着什么,以及为何还不是可放手的 Agent。

当时公告:New models and developer products announced at DevDay。同日换核心见 GPT-4 Turbo。

16.1 - Assistants API(材料)

按 2023-11-06 公告转述:线程、工具、检索收成托管 assistant。

本页转述 Assistants API 当天公开说了什么。GPT-4 Turbo 见 材料。GPTs 用同一套积木做成不用写代码的定制聊天机器人,不单独升格为里程碑,只在此对照。

主要出处:OpenAI,2023-11-06,New models and developer products announced at DevDay;同日 Introducing GPTs。


Assistants API

公告写成帮助开发者在自己的应用里构建 agent-like 体验的第一步。一个 assistant 有特定指令,可使用额外知识,并可调用模型和工具来执行任务。新能力包括 Code Interpreter、Retrieval 以及已有的 function calling,用来承接开发者先前要自己写的线程管理、工具循环和检索拼接。API 当天以 beta 对全体开发者开放。用例列举包括自然语言数据分析、编码助手、旅行规划等。

GPTs(对照,不升格)

面向 ChatGPT 用户的定制版本:给指令、上传知识、打开浏览 / 画图 / Code Interpreter 一类能力,然后分享。构建块与 Assistants 相同:自定义指令 + 上述工具。除内置能力外,可用 Actions 接入 API(公告写明类似插件)。计划中的 GPT Store 当天只是方向。按 AI Agent 定义,人仍在对话循环里给目标,自主度有限,故不单独占行。

当时不是什么

锁在 OpenAI 的模型与账号体系里。Assistants 把循环和工具接到云端,但停机、权限、跨厂商工具协议都不在当天的交付范围内。不要用后来的 Assistants 弃用或迁移回填这一天。

16.2 - Assistants API 讲解

厂商把线程、检索、沙箱收成托管状态机。循环上云;自主度仍然有限。

当时解决了什么问题

2023 上半年,开发者要自己保存对话、自己解析函数调用、自己接检索、自己找地方跑代码。Assistants API 把这些收成「一个 assistant + 一个 thread + 一组工具」:线程是状态,工具是转移,run 是一次推进。同日的 GPT-4 Turbo 用 128k 窗口让单次任务能多装一些文件片段。GPTs 把同一套能力做成不用写代码的定制聊天机器人,不单独记。发布会本身不当条目。

对后续 LLM 与 Agent 的影响

工程化:这是厂商托管状态机的雏形——循环不再必须发生在你的服务器上。对 AI Agent 定义而言,Assistants 可以跑多步工具调用(代码、检索、函数),因此可以构成弱自主 Agent;但产品默认仍是对话式助手,目标由用户一轮一轮给出。锁在一家 API 里:换模型厂商,线程和工具要重写。跨产品协议是下一年的 MCP。

不要用后来的 API 迁移回填这一天。2023 年 11 月要记住的是:运行时开始被平台收走,可靠性并没有因此自动出现。托管循环 ≠ 完成谓词;状态机上云 ≠ 可放手。