从技能文本到技能结构:面向 Agent 技能的调度-结构-逻辑表示 From Skill Text to Skill Structure: The Scheduling-Structural-Logical Representation for Agent Skills
提出 SSL 三层结构化表示,显式拆分技能文本的调用、流程与动作证据
前置知识
LLM Agent 与可复用 Skill
LLM Agent 指以大模型作为控制器、维护任务上下文、调用外部工具/服务来完成多步任务的系统。当单一工具调用不够时,可把"指令+控制流+约束+可执行操作"打包成可重用 Skill,跨任务发现、选择、组合和复用。
本文聚焦于 Skill 的机器可处理表征,是 Agent 系统接入大规模 Skill 注册表的前提。
稠密检索与稠密向量索引
稠密检索用神经网络将查询和候选映射到同一向量空间,用内积/余弦相似度匹配;FAISS 等库可在百万级向量上做近似最近邻,常配合 Sentence-Transformers 类嵌入模型使用。
本文 Skill Discovery 实验基于 Qwen3-Embedding-0.6B + FAISS 内积索引,是评估 SSL 检索增益的关键管线。
Agent 工具/技能的安全风险面
可调用外部资源的技能天然引入数据外泄、破坏性操作、权限提升、隐蔽执行、资源滥用、凭证访问等风险维度,这些维度常以静态可观测证据定义,例如资源范围、依赖、控制流、工具调用与数据流描述。
本文 Risk Assessment 评测就是围绕这六类静态证据判断 LLM 评审员能否识别风险,决定 SSL 在安全审查场景下的价值。
JSON Schema/受限词表设计
通过预定义字段、枚举类型和图节点关系,让 LLM 输出结构化、可比较、可校验的数据;典型模式是闭集 act_type + 校验函数,配合 LLM 做语义抽取而非开放式摘要。
SSL 本质是给 SKILL.md 设计一个三图 Schema,使用受限词表保证多技能之间可比较,是论文方法的核心机制。
研究动机
当前 LLM Agent 系统越来越依赖可复用的 Skill 包,但 Skill 普遍以 SKILL.md 类纯文本文档承载,即便外层包了 JSON/YAML,机器可用证据几乎全部埋在自然语言字段里。一个 Skill 文档同时纠缠了"何时调用/输入输出是什么/执行分几步/会读写哪些文件"等多种语义角色,导致下游系统在 Skill 检索和预执行风险审查两类刚需场景中反复从长且噪声大的文本中逆向推断结构。两个具体痛点被反复点名:在大型重叠注册表里做技能发现,仅靠稀疏元数据不足以匹配实现层细节;第三方 Skill 拿到过宽的持久权限时,外部评审却很难从文本中快速定位数据外泄或权限提升的线索。所以 Agent 生态在"原始文档"和"下游任务"之间缺一个稳定可复用的中间表征层。
本文的目标是提出 SSL(Scheduling-Structural-Logical)三层结构化表示,把 Skill 文档里的"调用级信号 / 场景级执行结构 / 原子动作与资源证据"三种异质证据分层显式化,并以类型化、可校验、可在多 Skill 间比较的 JSON 图形式落地。配套实现一个 LLM 归一器(normalizer)把现有 SKILL.md 半自动转换为 SSL,并在 Skill Discovery 与 Risk Assessment 两个可控的下游任务上证明 SSL 比纯文本表征更有效,最终目标是把 SSL 定位成 Agent 技能生态的"证据中间层"。
与已有工作不同的是,已有工作要么停留在更聪明的检索模型上、要么停留在给工具描述做摘要压缩,都没有正面回答"一个 Skill 在被使用前,应该被表示成什么"。本文的独特切入点是借用 Schank 和 Abelson 关于认知语言表征的经典理论——Memory Organization Packets 对应调度层、Script Theory 对应结构层、Conceptual Dependency 对应逻辑层——把 Skill 显式拆成面向目标、面向流程、面向原语三层图,从而把"管理 Skill"和"使用 Skill"统一在同一表征之下。
核心方法
SSL 把一个 Skill 文档 $d$ 映射为五元组 $G_d = (r_{sch}, G_{str}, G_{log}, R_{cont}, R_{entry})$:$r_{sch}$ 是单条 Skill 级调度记录,$G_{str}$ 是场景层有向图(节点是 Scene,边是阶段级 transition),$G_{log}$ 是逻辑层有向图(节点是 logic step,边是动作级 transition),$R_{cont}$ 描述跨层包含关系(Skill→Scene→logic step),$R_{entry}$ 标记遍历入口。直觉上:调度层回答"这个 Skill 是什么/何时调用",结构层回答"分几个阶段推进",逻辑层回答"每个阶段具体动什么、用什么资源"。三个设计目标:compact(只保留管理所需的证据,剔除开放属性)、typed(用受控词表让多 Skill 可比较)、grounded(每个字段必须能在源文档中找到证据,禁止臆测)。
核心创新在于把 Skill 中原本糅在一起的"调用接口 / 执行流程 / 原子操作"三种语义维度拆成不同类型字段和不同图结构,让下游任务可以按需取用。与文本基线相比,本质区别不是"换了个更好的描述",而是给每个 Skill 一个机器可校验的中间层:检索场景直接拿 SSL 的接口/场景字段当 embedding 输入,风险评估场景则用 SSL 把"动作类型、资源范围、依赖关系"这些在原文里散落的线索抽出来,配合源文档一起喂给判官模型。配合 LLM normalizer 把 6,184 条公开 SKILL.md 批量转换为 SSL,再做下游评测,整体形成"理论 Schema → 自动归一 → 下游验证"的闭环。
方法步骤详情
第一步用 DeepSeek-V3.2 驱动的 LLM 归一器对源 Skill 文档做语义抽取:prompt 内显式规定三图 Schema、允许的枚举值和 grounding 策略,每填一个字段必须能从原文找到证据。第二步把 Skill 级字段汇总为调度记录 $r_{sch}$,覆盖 skill 标识、goal、tags、intent 签名、输入/输出契约、控制流特征和场景聚合画像。第三步把文档切成 Scene(prepare/acquire/reason/act/verify/recover 等阶段),构建 $G_{str}$ 的节点和边。第四步把每个 Scene 细化为 logic step,每个 step 选择一个 act_type(闭集原语枚举,记录在 Appendix A)以及参数、效果、资源边界,作为 $G_{log}$ 的节点和边。第五步验证:检查结构良好性、标识一致性、枚举合规、$R_{cont}$ 包含链接正确、$R_{entry}$ 入口可解析以及转移目标合法;解析或硬校验失败自动重试。100 条人工抽检显示 83% 字段与源文档一致。
技术新颖性
新颖性不在于单独提出某个图结构,而在于它是第一个"专为 Agent Skill 而非通用工具/服务"设计的三层分解,且每层都显式对应 Schank 认知表征理论中的一种经典抽象;外加一个完整可操作的归一 pipeline 和两个下游评测(Skill Discovery + Risk Assessment)。和只能提供静态描述的 README-to-text 压缩方法相比,SSL 把"阶段执行轨迹"和"原子动作—资源—控制流"做成有类型节点和边,让下游既可以单独消费某一层、也可以把三层一起作为证据池。这种"中间证据层"的定位让 SSL 比 RAG 类外挂更结构化、比函数调用 schema 更面向 Skill 包管理。
实验结果
Skill Discovery 用 Qwen3-Embedding-0.6B + FAISS 在 431 条意图级查询、6,184 候选 Skill 同管线比较十种输入:Desc + SSL-Rich 把 MRR@50 从 0.649 抬到 0.729(bootstrap 95% CI $[0.051, 0.111]$),NDCG@5/10 与 Recall@10 全最优;Full SKILL.md 叠加 SSL 仍弱于 Desc+SSL,说明结构化字段比冗长文本更适合检索。Risk Assessment 在 252 条带标签 Skill 上固定 DeepSeek-V3.2 当判官、只换输入:Full SKILL.md Macro F1 0.409、只给 SSL 0.422、Full SKILL.md + SSL 升到 0.509(CI $[0.051, 0.152]$),六维 F1 全最高;最大增益在 data exfiltration、credential access 与 resource abuse 三项,表明 SSL 把动作与资源证据显式暴露出来。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Skill Discovery | MRR@50 | 0.729 | 0.649(Desc + Source Outline 最强非 SSL 基线) | +0.080(95% CI [0.051, 0.111]) |
| Skill Discovery | NDCG@10 | 0.770 | 0.689 | +0.081 |
| Skill Discovery | Recall@10 | 0.905 | 0.833 | +0.072 |
| Risk Assessment | Macro F1 | 0.509 | 0.409(Full SKILL.md) | +0.101(95% CI [0.051, 0.152]) |
| Risk Assessment | Macro Precision | 0.884 | 0.828 | +0.056 |
| Risk Assessment | Macro Recall | 0.382 | 0.283 | +0.099 |
局限与改进
作者明确指出五条局限:(1) SSL 只能从静态工件归一,无法判断下载 payload、构造命令或条件资源访问等动态行为;(2) LLM 归一器可能漏掉关键事实、把歧义行为映射到粗粒度枚举,特别是对故意模糊/混淆的 Skill;(3) 评测只覆盖 Skill Discovery 与 Risk Assessment,没有评估 SSL 在实际规划/执行/监控/迭代中的落地效果;(4) Skill Discovery 查询集是自动生成 + 现实性人工过滤,而非完全人工编写;(5) 风险标签 252 条来自 Gemini-3.1-pro-preview、Claude-Sonnet-4.5、GPT-5 三模型投票,与评测模型同为 LLM,结论应被视为静态风险识别性能,不替代专家安全审计或运行时安全检查。我个人的额外观察是:Schema 的闭集枚举虽然有助于可比较性,但也限制了跨新型 Skill 的扩展能力;评测只用了相对小的 Embedding(0.6B)和一个判官模型,结论在更强模型/不同 Embedding 下是否稳定还有待验证。
独立分析的弱点
第一,SSL 当前完全是文本静态提取,无法预测运行时副作用,未来改进方向是把 SSL 与沙箱执行 trace 联动,在每个 logic step 上回填实际资源访问和参数实例化结果。第二,归一器依赖单一 LLM(DeepSeek-V3.2),既可能漏抽又可能编造,未来可引入多模型投票 + 结构一致性校验,把每一层的枚举值与源文档片段绑定回指针,让用户能直接溯源到原文片段。第三,闭集 act_type 和枚举 scene 类型虽然便于比较,但遇到新场景(如 LLM agent 调用外部 API 链)会过粗,可改为"核心闭集 + 插件式扩展槽位",并提供 controlled vocabulary evolvement 流程。第四,风险评测把 SSL 喂给同一个 LLM 判官,存在确认偏倚,应该交叉用人类专家或独立模型做盲评,特别是 covert execution 这类 F1 仍只有 0.264 的维度。第五,6,184 条 Skill 的覆盖偏差直接影响检索评测的外部效度,应该报告 Skill 类型分布、覆盖领域,并做子群稳定性检查。
未来方向
作者明确指出的下一步是把 SSL 从"管理 Skill"扩展到"使用 Skill",例如把多个 Skill 的 SSL 图链接成仓库级 skill graph,便于组合与复用;以及把静态归一与运行时 trace 结合,让 SSL 在执行时充当操作指南和风险检查清单。基于结果我能想到的延伸包括:(1) 把 SSL 作为 Agent 规划阶段的中间提示结构,让 planner 在每个 Scene 完成后回填实际 step 与证据,形成自我审计;(2) 用 SSL 在 Skill 注册层做去重和冲突检测,识别不同 Skill 中重复或矛盾的 logic step;(3) 把 SSL 接入 CI 流程,对每个 PR 自动跑归一器并比较 SSL diff,作为 Skill 升级审查的辅助证据;(4) 探索 SSL 与其他结构化资产(如模型 card、数据 card)的本体对齐,构建统一的 Agent 资产目录。
复现评估
作者声明 SSL 规范、标注语料和评测数据集已开源在 https://github.com/COOLPKU/SSL,包括 6,184 条 Skill 语料、431 条意图级查询和带六维风险标签的 252 条 Skill 集合。复现所需算力相对友好:Skill Discovery 只需要在 Qwen3-Embedding-0.6B 上对 6,184 个候选文本做 embedding 并建一个 FAISS 内积索引,单卡 GPU 即可在小时内完成;Risk Assessment 则需要调用 DeepSeek-V3.2 API(无开源权重),并辅以 Gemini-3.1、Claude-Sonnet-4.5、GPT-5 做标签生成,这意味着读者要么拥有这些闭源 API 的访问权,要么自行用替代模型重做归一与判官。归一 prompt、Schema 和校验规则在 Appendix A/C 中给出,但完整 prompt 模板和全部场景枚举表只在 GitHub 仓库里公开,需要结合仓库才能完整复现。
论文图表
表格列出 6 个威胁维度(Data Exfiltration、Destructive Behaviors、Privilege Escalation、Covert Execution、Resource Abuse、Credential Access)和 5 种输入表征下的 F1:Desc Only(0.280/0.162/0.364/0.083/0.132/0.391)、Full MD(0.511/0.371/0.381/0.222/0.271/0.695)、SSL-Shallow(0.272/0.147/0.381/0.042/0.133/0.286)、Full SSL(0.651/0.403/0.348/0.083/0.323/0.722)、MD+SSL(0.699/0.439/0.455/0.264/0.419/0.780),Macro F1 分别为 0.235 / 0.409 / 0.210 / 0.422 / 0.509。
逐维度 F1 表让读者看清 SSL 在哪些风险类型上提升最明显(数据外泄、凭证访问、资源滥用),对理解 SSL 暴露证据的能力边界至关重要。
表格给出五种输入下的 Macro Accuracy / Precision / Recall / F1:Desc Only 0.714 / 0.823 / 0.148 / 0.235;Full MD 0.765 / 0.828 / 0.283 / 0.409;SSL-Shallow 0.709 / 0.783 / 0.129 / 0.210;Full SSL 0.778 / 0.841 / 0.315 / 0.422;MD+SSL 0.801 / 0.884 / 0.382 / 0.509。
这张汇总表强调 Full MD+SSL 在不牺牲 precision 的情况下显著提升 recall 和 F1,是论文'既要又要'论证的支柱,也是 SSL 应与源文档协同而非替代源文档这一主张的直接证据。