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 是当前可采用的方向:入口小、引用按需加载,并且用 status、negative_terms、has_verify、has_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 做这类任务时应该如何读资料、调用脚本、验证结果和避免已知坑。
下一步¶
- 第一版任务包使用日志已经接入 dashboard:Task Skill Usage Log。
- 本地
task_skill_runtime已能自动选择包、追加 usage event,并接入orgreorg_demo;下一步接入线上 Agent / 企微 / Web runtime。 - 用 usage log 中的误触发/漏触发样例扩展这组合成样例。
ask_router_review高风险包已经实体化;后续把问错人、节流、回复解析和 knowledge card review 纠正信号写回 usage dashboard。tool_gateway_safety已完成第一轮,后续纳入 usage dashboard 和真实 Connector 接入验证。- 后续接入企微后,把任务包触发和主动询问流程联动。
原始输出见 vault/50-outputs/task-skill-package-eval-analysis.md。