2023年
- 1: 2023年的概述
- 2: Toolformer
- 2.1: Toolformer(论文)
- 2.2: Toolformer 讲解
- 3: GPT-4
- 3.1: GPT-4 Technical Report(论文)
- 3.2: GPT-4 讲解
- 4: ChatGPT plugins
- 4.1: ChatGPT plugins(材料)
- 4.2: ChatGPT plugins 讲解
- 5: AutoGPT
- 5.1: AutoGPT(材料)
- 5.2: AutoGPT 讲解
- 6: BabyAGI
- 6.1: BabyAGI(材料)
- 6.2: BabyAGI 讲解
- 7: LangChain 成为默认编排层
- 7.1: LangChain 2023(材料)
- 7.2: LangChain 讲解
- 8: Generative Agents
- 8.1: Generative Agents(论文)
- 8.2: Generative Agents 讲解
- 9: Voyager
- 9.1: Voyager(论文)
- 9.2: Voyager 讲解
- 10: Function Calling
- 10.1: Function Calling(材料)
- 10.2: Function Calling 讲解
- 11: Code Interpreter
- 11.1: Code Interpreter(材料)
- 11.2: Code Interpreter 讲解
- 12: AutoGen
- 12.1: AutoGen(论文)
- 12.2: AutoGen 讲解
- 13: SWE-bench
- 13.1: SWE-bench(论文)
- 13.2: SWE-bench 讲解
- 14: MemGPT
- 14.1: MemGPT(论文)
- 14.2: MemGPT 讲解
- 15: GPT-4 Turbo
- 15.1: GPT-4 Turbo(材料)
- 15.2: GPT-4 Turbo 讲解
- 16: Assistants API
- 16.1: Assistants API(材料)
- 16.2: Assistants API 讲解
1 - 2023年的概述
一句话主线: 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
Schick 等,2023-02,Toolformer: Language Models Can Teach Themselves to Use Tools(Meta AI)。在 GPT-J 上插入计算器、问答、搜索、翻译、日历等 API 调用。
原文:arXiv:2302.04761。
2.1 - Toolformer(论文)
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 调用。
流程大意:
- 给模型少量如何调用某工具的示范。
- 在无标注语料上,让模型采样可能的 API 调用(插在文本中间)。
- 真正执行这些调用,得到结果。
- 过滤:只保留那些能降低后续 token 损失的调用——也就是「这次调用对接着写下去有帮助」。
- 用过滤后的文本(含调用与结果)继续微调模型。
调用在文本里表现为特殊标记包起来的字符串,解码时遇到调用就执行工具、把返回值填回去,再继续生成。工具集在文中包括:Calculator、QA 系统、Wikipedia 搜索、机器翻译、日历。
关键主张:不必为每个工具准备大规模人类标注轨迹;自监督过滤就够让模型学会何时调用。
限度(文中可见)
工具集合是作者选定的,不是开放的任意函数。调用格式仍是文本插入,不是后来的 JSON schema。评测是语言任务与知识/计算基准,不是开放目标上的多步 Agent 循环。模型规模远小于 GPT-3 / GPT-4。
2.2 - Toolformer 讲解
论文解决了什么问题
2022 年工具使用默认靠提示:示范格式、解析字符串、赌模型吐出可执行调用。脆,也不会从预训练目标里长出来。Toolformer 改问:若一次 API 调用能降低后续 token 损失,模型能不能自己发现该插在哪。
过滤标准不是人喜欢哪条轨迹,是语言模型损失有没有下降。对象仍是生成中间的内联 API,不是「给一个目标转完」。
对后续 LLM 的影响
「工具使用可学」从此有训练侧证据。后来各家把函数调用做进微调与偏好数据,问题陈述同类:何时调用、参数是什么。它没有规定 Chat Completions 的 functions 字段;那是 6 月的接口工程。训练目标 ≠ 开放 schema。
对 AI Agent 的影响
按 AI Agent 定义,Toolformer 不是 Agent:一次生成里插入调用,没有目标驱动的多步循环,也没有宿主侧的执行循环。它补的是决策核心的一块——算不准时把计算交出去。没有这一块,循环里的 Action 只能靠提示词演戏。有了这一块,仍缺宿主、缺停机、缺完成谓词。
3 - GPT-4
OpenAI,2023-03-14 产品发布;技术报告 3 月 15 日挂出。ChatGPT Plus 与 API 上的 GPT-4。
原文:arXiv:2303.08774。产品说明:GPT-4。
3.1 - GPT-4 Technical Report(论文)
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 讲解
报告解决了什么问题
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
OpenAI,2023-03-23,ChatGPT plugins。浏览、第三方服务、检索等以插件形式接到对话。
当时公告:ChatGPT plugins。
4.1 - ChatGPT plugins(材料)
本页转述 插件发布当时公开说了什么,不以 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
Toran Bruce Richards / Significant Gravitas。仓库 2023-03-16 创建;约 3 月底公开爆红。自称让 GPT-4 充分自主的实验。
5.1 - AutoGPT(材料)
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
Yohei Nakajima。2023-03-28 先以 Task-Driven Autonomous Agent 公开,随后收成约百行的 babyagi.py。名字不表示这是 AGI。
当时说明:GitHub yoheinakajima/babyagi(后来仓库改版,早期脚本见作者归档说明)。
6.1 - BabyAGI(材料)
本页转述 2023 年 3–4 月那一版短脚本在做什么,不以 2024 以后作者重写的框架回填。作者写明:这是对 3 月 28 日推上 Task-Driven Autonomous Agent 的精简;仓库名里的 AGI 来自围观反应,并不声称这是 AGI。
机制
核心是一个 while True:
- 从队列取出当前任务。
- execution_agent:用 LLM 按总目标执行该任务,得到一段文本结果。
- 把结果写入向量库(早期常用 Pinecone +
text-embedding-ada-002)。 - task_creation_agent:根据结果和现有队列,让 LLM 提出新任务。
- 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 成为默认编排层
Harrison Chase 等。库出现于 2022-10;公司 2023-02。2023 年记的是它成为教程和起步代码的默认层,不是生日。
文档与仓库:langchain。
7.1 - LangChain 2023(材料)
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 讲解
当时解决了什么问题
ReAct 在论文里,AutoGPT 在一个大仓库里,RAG 在各人的 notebook 里。LangChain 提供一套共同名词:Agent、Tool、Memory、Chain。抄作业的成本从「读论文再手搓」变成「改一个工具类」。没有 Function Calling 之前,它用提示词解析撑过上半年;6 月之后又把函数调用收进同一套 Agent 抽象。
生日在 2022 秋。2023 年记的是它成为教程和起步代码的默认层:当时必须有人把循环跑起来。
对后续 LLM 与 Agent 的影响
2023 年大多数公开 Agent 教程从这里起步。警示:抽象层厚、版本不稳、出错时难以看见模型实际收到的提示;这些批评针对膨胀期,不能用来否定当年为什么它先被采用。当时生态与后来口味要分开看。
它是开发库,不是运行时:循环仍在你的服务器上,失败仍要自己停。控制流在库里,不在模型厂商。更薄的 SDK 和后来的代码优先运行时,是对这一层口味的修正,不是 2023 年已经发生的事。胶水能把循环复制出来;胶水不是协议,也不是完成谓词。
8 - Generative Agents
Park 等,Stanford / Google Research。25 个 agent 的 Sims 式沙盒小镇。论文 2023-04 挂出;UIST 2023。
原文:arXiv:2304.03442。
8.1 - Generative Agents(论文)
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
Wang 等。NVIDIA / Caltech / UT Austin / Stanford 等。arXiv 2023-05。自称第一只在 Minecraft 里持续探索、积累技能、少需人工干预的 LLM 具身终身学习 agent。
原文:arXiv:2305.16291。
9.1 - Voyager(论文)
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:持续探索、获得多样技能、发现新事物,无需人工干预。三块组成:
- 自动课程,最大化探索。
- 不断增长的技能库,用可执行代码存储和检索复杂行为。
- 迭代提示:把环境反馈、执行错误、自验证写回提示,改进程序。
与 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
OpenAI,2023-06-13。gpt-4-0613 与 gpt-3.5-turbo-0613 微调成:判断要不要调函数,并吐出符合签名的 JSON。同日还有 16k 窗口的 gpt-3.5-turbo-16k。
10.1 - Function Calling(材料)
本页转述 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 里逼模型吐 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
OpenAI。插件期已是 alpha;约 2023-07-06 开始向全体 ChatGPT Plus 用户滚动放出。后来改称 Advanced Data Analysis。2023 年记的是沙箱成为产品能力,不是改名。
当时产品说明见 OpenAI 发布说明与 7 月公开滚动通知;插件期总述见 ChatGPT plugins。
11.1 - Code Interpreter(材料)
本页转述 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
Wu 等,Microsoft Research / 宾州州立大学等。arXiv 2023-08。开源库允许用可对话的多个 agent 协作完成任务。
原文:arXiv:2308.08155。当时仓库:microsoft/autogen。
12.1 - AutoGen(论文)
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
Jimenez、Yang、Yao 等,Princeton 等。arXiv 2023-10。2,294 道来自 12 个流行 Python 仓的 issue。
原文:arXiv:2310.06770。
13.1 - SWE-bench(论文)
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 讲解
论文解决了什么问题
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
Packer 等,UC Berkeley。arXiv 2023-10。针对固定窗口,提出虚拟上下文管理。还不是产品默认。
原文:arXiv:2310.08560。
14.1 - MemGPT(论文)
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。项目后来的产品化名称不回填本页。
摘要
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
OpenAI,2023-11-06 随开发者大会放出预览。更强、更便宜,窗口 128k。知识截止约 2023-04。同场还有带视觉的 GPT-4 Turbo。
当时公告:New models and developer products announced at DevDay。同日的托管运行时见 Assistants API。
15.1 - GPT-4 Turbo(材料)
本页只转述 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 讲解
当时解决了什么问题
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
OpenAI,2023-11-06。帮助开发者在自己的应用里构建 agent-like 体验:一个 assistant 有指令,可接知识,并可调用模型和工具。Code Interpreter、Retrieval、function calling 绑在同一套线程上。
当时公告:New models and developer products announced at DevDay。同日换核心见 GPT-4 Turbo。
16.1 - Assistants API(材料)
本页转述 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 月要记住的是:运行时开始被平台收走,可靠性并没有因此自动出现。托管循环 ≠ 完成谓词;状态机上云 ≠ 可放手。