# 工具使用与长程 Agent · 正式研究账本 > 状态:核心一手来源已完成首轮核验,进入网页写作与可视化实现 > 研究截止:2026-07-29 > 锚点:Kimi K3 Technical Report §4.2、§5.3、Appendix F > 原则:论文中的数字只描述论文当时的模型、环境、harness 与预算;没有独立复现时,明确写成“论文报告值”。 --- ## 0. 本章到底要回答什么 普通语言模型做的是: ```text 输入 Token → 输出 Token ``` Agent 做的是: ```text 目标 → 读取当前观察 → 选择可执行动作 → 环境改变状态 → 获得新观察 → 判断是否继续、恢复或终止 → 独立验证最终状态 ``` 因此,Agent 不是“更会聊天的模型”,而是一套闭环系统。至少要同时说明: 1. 模型看到了什么; 2. 模型可以做什么; 3. 动作怎样变成真实状态变化; 4. 工具失败时怎样反馈; 5. 历史、记忆与环境状态怎样保存; 6. 什么时候算完成; 7. 谁来验证完成; 8. 允许花多少步、Token、时间和钱; 9. 谁授权了哪些副作用; 10. 训练时如何把最终成败归因到很久以前的动作。 这一章的教学目标不是记住框架名字,而是获得一套可以审计任何 Agent 系统的共同语言。 --- ## 1. 五层系统模型:先把最常见的混淆拆开 | 层级 | 它负责什么 | 典型例子 | 常见误写 | |---|---|---|---| | Model | 根据上下文产生 reasoning、文本或 tool call | GPT、DeepSeek、Kimi | 把完整产品能力算成裸模型能力 | | Harness | 组织提示、循环、记忆、子 Agent、上下文压缩与终止 | ReAct、AutoGen、SWE-agent、Kimi Code | 把更好的脚手架说成“模型突然学会了” | | Tool contract | 定义工具名、参数、返回值、并行关系与错误 | JSON schema、ACI、MCP、XTML | 只看 JSON 格式正确,不看实际任务结果 | | Environment | 执行动作并维护隐藏状态 | WebArena、OSWorld、repo sandbox、AgentENV | 把数据集或静态 API 列表称为环境 | | Evaluator | 判断最终状态、过程约束、安全与可靠性 | unit tests、DB diff、pass^k、hidden verifier | 相信 Agent 的“已完成”自述 | 一个更完整的系统表示是: ```text ┌──────────────── MODEL ────────────────┐ Goal + Observation ──▶│ reason / respond / emit tool calls │ └────────────────┬──────────────────────┘ │ HARNESS chooses context, loop, memory, subagents, retries, stop │ ▼ TOOL CONTRACT parses + validates │ ▼ ENVIRONMENT executes and changes state │ observation / error / artifact │ └───────────────↺ EVALUATOR inspects final state + constraints ``` 任何 Agent 榜单都应至少记录: ```text score = f(model, harness, tool contract, environment version, evaluator, prompt, max steps, context budget, sampling, retry policy, wall-clock and price) ``` 只写模型名和一个百分比,不足以解释结果。 --- ## 2. 十四张问题账 ### L1 · ENVIRONMENT / 环境契约 **问题:** 动作到底改变了什么世界状态? 最小字段: - 初始状态 `s0`; - 动作空间 `A`; - 状态转移 `P(s' | s, a)`; - 观察空间 `O`; - 终止条件; - 可恢复与可重放能力。 关键历史: - TextWorld、Jericho:把文字冒险变成标准化交互环境; - ALFWorld:用文本世界对齐具身任务; - WebShop:让网页购物有大规模商品与可计算任务奖励; - WebArena:从静态网页轨迹走到可自托管、功能完整的网站状态; - OSWorld:把观察扩展为截图、a11y tree,动作扩展为真实桌面输入; - AgentENV / DSec:环境状态本身成为训练系统要暂停、恢复、fork 和审计的对象。 **核心边界:** “有 API”不等于“有环境”。如果调用不改变可持续的世界状态,也没有后续观察,它更接近一次外部函数求值。 ### L2 · TOOL CONTRACT / 工具接口契约 **问题:** 模型怎样知道有哪些动作,怎样把 Token 变成合法调用? 要核验: - 工具选择是否正确; - 参数名、类型、枚举和必填项是否正确; - 是否应该拒绝调用; - 并行调用是否独立; - 调用结果如何与原调用配对; - 错误是否结构化; - 工具集合能否在会话中动态变化。 关键历史: - MRKL:让 LLM 路由符号模块; - PAL / Code as Policies:把程序或代码当可执行中间表示; - Toolformer:从语料中自监督地产生并筛选工具插入; - Gorilla / ToolLLM:扩大到真实 API 检索、选择与调用; - BFCL:用 AST / executable checking 测串行、并行与多轮 function calls; - MCPMark:把接口进一步推向真实 MCP server 使用; - K3 XTML:把工具声明、调用索引、typed args、并行结果配对和动态加载写进统一模板。 **核心边界:** ```text schema valid ≠ call semantically correct call correct ≠ environment final state correct task success ≠ policy compliant ``` ### L3 · CONTROL LOOP / 控制循环 **问题:** 模型什么时候思考、行动、观察、继续与停止? ReAct 的最小形式: ```text Thought_t → Action_t → Observation_{t+1} → Thought_{t+1} → ... ``` 论文把原动作空间扩成 `Â = A ∪ L`: - `A`:会改变外部环境的动作; - `L`:不会直接改变环境的语言 thought。 Thought 可以: - 分解目标; - 记录中间结论; - 从观察中抽取关键事实; - 改变计划; - 解释错误; - 决定停止。 但 ReAct 论文也明确观察到循环、重复旧动作和错误检索后难以恢复。控制循环本身不是可靠性保证。 ### L4 · PLANNING & RECOVERY / 规划与恢复 **问题:** Agent 是边走边想,还是先计划再执行?失败后从哪里重来? | 方法 | 主张 | 代价与边界 | |---|---|---| | ReAct | 在线交错 reasoning 与 action | 灵活,但可能重复、漂移 | | ReWOO | 先生成含变量依赖的计划,再由 worker 执行 | 少重复观测,但初始计划错误会传播 | | Reflexion | 把一次失败总结成语言记忆,供下一 trial 使用 | 不更新参数;反思也可能错误 | | LATS | 用树搜索统一 reasoning、action、planning | 搜索预算和 value 质量成为新瓶颈 | | Agentless | 定位 → 修复 → 验证的简单流水线 | 证明复杂自治循环不是默认更优 | 恢复至少分四级: 1. 同一步重试; 2. 修改参数或换工具; 3. 回到检查点、换分支; 4. 重建计划或请求人类。 长程 Agent 若只有“从头再跑”,可靠性与成本都会被尾部失败拖垮。 ### L5 · MEMORY & CONTEXT / 记忆与上下文 **问题:** 什么必须留在 prompt,什么可以压缩、检索或放在外部状态? 四种不同对象: | 对象 | 例子 | 主要风险 | |---|---|---| | 对话上下文 | 用户、助手、工具结果 | 长度与注意力稀释 | | 工作记忆 | 当前计划、约束、未完成项 | 压缩时丢失关键状态 | | 情节记忆 | 某次失败与反思 | 错误经验被长期放大 | | 程序性记忆 | Voyager skill library | 技能失效、版本漂移 | Generative Agents 用 observation → reflection → plan 组织记忆。MemGPT 用 main context、recall memory、archival memory 类比操作系统的内存层级。K3 white-box environment 则把 context management、skills、memories 都视为可组合 harness 模块。 DeepSeek-V3.2 在搜索轨迹达到上下文 80% 时比较: - Summary; - Discard-75%; - Discard-all; - 并行独立轨迹。 DeepSeek-V4 进一步对工具场景跨用户轮保留完整 reasoning history,同时提醒:如果框架把工具结果伪装成 user message,就可能走不到正确的工具上下文路径。 **核心边界:** context window 是容量上限,不是自动正确的记忆策略。 ### L6 · EXECUTION & SANDBOX / 执行与沙箱 **问题:** 允许 Agent 运行什么,怎样隔离副作用,又怎样保留足够真实的环境? 需要同时平衡: - 隔离:不能让一个任务破坏宿主机或其他任务; - 保真:复杂工程任务需要真实包管理、容器、网络与文件系统; - 启动速度:RL 可能瞬间创建成千上万环境; - 状态管理:暂停、恢复、fork、snapshot; - 可观测性:每个命令和状态变化可追踪; - 资源预算:CPU、内存、磁盘、网络、GPU 与时间。 K3 AgentENV 的报告设计: - Firecracker microVM; - incremental checkpoint / resume; - Pause & Resume; - Fork:从相同状态分支,用于无副作用 reward judging; - Snapshot:定期恢复点; - 报告最低 checkpoint 133 ms、resume 49 ms; - 报告实际 workload 中 memory overcommit 最高 6.5×; - 官方报告称训练/评估共创建 51,219,741 个 sandbox、1,505,678 个 image。 这些都是 K3 报告值,不外推为普遍性能。 DeepSeek-V4 的 DSec: - 一个 Python SDK 抽象 function call、container、microVM、fullVM; - 容器与 microVM 使用分层、按需加载; - 单集群管理数十万并发 sandbox; - 每个 sandbox 维护全序 trajectory log; - preemption 后可 replay 已完成命令,避免重新执行非幂等操作; - 支持 provenance 与 deterministic replay。 ### L7 · FEEDBACK & VERIFIER / 反馈与验证器 **问题:** “完成了”由谁决定? 验证信号可按强度排列: ```text 字符串匹配 < 模型自评 < judge model / rubric < 过程 milestone < 数据库或文件 final-state diff < 可执行单元测试 < 隐藏测试 / 独立黑盒 verifier ``` WebArena 的关键贡献不是让动作序列像参考轨迹,而是检查功能结果。它的任务允许多条合法路径。 τ-bench 比较 episode 结束后的数据库状态与唯一 ground truth outcome;ToolSandbox 同时检查中间 milestones、minefields 和 final state。 K3 Autonomous Execution Tasks 明确给出: ```text Task = initial state + constrained goal + tool action space + execution budgets + independent verifier ``` Agent 只看到目标、上下文、约束与验证接口,没有参考轨迹。reward 来自最终环境状态,而不是 Agent 自报完成。K3 还用: - public verifier:提供诊断反馈; - hidden verifier:检查 held-out 场景; - verifier isolation; - 有限 submission budget; - penalty-based reward; 来减轻 reward hacking。 ### L8 · TRAJECTORY & DATA / 轨迹与数据生成 **问题:** 训练数据是一条答案,还是完整状态—动作—观察轨迹? 轨迹最小表示: ```text τ = (s0, o0, a0, r0, s1, o1, a1, r1, ..., sT) ``` 但真实 Agent 轨迹还需要: - tool schema/version; - prompt 与 harness 配置; - 环境 image/version; - 调用耗时和错误; - context trimming/summary 记录; - 权限与人工批准; - evaluator 版本; - 最终 artifact 与 provenance。 DeepSeek-V3.2 的 agentic 数据: | 类型 | 任务数 | 环境 | Prompt | |---|---:|---|---| | code agent | 24,667 | real | extracted | | search agent | 50,275 | real | synthesized | | general agent | 4,417 | synthesized | synthesized | | code interpreter | 5,908 | real | extracted | 其 general-agent 管线生成: ```text ``` 并报告 1,827 个合成环境。code-agent 环境则从 issue/PR 对构建,gold patch 必须让 F2P 测试非零且 P2F 为零。 K3 把数据分布继续扩到: - 多步可验证搜索; - 专业知识工作; - SWE、kernel optimization、web development; - 视觉工具使用; - 跨多应用与多模拟日的 persistent assistant workflow; - Autonomous Execution Tasks。 ### L9 · CREDIT ASSIGNMENT / 长程归因 **问题:** 最后一个单元测试失败,几百步以前哪个决策该负责? 终局稀疏奖励: ```text R(τ) ∈ {0, 1} ``` 最简单的做法把同一个 trajectory advantage 赋给全部生成 Token。这易实现,但会把好动作和坏动作一起奖励或惩罚。 RAGEN / StarPO 把: ```text state → thinking → action → reward ``` 作为多轮 trajectory-level 优化单位,目标为: ```text J(θ) = E_{M, τ~πθ}[R(τ)] ``` 论文报告了 Agent RL 的 Echo Trap: - rollout reward variability 发生 cliff; - 梯度 spike; - 策略陷入重复、过窄行为; - 训练性能随后 collapse。 StarPO-S 用 trajectory variability filtering、critic baseline 与 decoupled clipping 进行稳定化。它说明“把单轮 GRPO 直接拉长”并不自动得到稳定 Agent RL。 Agent Lightning 则做另一种拆解: - 把 Agent execution 建模为 MDP/POMDP; - 从任意 Agent runtime 抽取 `(state, action, reward)` transitions; - 用 credit assignment 模块把 trajectory return 分给具体 LLM calls; - Training-Agent Disaggregation 将运行时与训练服务分开; - 用 observability 记录 state change,包括非 LLM 代码造成的变化。 **核心边界:** 轨迹级 reward、turn 级 credit 与 Token 级梯度是三个不同粒度。 ### L10 · POLICY DISTRIBUTION / On-policy、Off-policy 与陈旧轨迹 **问题:** 生成轨迹的模型与正在更新的模型差了多远? 长轨迹可能跨越多个训练迭代: ```text iteration n 开始 rollout → 其他短任务先完成 → policy 已更新 → iteration n+k 才完成旧 rollout ``` 于是出现: - stale policy; - ratio 过大或过小; - trajectory lag; - 等待最慢样本造成尾延迟; - 丢弃超长样本引入长度偏差。 K3: - 使用 partial rollout,让未完成长轨迹跨迭代继续; - MOPD 使用 student on-policy 轨迹; - co-located RL 把 1M context 实验限制在几百张 GPU 范围; - 外部 KV pool 保存暂时不活跃的长前缀; - scheduler 按活跃请求、队列与 KV 利用率动态节流。 Long-context multi-turn SWE RL 论文也指出同步框架会被最慢 trajectory 限制吞吐;其 72B、131K context 实验用终局测试奖励训练,体现长上下文、稀疏奖励和系统尾部彼此耦合。 ### L11 · SYSTEM STATE / 系统状态与长尾 **问题:** 一条百万 Token 轨迹暂停时,要保存的到底是什么? 不只保存文本: ```text LLM prefix / KV environment filesystem + processes + database tool and network state harness state machine budget counters pending parallel calls verifier state random seeds / versions ``` K3 的系统闭环: 1. partial rollout 让超长任务跨 iteration; 2. inactive prefix 从 GPU write-back 到 CPU DRAM external KV pool; 3. 训练 iteration 后把权重/优化器状态 offload 到 NVMe,为 KV pool 腾 DRAM; 4. 下一次复用前 prefetch KV; 5. 根据 KV 压力自动降低并发; 6. AgentENV 暂停/恢复外部环境; 7. snapshot/fork 支持恢复与独立评判。 这说明百万 Token Agent RL 的“样本”本质上是一个跨 GPU、CPU、NVMe 与 microVM 的分布式状态机。 ### L12 · RELIABILITY / 可靠性与一致性 **问题:** 一次成功,是否意味着每次都能成功? 若同一任务运行 `n` 次,其中 `c` 次成功: ```text pass@k = 至少一次成功 pass^k = k 次全部成功 ``` 直观近似(独立、每次成功率相同为 `p` 时): ```text pass@k ≈ 1 - (1-p)^k pass^k ≈ p^k ``` 因此: - 增加重试次数,`pass@k` 上升; - 要求连续都可靠,`pass^k` 下降; - 只报告 best-of-N 会掩盖生产系统最在意的一致性。 τ-bench 的原始报告: - 比较最终数据库状态; - 当时最强 function-calling agent 在 τ-retail 约 61%、τ-airline 约 35%; - 同一模型在 retail 的 `pass^8` 降至约 25%; - 论文摘要概括为当时最强 agents 单次成功率仍低于 50%,且 retail `pass^8 < 25%`。 课程交互实验必须让读者同时看到: - 单次成功率; - `pass@k`; - `pass^k`; - 总调用成本; - 重试是否产生重复副作用。 ### L13 · EVALUATION / 评测与预算 **问题:** 一个分数到底测的是接口、轨迹、最终结果,还是整个生产系统? 评测谱系: | 类型 | 代表 | 测什么 | |---|---|---| | Tool syntax | APIBench、BFCL | 工具选择、参数、并行与 abstention | | Text/embodied env | ALFWorld、WebShop | 多步动作与环境反馈 | | Multi-environment | AgentBench | 不同交互域的广度 | | Web | WebArena、VisualWebArena | 多站点、视觉 grounding、final state | | Desktop | OSWorld | 真实 GUI 与应用状态 | | SWE | SWE-bench、SWE-agent、SWE-Gym | issue → patch → tests;模型与 ACI 分开 | | General assistant | GAIA | 检索、工具、推理组合 | | User-tool-policy | τ-bench、τ²-bench | 数据库、用户沟通、规则与可靠性 | | Stateful tools | ToolSandbox | milestones、minefields、隐式状态依赖 | | Security | AgentDojo、ASB | utility-security trade-off | | Long-horizon protocol | MCPMark、K3 KAET | 真实工具生态、长任务与独立 verifier | 原始论文中的历史坐标: - WebArena:812 个任务;原论文 GPT-4-based best agent 14.41%,human 78.24%; - OSWorld:369 个 Ubuntu 真实任务;原论文 best model 12.24%,human 72.36%; - GAIA:466 个问题;原论文中 human 约 92%,GPT-4 + plugins 约 15%; - AgentDojo:97 个任务、629 个 security test cases; - ASB:10 scenarios、400+ tools/tasks、27 attack/defense methods、13 backbones、7 metrics。 这些数字是历史基线,不代表 2026 当前模型水平。 评测报告最小配置: ```text model checkpoint / mode / effort harness commit tool schema and tool version environment image + initial state prompt / context management max steps / max context / timeout sampling / retries / parallelism evaluator and hidden tests success, pass@k, pass^k, cost, latency security and side effects ``` ### L14 · SECURITY & AUTHORITY / 安全、权限与人类控制 **问题:** 模型能做,不等于模型有权做。 威胁面沿 Agent 循环展开: | 入口 | 示例 | |---|---| | system prompt | 后门、错误权限政策 | | user prompt | 直接越权、社会工程 | | tool observation | 网页、邮件、文档中的间接提示注入 | | memory | 长期记忆投毒 | | plan / thought | 恶意或错误计划被后续自动执行 | | tool call | 参数越权、数据外传、破坏性副作用 | | environment | sandbox escape、资源耗尽 | | evaluator | reward hacking、伪造 artifact | AgentDojo 的核心洞察:LLM 直接处理文本,本身没有形式化边界区分“可信指令”和“外部数据”。第三方邮件或网页中的恶意文字可以随工具结果进入上下文。 安全控制不应只依赖一句 system prompt。最小纵深防御: 1. 数据与指令分区; 2. least privilege; 3. 按工具、资源与参数做 capability control; 4. 写操作与高风险动作需要显式授权; 5. untrusted content 不能自动升级权限; 6. sandbox 与网络隔离; 7. 幂等性、dry-run 与可回滚; 8. action log、artifact provenance; 9. 独立 verifier 与 hidden tests; 10. 人类可暂停、修正和接管。 安全指标必须与 utility 同时报告。一个什么都不做的 Agent 很安全,但没有用;一个任务全做完却泄露数据的 Agent也不成功。 --- ## 3. 从工具到长程 Agent 的五波演化 ### Wave 1 · 2018–2022:先把“输出文字”变成“执行动作” ```text TextWorld / Jericho → ALFWorld / ScienceWorld → WebShop → WebGPT / SayCan / MRKL / PAL ``` 关键变化: - 语言成为环境动作接口; - 工具执行返回新观察; - reward 不再只来自参考文本; - SayCan 明确拆开“语言上应该做什么”与“世界里能不能做”。 SayCan 的动作评分: ```text p(progress | instruction, state, skill) ∝ p(skill description | instruction) × p(skill succeeds | state, skill) ``` 即: ```text Say × Can ``` 语言模型负责 task grounding,技能 value/affordance 负责 world grounding。这个乘法是理解现代 Agent 的早期关键:语言合理但环境不可执行的动作,不能进入计划。 ### Wave 2 · 2022–2023:形成 reasoning—acting 闭环 ```text ReAct → Reflexion / ReWOO / LATS → Generative Agents / Voyager / MemGPT ``` 关键变化: - thought、action、observation 进入同一轨迹; - 规划、执行和恢复可拆开; - 失败经验、技能和长期信息开始外置; - 轨迹本身成为可读、可调试的系统接口。 新增的债: - 循环和重复; - memory poisoning; - 反思内容不一定正确; - 搜索树与 verifier 可能比模型更昂贵; - context 越长不等于状态越清楚。 ### Wave 3 · 2023–2024:工具能力开始训练化、标准化 ```text Toolformer → Gorilla / APIBench → ToolLLM / ToolBench → BFCL / ToolSandbox ``` Toolformer 的核心筛选: ```text 保留 API call,当且仅当 L_without_call - L_with_call ≥ τ_f ``` 也就是:只有工具结果让模型更容易预测后续 Token,才把调用写入训练语料。 ToolLLM 把范围扩大到 16,464 个 RapidAPI APIs、49 categories,并用检索和 depth-first search 构造工具路径。BFCL 更强调结构与执行正确性;ToolSandbox 则提醒真实工具任务有隐式状态依赖、错误恢复和多轮用户。 ### Wave 4 · 2023–2025:从玩具环境走向可复现的真实工作 ```text WebArena / VisualWebArena OSWorld SWE-bench → SWE-agent → SWE-Gym / Agentless GAIA τ-bench → τ²-bench AgentDojo / ASB ``` 关键变化: - 环境可部署、可重置; - 评测从动作相似度转向功能结果; - ACI/harness 被当成独立研究对象; - 用户也可能是环境中的行动者; - 可靠性与安全进入主指标。 SWE-agent 最重要的教学点: ```text LM + better Agent-Computer Interface ``` 专用 file viewer、search、edit 与 lint feedback 能明显改变成功率。论文报告的许多失败来自编辑接口、上下文噪声与恢复困难。因此: ```text SWE-bench score ≠ bare-model coding score ``` ### Wave 5 · 2025–2026:Agent RL、长轨迹状态与多环境泛化 ```text RAGEN / Agent Lightning / long-context SWE RL → DeepSeek-V3.2 agentic synthesis → Kimi K2 / K2.5 unified agent RL → DeepSeek-V4 DSec + interleaved thinking → Kimi K3 white-box env + AET + 1M Agentic RL ``` 关键变化: - 训练单位从单轮 response 变成长 trajectory; - 环境生成、工具生成、任务生成与 verifier 生成进入同一流水线; - harness 本身随机化,减少对单一 schema 的过拟合; - rollout 可跨 iteration; - KV、sandbox state 与模型训练状态协同调度; - reward 回到最终环境,而不是语言风格。 --- ## 4. DeepSeek 专题:把 Agent 看成“数据—协议—环境—系统”工程 ### 4.1 DeepSeek-V3.2:从冷启动到 1,827 个可验证环境 V3.2 先把 reasoning data 与 non-reasoning agentic data 通过 system prompt 拼成少量冷启动轨迹,再进入 RL。关键不是一句“学会 tool use”,而是四类任务管线: #### Search Agent ```text 长尾实体采样 → question-construction agent 搜索 → 多种配置的 answer agents → 有搜索能力的 verification agent 多轮核验 → 只保留 ground truth 正确、候选可证伪的样本 ``` 同时保留一部分 helpful RL 数据,用 generative reward model 按 rubric 评价现实有用性。 #### Code Agent ```text GitHub issue + PR → heuristic / LLM filtering → environment-setup agent → 安装依赖、运行 tests → gold patch: F2P > 0 且 P2F = 0 → 可复现 issue-resolution environment ``` #### General Agent ```text category → 建 database → 生成 task-specific function tools → 生成 simple task + solution + verifier → verifier 先验证 solution → 逐步增加难度、必要时增补工具 → ``` 这条管线把 Agent 训练的数据瓶颈重写成“怎样自动生产可执行、困难但易验证的微型世界”。 ### 4.2 DeepSeek-V3.2:上下文管理也是 Agent policy 搜索轨迹达到窗口 80% 后,Summary、Discard-75%、Discard-all 会改变模型的可见状态。它们不是无损压缩: - Summary 可能保留错误结论; - Discard-75% 可能丢失早期约束; - Discard-all 失去完整 provenance; - 并行独立轨迹增加覆盖但提高成本。 因此评测 Agent 时,context strategy 必须作为 harness 配置记录。 ### 4.3 DeepSeek-V4:1M context 不只是“多装文本” V4 对工具场景跨 user turn 保留完整 reasoning history,目标是让长任务的累计思路不被重置。同时新增 XML-based `|DSML|` tool-call schema,减少 escaping failure。 但报告明确提醒:若框架用 user message 模拟工具结果,可能无法触发专用工具路径。这里再次说明协议格式会影响模型行为。 ### 4.4 DeepSeek-V4:DSec 把 sandbox 变成基础设施 DSec 的四类执行 substrate: | substrate | 适合 | |---|---| | Function Call | 无状态、低延迟调用 | | Container | 通用 Linux 工具与工程任务 | | microVM | 高隔离、高密度、安全敏感任务 | | fullVM | 任意 guest OS 与完整系统任务 | 其全序 trajectory log 尤其重要: ```text command + result → preemption-safe replay → 避免重复执行非幂等动作 → provenance → deterministic replay ``` ### 4.5 DeepSeek 评测数字怎样读 V4 报告中的 code agent: - internal harness; - bash + file-edit 两种基本工具; - max 500 interaction steps; - max 512K context。 search agent: - in-house harness; - websearch + Python; - 同样 max 500 steps、512K context; - BrowseComp 使用 discard-all context management。 这些配置和模型名一样重要。网站中不把报告分数脱离 harness 单独展示。 --- ## 5. Kimi 专题:K2 → K2.5 → K3 的 Agent 主线 ### 5.1 Kimi K2:把 Agent 数据与可验证奖励放进统一后训练 K2 的关键不是“模型会调用工具”这个结果,而是: - 大规模 synthetic tool-use data; - verifiable reward; - 对开放任务使用 self-critique / rubric; - agentic capabilities 成为 post-training 的独立支柱; - 模型、数据和 reward environment 一起设计。 ### 5.2 Kimi K2.5:视觉、工具与并行 Agent K2.5 将 text、vision、parallel-agent RL 放进统一 rollout 系统。Agent Swarm 的并行编排应归在 harness/control 维度,不等于每个子 Agent 的模型能力都提升。 需要分开评估: - 单 Agent 成功率; - 并行覆盖; - aggregation / verification; - wall-clock; - 总 Token / tool cost; - 子任务依赖与重复工作。 ### 5.3 Kimi K3:white-box harness 防止“只会一种脚手架” K3 报告明确指出:用单一固定 harness 训练会过拟合: - tool schema; - system prompt; - context management; - interaction protocol。 于是把 harness 拆成可配置模块: ```text tool interfaces system prompts context management strategies skills memories subagents other components ``` 训练时动态组合,可实例化 Kimi Code、Claude Code、Codex、OpenClaw、Hermes 或新 harness。其教学意义不是产品名单,而是: ```text Agent generalization ≠ 只在更多 task 上训练 = task distribution × harness distribution × environment distribution ``` ### 5.4 K3 AET:把“自主”写成可核验任务合同 ```text initial state constrained goal tool-based action space execution budgets independent verifier ``` Agent 必须自己完成: - task decomposition; - tool selection; - planning; - error recovery; - termination。 它不看到 reference trajectory。reward 依据 final environment state。这个定义比“能连续调用很多工具”更接近真正的自主执行。 ### 5.5 K3 persistent assistant:生活在变化世界中的 Agent K3 构造 Gmail、Notion、Slack、Canvas 等 mock applications,保留真实语义但避免外部 API 和 rate limits。任务跨多个模拟日、多个应用与数十个互相关联事件。 报告中的极端轨迹可达到: - 数千次 tool calls; - 数百万 context tokens。 每个事件有独立 evaluation criterion,环境持续演化。这意味着: ```text 任务完成 ≠ 只检查最后一句 任务完成 = 多时刻约束 + 跨应用状态 + 最终世界一致性 ``` ### 5.6 K3 cross-scaffold web development 同一任务在多种 Agent scaffolds 下 rollout,奖励同时使用: - deterministic functional checks; - structure / pixel similarity; - build/runtime error checks; - anti-faking checks; - model judge 检查 source 或交互 artifact。 这条线把“网页看起来像”与“网页真的运行”分开。 ### 5.7 K3 1M Agentic RL 系统 ```text long trajectory → partial rollout across iterations → inactive KV write-back to CPU DRAM → prefetch before reuse → auto-throttle with KV pressure → AgentENV pause/resume/fork/snapshot → final verifier ``` 系统真正保存的是两条同步时间线: ```text Model timeline: tokens, KV, policy version, reward World timeline: files, DB, processes, tools, permissions ``` 少任何一条,都不能可靠恢复百万 Token rollout。 ### 5.8 K3 XTML:工具协议也是模型架构外的能力接口 K3 chat template 的三个目标: 1. extensibility; 2. low alignment tax; 3. decoding friendliness。 关键设计: - explicit structural tokens,减少边界 tokenization ambiguity; - global tool declaration; - one-shot `tool_choice` / `response_format` 放在 history 后,减少 KV invalidation; - 会话中动态追加工具声明; - think、response、tools 三个 channel; - parallel calls 用 `tool + index` 配对结果; - string raw text,其他 typed JSON values; - reasoning effort 作为自然语言 option message,而非另换模板。 这说明 function calling 不只是“输出 JSON”,还是: ```text template × tokenizer × constrained decoding × KV reuse × training distribution ``` --- ## 6. 四条因果主链 ### Chain A · 从静态程序调用到交互 Agent ```text PAL / MRKL → Toolformer → Gorilla / ToolLLM → BFCL → τ-bench / ToolSandbox → MCPMark / K3 XTML ``` 变化: ```text 算一个函数 → 选工具 → 填参数 → 多轮调用 → 维护世界状态 → 与用户共同决策 → 在真实协议生态中长程执行 ``` ### Chain B · 从 prompting 到 Agent RL ```text WebGPT / ReAct → Reflexion / LATS → ToolLLM data synthesis → SWE-Gym / RAGEN → Agent Lightning → DeepSeek-V3.2 → K3 AET + 1M RL ``` 变化: ```text 手写 few-shot trajectory → 自动生成轨迹 → 环境 feedback → 可执行 reward → 多轮 credit assignment → 自动生成 environment + tool + task + verifier → cross-harness long-horizon RL ``` ### Chain C · 从玩具世界到 living environment ```text TextWorld → ALFWorld / WebShop → WebArena → OSWorld / SWE sandbox → τ-bench / ToolSandbox → AgentENV / DSec → K3 persistent multi-day workflows ``` 变化: ```text 短 episode → 可复现站点/桌面/代码库 → database and process state → user + agent dual control → pause / resume / fork / provenance → 跨多天持续变化世界 ``` ### Chain D · 从一次成功到生产可靠性 ```text exact match → functional final state → unit / hidden tests → milestone + minefield → pass^k → utility-security trade-off → budget + side-effect + replay audit ``` --- ## 7. 四个互动实验的规格 ### Lab 1 · Agent Loop Microscope 可调: - direct / plan-execute / ReAct; - tool latency; - observation noise; - schema error; - stale observation; - max steps; - retry policy。 显示: - 每步 `state / thought / action / observation`; - 当前计划; - tool calls; - error recovery; - token / time / cost; - 最终状态是否真的完成。 教学结论: - 更多 thought 不一定解决坏 observation; - 更长 horizon 会放大局部错误; - error message 是环境设计的一部分; - termination 必须由 task state 支持。 ### Lab 2 · Tool Contract Lab 场景: - 错工具; - malformed args; - 缺参数; - 应 abstain 却调用; - 两个可并行独立调用; - 一个存在依赖的伪并行调用; - 调用格式正确但业务状态错误。 显示三种评分: ```text AST / schema correctness execution correctness final-state correctness ``` 教学结论:BFCL 类接口评测与 WebArena / τ-bench 类环境评测回答不同问题。 ### Lab 3 · Reliability & Evaluation Lab 输入: - 单次成功率 `p`; - 重试次数 `k`; - 每次成本; - 副作用是否幂等; - verifier false positive / false negative; - task difficulty variance。 输出: - `pass@k`; - `pass^k`; - expected cost; - false completion; - repeated-side-effect risk。 需要特别展示: ```text p = 0.8, k = 8 pass@8 ≈ 99.9997% pass^8 ≈ 16.8% ``` 同一系统可以“总能试出一次成功”,同时“几乎不能连续八次都成功”。 ### Lab 4 · Long-Horizon Agent RL Control Room 输入: - trajectory horizon; - checkpoint interval; - rollout cap; - wait-all / partial rollout; - KV pool; - environment resume; - verifier granularity; - off-policy drift; - concurrency。 输出: - GPU utilization; - stale trajectory share; - lost work after failure; - KV pressure; - sandbox memory; - reward density; - wall-clock。 对照: ```text Wait-all Partial rollout only Partial rollout + external KV K3-like full stack ``` 所有数值必须标成教学模拟,不能伪装成 K3 实测。 --- ## 8. 正文需要直接纠正的误解 1. **Agent 就是 ReAct。** ReAct 是一种控制循环,不包含完整环境、权限、持久状态和独立评测。 2. **会 function calling 就会完成任务。** 格式正确只证明接口层通过。 3. **长上下文自动解决记忆。** 长窗口没有决定保留、摘要、检索、遗忘与冲突策略。 4. **反思等于 RL。** Reflexion 的 verbal reinforcement 不更新参数。 5. **多 Agent 一定更强。** 它也可能重复工作、传播错误、增加 aggregation 与安全面。 6. **Agent 自己说完成就完成。** 必须检查环境 final state。 7. **一次跑分高就可靠。** 应看 `pass^k`、成本与副作用。 8. **SWE-bench 分数是纯模型 coding 能力。** 它是 model + ACI/harness + budget + environment + tests 的系统结果。 9. **更复杂的 harness 总更好。** Agentless 等工作展示简单、固定的定位—修复—验证流水线也可能很有竞争力。 10. **sandbox 只是安全容器。** 在长程 RL 中,它还承担暂停、恢复、fork、snapshot、provenance 与重放。 11. **最终 reward 足够训练长轨迹。** 稀疏奖励带来 credit assignment、gradient variance 与 collapse。 12. **Agent RL 只是把 GRPO 的序列拉长。** 长轨迹还引入 state transition、跨迭代 rollout、陈旧策略和外部环境状态。 13. **同一模型不同报告分数可直接比较。** tool schema、max steps、context trimming 和 retries 任一变化都可能改变结果。 14. **只要模型安全对齐,Agent 就安全。** 权限、隔离、数据/指令边界、日志、回滚和人工控制仍是系统责任。 --- ## 9. 关键论文阅读链 ### A. 环境与可执行动作 | 年份 | 论文 | 主问题 | |---|---|---| | 2018 | [TextWorld](https://arxiv.org/abs/1806.11532) | 怎样标准化文本环境生成与交互 | | 2019 | [Jericho](https://arxiv.org/abs/1909.05398) | 怎样把交互式小说变成学习环境 | | 2021 | [ALFWorld](https://arxiv.org/abs/2010.03768) | 文本环境如何对齐具身任务 | | 2022 | [WebShop](https://arxiv.org/abs/2207.01206) | 怎样做可扩展网页购物环境与奖励 | | 2021/22 | [WebGPT](https://arxiv.org/abs/2112.09332) | 浏览、引用与人类反馈怎样闭环 | | 2022 | [SayCan](https://arxiv.org/abs/2204.01691) | 语言合理性怎样与世界可行性相乘 | | 2022 | [MRKL Systems](https://arxiv.org/abs/2205.00445) | LLM 怎样路由外部符号模块 | | 2022 | [PAL](https://arxiv.org/abs/2211.10435) | 怎样把计算交给程序执行器 | ### B. 循环、规划、反思与记忆 | 年份 | 论文 | 主问题 | |---|---|---| | 2022/23 | [ReAct](https://arxiv.org/abs/2210.03629) | reasoning 与 action 怎样交错 | | 2023 | [Toolformer](https://arxiv.org/abs/2302.04761) | 模型怎样自监督学习工具插入 | | 2023 | [Reflexion](https://arxiv.org/abs/2303.11366) | 失败怎样变成下一 trial 的语言记忆 | | 2023 | [Generative Agents](https://arxiv.org/abs/2304.03442) | observation、reflection、planning 怎样组织 | | 2023 | [Gorilla](https://arxiv.org/abs/2305.15334) | 大规模 API 调用与幻觉怎样评测 | | 2023 | [Voyager](https://arxiv.org/abs/2305.16291) | 技能库与自动课程怎样长期积累 | | 2023 | [ReWOO](https://arxiv.org/abs/2305.18323) | 规划与 observation 怎样解耦 | | 2023 | [ToolLLM](https://arxiv.org/abs/2307.16789) | 16K+ API 的数据、检索和调用路径怎样生成 | | 2023 | [AutoGen](https://arxiv.org/abs/2308.08155) | 多 Agent 对话怎样成为编程抽象 | | 2023 | [LATS](https://arxiv.org/abs/2310.04406) | 树搜索怎样统一 reasoning、acting、planning | | 2023 | [MemGPT](https://arxiv.org/abs/2310.08560) | 怎样用分层记忆扩展有效上下文 | ### C. 真实环境与评测 | 年份 | 论文 | 主问题 | |---|---|---| | 2023/24 | [AgentBench](https://arxiv.org/abs/2308.03688) | 怎样跨八类环境比较 LLM Agents | | 2023/24 | [WebArena](https://arxiv.org/abs/2307.13854) | 怎样自托管真实网站并检查功能结果 | | 2023/24 | [SWE-bench](https://arxiv.org/abs/2310.06770) | 真实 GitHub issue 能否被测试验证地解决 | | 2023 | [GAIA](https://arxiv.org/abs/2311.12983) | 通用助手如何组合工具、检索与推理 | | 2024 | [VisualWebArena](https://arxiv.org/abs/2401.13649) | 视觉信息怎样进入网页任务 | | 2024 | [OSWorld](https://arxiv.org/abs/2404.07972) | 怎样在真实桌面应用中执行开放任务 | | 2024 | [SWE-agent](https://arxiv.org/abs/2405.15793) | ACI 设计怎样改变软件 Agent 能力 | | 2024 | [τ-bench](https://arxiv.org/abs/2406.12045) | 工具、用户、政策与可靠性怎样一起评测 | | 2024 | [AgentDojo](https://arxiv.org/abs/2406.13352) | 怎样执行式评测间接提示注入 | | 2024 | [Agentless](https://arxiv.org/abs/2407.01489) | 简单 SWE 流水线能否挑战复杂 Agent | | 2024 | [ToolSandbox](https://arxiv.org/abs/2408.04682) | 有状态、多轮与 milestone 怎样评测 | | 2024/25 | [Agent Security Bench](https://arxiv.org/abs/2410.02644) | Agent 攻防面怎样系统分类 | | 2024/25 | [SWE-Gym](https://arxiv.org/abs/2412.21139) | 怎样训练 SWE agents 与 verifiers | | 2025 | [BFCL](https://proceedings.mlr.press/v267/patil25a.html) | function calling 怎样走向多轮 agentic evaluation | | 2025 | [τ²-bench](https://arxiv.org/abs/2506.07982) | 用户与 Agent 双方行动怎样形成 dual control | | 2025 | [MCPMark](https://arxiv.org/abs/2509.24002) | 真实 MCP 使用怎样压力测试 | ### D. Agent RL 与长轨迹系统 | 年份 | 论文 | 主问题 | |---|---|---| | 2025 | [RAGEN](https://arxiv.org/abs/2504.20073) | 多轮 RL 的 trajectory objective 与 Echo Trap | | 2025 | [Agent Lightning](https://arxiv.org/abs/2508.03680) | 任意 Agent runtime 怎样接入 RL 与 credit assignment | | 2025 | [Long-Context Multi-Turn SWE RL](https://arxiv.org/abs/2508.03501) | 131K context 的多轮软件 Agent 怎样做 RL | | 2025 | [DeepSeek-V3.2](https://arxiv.org/abs/2512.02556) | 怎样大规模生成 search/code/general agent 环境 | | 2026 | [DeepSeek-V4](https://arxiv.org/abs/2606.19348) | 1M context、interleaved thinking 与 DSec | | 2025 | [Kimi K2](https://arxiv.org/abs/2507.20534) | agentic data 与可验证 reward 怎样进入统一后训练 | | 2026 | [Kimi K2.5](https://arxiv.org/abs/2602.02276) | 视觉与 parallel-agent RL 怎样统一 | | 2026 | [MOPD](https://arxiv.org/abs/2606.30406) | 多领域/effort 教师怎样 on-policy 整合 | | 2026 | [Kimi K3](https://arxiv.org/abs/2607.24653) | white-box harness、AET、AgentENV 与 1M Agentic RL | --- ## 10. 网页结构合同 建议正文 25 个段落: ```text 00 五层系统 + 十四张账 01 Agent 的最小 POMDP 02 环境前史 03 WebGPT / SayCan / MRKL / PAL 04 ReAct 控制循环 05 Toolformer / Gorilla / ToolLLM 06 Tool Contract Lab 07 ReWOO / Reflexion / LATS / Agentless 08 Generative Agents / Voyager / MemGPT 09 AutoGen 与多 Agent 边界 10 环境从 WebShop 到 WebArena 11 SWE-bench / SWE-agent / SWE-Gym 12 OSWorld 与视觉电脑使用 13 τ-bench / ToolSandbox / τ²-bench 14 Reliability Lab 15 AgentDojo / ASB 与权限 16 Agent RL / RAGEN 17 Agent Lightning 与 credit assignment 18 DeepSeek-V3.2 19 DeepSeek-V4 20 Kimi K2 / K2.5 21 K3 white-box environment 22 K3 AET 与 final-state verifier 23 K3 1M Agentic RL Control Room 24 审计清单与论文图谱 ``` 每节必须: - 先说它修复了上一代什么失败; - 画输入、状态、动作、反馈; - 给一个易懂类比; - 给一个反例或边界; - 链接一手论文; - 若有数字,注明模型、harness 与论文年份; - 对 DeepSeek / Kimi 报告数字标“官方报告值”。 --- ## 11. 页面与实验验收清单 ### 内容 - [ ] 五层系统模型完整; - [ ] 十四张账完整; - [ ] 至少 45 个一手论文节点; - [ ] 至少四条因果主链; - [ ] SayCan、ReAct、Toolformer、pass@k/pass^k 公式易懂; - [ ] DeepSeek-V3.2 / V4 独立高亮; - [ ] K2 / K2.5 / K3 连续主线; - [ ] K3 white-box、AET、XTML、AgentENV 与 1M RL 都展开; - [ ] 14 个误解逐一纠正; - [ ] 所有报告值标明证据边界。 ### 视觉 - [ ] 五层 Agent stack; - [ ] POMDP 状态机; - [ ] Say × Can 乘法图; - [ ] ReAct loop; - [ ] Toolformer 数据筛选; - [ ] 环境演化时间线; - [ ] SWE ACI 对照; - [ ] final state verifier; - [ ] pass@k vs pass^k; - [ ] security attack surface; - [ ] DeepSeek agentic synthesis; - [ ] K3 white-box module matrix; - [ ] AET contract; - [ ] partial rollout + external KV + AgentENV。 ### 交互 - [ ] 四个实验可键盘操作; - [ ] tabs、buttons、range 有语义标签; - [ ] URL fragment / sticky rail 可用; - [ ] JS 关闭时仍可读核心内容; - [ ] reduced motion; - [ ] 移动端单列不横向溢出; - [ ] 所有模拟值明确标“教学模拟”。 ### 自动化测试 - [ ] Astro check; - [ ] production build; - [ ] site route checker; - [ ] Agent 页面标题、目录和论文数; - [ ] 四个实验 tab 切换; - [ ] range 控件更新输出; - [ ] 工具错误注入; - [ ] `pass@k` 与 `pass^k` 单调方向; - [ ] 移动端 390 px 无水平滚动; - [ ] 键盘 focus 与 aria-selected; - [ ] 全站既有九套浏览器回归。 --- ## 12. 证据边界与待持续跟踪 1. K3 与 DeepSeek-V4 都是 2026 技术报告,页面必须保留报告版本与日期。 2. 公开 benchmark 会随 harness、数据修复和模型更新变化;历史数字只作为当时坐标。 3. Agent RL 的算法结论仍多来自较小环境或特定 SWE 设置,不能直接外推到任意生产 Agent。 4. 论文中的 judge-model reward 与 deterministic verifier 必须区分。 5. white-box environment 与 hidden verifier 的实现细节并未全部公开,不能虚构。 6. AgentENV、DSec 的规模与延迟均为官方报告数据,本站不声称复测。 7. 安全评测集不能证明真实部署“已安全”,只能揭示已覆盖威胁下的相对表现。 8. 多 Agent / swarm 的 wall-clock 优势必须和总计算量一起看。 9. MCP 与工具协议仍在快速变化,后续需要按版本持续更新。 10. 本章结束后,评测专题还需进一步展开 contamination、benchmark repair、harness sensitivity 与 cost-normalized evaluation。