跳转至

Task Skill Package Eval:任务技能包触发与安全实验

实验定位

任务技能包是 Ontology 本体层中的可执行知识对象。它的风险不是“能不能写成一个目录”,而是落地后会不会:

  • 在不相关任务中误触发。
  • 本该使用时没有触发。
  • 把大量引用常驻进 prompt,造成上下文膨胀。
  • 把过期包、不安全脚本或无验证包带进任务。
  • 把任务流程说明误当成事实源。

本实验用 9 个合成任务、8 个候选包,对比 4 种触发策略。

运行命令:

bash python scripts/task_skill_package_eval.py --write-report

策略对照

策略 含义
always_load_all 每个任务加载所有包和引用,模拟 all-in prompt
keyword_title_only 只看包名/标题关键词,模拟没有 manifest 的浅层触发
progressive_manifest 按 task_type、trigger_terms 和 signals 触发,按需加载 references
progressive_manifest_guarded 在 manifest 触发基础上过滤 deprecated、unsafe、无验证和 negative_terms

当前结果

策略 Precision Recall Exact Match Safe Activation Passed False Positive Forbidden Stale Unsafe Avg Tokens
always_load_all 10% 100% 0% 0% 0% 65 18 9 9 14020.0
keyword_title_only 58% 100% 56% 67% 56% 5 3 0 1 1776.7
progressive_manifest 50% 100% 33% 33% 33% 7 7 6 0 2601.1
progressive_manifest_guarded 100% 100% 100% 100% 100% 0 0 0 0 766.7

关键结论

progressive_manifest_guarded 是当前可采用的方向:入口小、引用按需加载,并且用 statusnegative_termshas_verifyhas_unsafe_script 过滤风险。它在当前样例中没有牺牲召回,同时把平均上下文 token 从 all-in 的 14020.0 降到 766.7,下降约 95%。

always_load_all 看起来召回高,但它把过期包、无验证包、不安全脚本和无关包全部带进任务。这个结果说明任务技能包不能常驻 prompt,也不能被当成一个大号知识库。

单靠包名或标题关键词也不够。keyword_title_only 在“只复跑 benchmark,不发布网站”这类任务里会误触发 docs publish,在“更新 project_status”时也容易混淆 dashboard 和 docs 发布。正式任务包必须有显式 manifest。

progressive_manifest 如果不做 guard,仍然会触发 deprecated 的泛化包。也就是说,manifest 只解决“怎么触发”,还必须配合 lifecycle、verify 和 safety 字段解决“能不能触发”。

对产品方案的影响

任务技能包可以作为可复用 workflow 的本体对象,但不应替代 Evidence、SearchConnector 检索投影、Connector 证据回查或 Ask Router 主动询问。

第一版任务包 manifest 至少需要这些字段:

text id status task_types trigger_terms negative_terms entry_tokens reference_tokens has_verify requires_tool_gateway has_unsafe_script owner updated_at

事实仍然回到 vault/docs、SearchConnector、源系统和人工 review。任务包只描述 Agent 做这类任务时应该如何读资料、调用脚本、验证结果和避免已知坑。

下一步

  1. 第一版任务包使用日志已经接入 dashboard:Task Skill Usage Log
  2. 本地 task_skill_runtime 已能自动选择包、追加 usage event,并接入 orgreorg_demo;下一步接入线上 Agent / 企微 / Web runtime。
  3. 用 usage log 中的误触发/漏触发样例扩展这组合成样例。
  4. ask_router_review 高风险包已经实体化;后续把问错人、节流、回复解析和 knowledge card review 纠正信号写回 usage dashboard。
  5. tool_gateway_safety 已完成第一轮,后续纳入 usage dashboard 和真实 Connector 接入验证。
  6. 后续接入企微后,把任务包触发和主动询问流程联动。

原始输出见 vault/50-outputs/task-skill-package-eval-analysis.md