GraSP 论文深度分析:图结构技能编排 — Agent Skill 管理的范式转移

LLM Agent 的 Skill 生态已经快速发展,但最近的大规模基准测试揭示了一个反直觉的发现:给 Agent 提供更多 skill 并不会单调地提升性能。2-3 个聚焦的 skill 带来的增益最大,4 个以上就开始边际递减,完整文档库甚至会造成伤害。瓶颈已经从 skill availability(可用性)转移到了 skill orchestration(编排)。
腾讯在 arXiv 2604.17870 上发表的 GraSP(Graph-Structured Skill Compositions) 正是针对这个问题的第一个可执行的 skill 图架构。本文对它进行深度技术分析。
核心洞察
GraSP 的核心论点是:Agent 需要的不是更多的 skill,而是一个 结构化的选择/组合/执行机制,并包含显式的因果依赖关系。为此,GraSP 在 skill 检索和执行之间引入了一层 编译层(Compilation Layer),将扁平的 skill 集合编译成带类型的 DAG(有向无环图)。
传统的扁平 skill 执行(ReAct + Skills)将 skill 视为顺序链,任何失败都会以 O(N) 代价使整个后缀失效。GraSP 的 DAG 结构将失败传播限制在 O(d^h) 的局部子图中——典型场景下 d≈2, h=2,意味着无论任务多长,修复范围始终在 4-5 个节点内。
四阶段架构
Stage 1: Memory-Conditioned Retrieval
不同于纯语义匹配(仅靠任务描述匹配 skill 名称),GraSP 融合了情景记忆(Episodic Experience):
p(s|q,x,R) = λ·p_dir(s|q,x) + (1-λ)·(1/Z)·Σ(ρ_j · freq(s, τ_ij))
其中 p_dir 是直接语义分布,ρ_j 是历史相似记忆的归一化相似度,freq(s, τ_ij) 是技能在成功轨迹中的出现频率。同时计算一个校准后的 retrieval confidence c_ret,使用四个特征:平均记忆相似度、分布一致性、top-skill 边距、目标覆盖率。当 c_ret < τ_low 时,系统回退到 ReAct。
Stage 2: DAG Compilation(核心创新)
检索到的 skill 集合是扁平的,丢失了依赖信息。编译阶段将它们重组为 typed DAG,每个 skill 节点携带 8 个属性:
a(v) = ⟨κ_v, θ_v, φ_v_pre, φ_v_eff, ν_v, ζ_v, c_v, b_v⟩
schema args precond postcond verifier status conf budget
三种边类型编码不同的依赖语义:
- state 边 (u → v):u 的 effect 满足 v 的 precondition(如"拿锅"→"加热",必须先有锅)
- data 边 (u → v):u 产出 v 需要的数据(如"查找温度"→"设置温度")
- order 边 (u → v):u 必须在 v 之前执行(如"清洗"→"切割")
扁平序列只是 GraSP 的特例(仅有 order 边)。DAG 结构带来了三个关键优势:表达能力(并行分支 + 类型化依赖)、有界失败传播、受控数量(编译阶段自动剪枝冗余 skill)。
Stage 3: Verified Execution + Local Repair
执行时逐节点做 pre/postcondition verification:
- 检查 x_t ⊧ φ_v_pre(当前状态满足前置条件?)
- 执行 skill v
- 检查 ν_v(x_t, x_{t+1})(后置条件验证)
- 全部通过 → 标记 verified,继续下一个 ready 节点
失败时,系统生成一个 failure event ε = ⟨v, τ_ε, m_ε, x_t⟩,其中 τ_ε 分类失败类型(precondition/execution/postcondition/timeout)。然后调用 5 种类型化局部修复算子:
| 算子 | 操作 | 适用场景 |
|---|---|---|
| Rebind | 更新失败节点参数 | skill 对但参数错 |
| InsertPrereq | 插入缺失前置条件子图 | 缺前置步骤 |
| Substitute | 替换 skill schema(保下游兼容) | skill 不适用但需同类功能 |
| Rewire | 局部编辑边(增/删/改类型) | 依赖关系错误 |
| Bypass | 跳过节点(若状态已满足下游需求) | 冗余步骤 |
修复范围被限制在 h-hop 邻域内(|ΔV| ≤ L_max, |ΔE| ≤ E_max),这是保证 O(d^h) 复杂度的关键。如果局部修复失败,系统升级到全局重规划或 ReAct fallback。
Stage 4: Confidence-Based Routing
不是所有任务都适合结构化执行。GraSP 的三段式路由:
- c_ret < τ_low → 回退到 ReAct(避免不可靠的 skill 执行)
- c_ret > τ_high → 完整 DAG + local repair
- 中间值 → 增加 repair budget 作为预防
由于 GraSP 包含 ReAct 作为特例(当所有 skill 置信度低时),这个机制保证了 no-regression。
实验数据
GraSP 在 4 个交互基准测试(ALFWorld、ScienceWorld、WebShop、InterCode)上使用 8 个 LLM 后端(DeepSeek V3.2、GPT-4.1、Claude-4-Sonnet、GLM-5、Gemini 2.5 Pro、o4 Mini、Qwen3-235B、Kimi-K2.5)进行了全面评估。
核心结果:48/48 配置全部最优
GraSP 在所有 48 个 (model, split) 配置中均超越所有 baseline:
- 平均比 ExpeL 高 +12.7 分
- 平均比最强 per-cell baseline 高 +6.9 分
- 比 ReAct 平均少 ~24% environment steps(最佳情况 -41%)
几个亮点数据:
- Gemini 2.5 Pro + ALFWorld seen:GraSP 91.4 vs ReAct+Skills 76.1(+20.1%)
- GLM-5 + ALFWorld seen:GraSP 96.3 vs ReAct+Skills 80.9(+19.0%)
- Claude-4-Sonnet + ScienceWorld:GraSP 62.3 vs ReAct+Skills 42.9(+45.2%)
消融实验
逐组件贡献分析(ALFWorld + DeepSeek V3.2):
| 配置 | ΔReward | 占比 |
|---|---|---|
| Experience Memory | +1.6 | 19.7% |
| DAG Compilation | +1.9 | 23.5% |
| Local Repair | +1.3 | 16.0% |
| Routing | +0.9 | 11.1% |
DAG Compilation 贡献最大,因为它既过滤了无关 skill,又将依赖顺序显式化。值得注意的对比:Local Repair(+1.3)vs Global Replan(-2.3 比 GraSP 完整版),确认局部修复远优于全局重规划。
任务复杂度与 GraSP 优势正相关
短任务(≤10 steps)上 GraSP 比 ExpeL 高 ~6%,长任务(≥20 steps)上差距增长到 ~18%。这直接验证了 O(N) vs O(d^h) 的理论分析:随着链条变长,扁平 agent 的一次中段失败会丢弃所有下游进度,而 GraSP 将损坏局限在受影响的子图。
对 Agent 系统设计的启示
1. 技能编排 > 技能数量
当前 Agent 框架(包括 Hermes)的 skill 管理侧重点是 skill 本身的增删改查。GraSP 指出下一步是 skill orchestration——如何自动选择、排序、组合、容错。这暗示了 Agent 框架需要从 "skill registry" 进化到 "skill compiler"。
2. DAG 而不是 Chain
大多数 Agent 框架的 skill pipeline 是线性的。实际场景中,有些 skill 可以并行(如同时 web_search + 本地文件读取),有些有前置依赖。GraSP 的 DAG 模型在 Kanban/Orchestrator 等多 agent 编排场景中有直接应用价值。
3. 局部修复 vs 全局重试
当前 Agent 系统中 skill 失败通常触发整个流程重试(O(N))。GraSP 的 O(d^h) 局部修复方案更优雅,特别是对长期任务(如科学实验、多步推理),能显著节省 token 和 latency。
4. Confidence-Based 路由
不是所有任务都需要完整 skill pipeline。GraSP 的思路(低置信度→回退到简单策略)可以引入 Agent 的执行路径选择中,对简单请求直接走轻量路径,复杂任务才激活完整 DAG。
总结
GraSP 是 2026 年上半年在 Agent Skill 管理方向上最重要的论文之一。它的核心贡献不是提出了一种新的 skill 格式或检索方法,而是从根本上重新思考了 skill 的执行模型——从扁平的顺序链到编译后的 DAG。这个范式转移对 Agent 框架的设计有深远影响:未来的 Agent 框架可能需要内建一个 "skill compiler",而不仅仅是一个 "skill registry"。
与其他同期论文的对照:
- SkCC(2605.03353)关注 skill 的跨框架可移植性(编译到不同 Agent 平台),与 GraSP 互补
- Verifiable Artifacts(2605.00424)关注 skill 的安全验证(信任 schema),与 GraSP 的节点级验证结合
- Graph of Skills(2604.05333)关注大规模 skill 库的检索(依赖感知检索),是 GraSP 的前置模块