技能统筹引擎 v2(控制平面 + 三省六部人类界面)
1. 定位
本技能是元技能控制平面,负责:
- 发现当前环境真实可用的能力;
- 将不同来源能力规范化为
CapabilityCard; - 拆解目标并建立
TaskCard / NodeCard; - 用字段级
AuthorityMatrix解决多 Skill 冲突; - 用
ConstraintLedger继承系统/开发者/用户/项目约束; - 用 Artifact producer/consumer 构建真实数据流 DAG;
- 记录
ProjectRuntimeState、checkpoint 与执行状态; - 对失败进行分类,只在幂等安全时重试;
- 记录 Evidence,避免把计划误报成执行结果;
- 通过领域 Quality Gate 验证交付物。
它不是统一技能执行 API,也不假设所有能力都有相同调用方式。实际操作仍使用当前会话真实存在的工具、插件、连接器、系统技能、文件与模型能力。
2. 永久安全边界
- System > Developer > User > Project > Source > Skill > Inferred。
- 不虚构技能、工具、插件、文件、调用结果或后台任务。
- 对外部代码/技能包先静态检查,再执行。
- 发送、发布、删除、覆盖、付款和其它外部写入遵循宿主确认与权限规则。
- 自动重试必须同时满足:失败可重试、节点幂等、未超预算。
- 简单任务直接执行,不为展示编排而强制建复杂 DAG。
- 项目状态只服务当前项目,不自动扩展成长期用户画像。
3. 使用前读取顺序
复杂编排任务按需要读取:
- references/data-contracts.md —— 数据对象与契约
- references/orchestration-rules.md —— DAG/数据流/并行规则
- references/project-state.md —— checkpoint 与续跑
- references/failure-and-recovery.md —— 失败与重路由
- references/quality-gates.md —— 验收门
- references/host-compatibility.md —— 宿主边界
- references/six-ministries.md —— 人类可读分类,仅作界面
AI 视频工作流可额外读取:
- references/ai-video-profile.md
profiles/ai-video-seedance.json
4. Phase A:事实化能力发现
4.1 能力来源
按真实性优先发现:
- 系统/开发者强制技能与工具规则;
- 当前会话可调用工具;
- 文件系统 Skill;
- 已安装插件/连接器;
- 当前 Conversation / Library 中用户提供的 Skill 文档;
- 安全本地文件/代码能力;
- 模型原生推理/文本处理。
注意:discover_skills.py 只能发现文件系统 Skill,不代表全部能力。
4.2 文件系统发现
python /home/oai/skills/skill-orchestrator/scripts/discover_skills.py \
--root /home/oai/skills --max-depth 4
v2 默认部分成功:坏 Skill 会标记 health.available=false,不会让所有健康 Skill 消失。需要 CI 严格失败时加 --strict。
4.3 Capability Registry
把不同来源能力标准化为 CapabilityCard。优先记录:
- id/name/version/source
- domains/intents
- accepts/produces
- authority.owns/advises
- runtime/side_effects
- health
不要为能力增加宿主不存在的通用调用接口。
5. Phase B:TaskCard 与约束账本
从用户目标建立 TaskCard:
- goal
- inputs/requires
- outputs/deliverables
- success criteria
- constraints
- risk
将所有明确约束写入 ConstraintLedger。高优先级锁定项不能被低优先级 Skill 覆盖;发生冲突时报告冲突,不偷偷改用户锁定内容。
6. Phase C:能力匹配与字段级权威
6.1 匹配
优先根据:
- Domain match
- Intent match
- Input compatibility
- Output compatibility
- Authority match
- Runtime availability
可使用 CapabilityRegistry.match() 获取可解释分数。匹配分数只是候选排序,不覆盖用户/系统明确指定的技能。
6.2 AuthorityMatrix
冲突必须按字段解决,而不是给整个 Skill 排一个绝对等级。
示例:
- 剧情事实由 source/script 管;
- 表演由 director 管;
- 引擎时长由 engine specialist 管;
- timeline 由 timeline compiler 管;
- continuity 由 continuity validator 管。
Skill 只能直接写自己拥有的字段;其它字段只能建议或请求拥有者重新编译。
7. Phase D:Artifact 数据流 DAG
Node 不只写 depends_on,还必须写:
requiresproducesresource_locksidempotencymax_retriesfallbackssuccess_criteria
计划必须验证:
- node id 唯一;
- 无未知依赖、自依赖、循环;
- 每个 required Artifact 有 seed 或 producer;
- 同名 Artifact 默认只有一个 producer;
- 同批节点没有 resource lock 冲突;
- 读取先于修改、生成先于验证;
- 高风险节点遵循宿主授权。
本地验证:
python /home/oai/skills/skill-orchestrator/scripts/orchestrator_cli.py \
validate-plan plan.json
8. Phase E:宿主执行 + Runtime State
Orchestrator 不自行伪造工具调用。宿主执行真实工具后,把状态写入 RuntimeController:
pending → ready → running → completed → verified
失败:
running → ready(仅安全重试)或 failed/blocked。
复杂项目应创建 ProjectRuntimeState,保存:
- plan
- node statuses
- artifacts
- constraints
- authority rules
- evidence
- checkpoints
初始化示例:
python /home/oai/skills/skill-orchestrator/scripts/orchestrator_cli.py \
init-project /mnt/data/project-state.json \
--project-id PROJECT-001 --plan plan.json
查询可执行节点:
python /home/oai/skills/skill-orchestrator/scripts/orchestrator_cli.py \
ready /mnt/data/project-state.json
9. Phase F:失败、重试与重路由
先分类失败:输入缺失、Schema、能力不可用、权限、timeout、rate limit、tool error、validation、quality、safety。
自动重试必须满足:
- failure.retryable=true
idempotency.safe_to_retry=true- retry_count < max_retries
Fallback 需要重新验证 I/O Artifact、Authority、风险与 DAG。发送/删除/付款等操作不得因普通重试策略而重复执行。
10. Phase G:Quality Gate 与证据
至少检查:
- 目标覆盖;
- Artifact 数据流;
- 权威字段无越权;
- 约束未被错误覆盖;
- 产出真实性;
- 格式/Schema;
- 后继使用正确版本前驱;
- 领域专用 Gate。
每个“已完成/已验证”的关键结论应有工具回执、文件存在、validator 或前驱状态作为 Evidence。
11. Context Compiler
不要把整个项目全文重复传给每个节点。优先使用:
GLOBAL_LOCK + SCENE/LOCAL_CONTEXT + CURRENT_DELTA
这样减少上下文漂移、冲突和成本。
12. 三省六部的正确用途
“三省六部”只作为人类可读的编排界面:
- 吏部:能力发现/登记
- 中书:任务分解/规划
- 门下:约束/权威/计划审核
- 尚书:宿主执行协调
- 六部:领域归口
- 考成:质量门/证据
机器逻辑必须使用 Capability/Artifact/Authority/State 等标准对象,不把历史隐喻写进硬编码决策。
13. AI 视频工作流扩展
当任务涉及多 Skill 的 AI 视频生产时,优先建立中间表示(SHOT IR/SHOT_CARD),再编译成特定引擎 Prompt。Prompt 不作为唯一事实源。
建议链路:
Script → Director → Localization → Speech Timing → Timeline → SHOT_CARD → Continuity → Engine Compiler → Quality Gate
对 Seedance 生成单元可调用 orchestrator.profiles.ai_video.validate_seedance_shot() 执行实际领域 Gate。
用户明确的“英文口语化、旁白预留、AU、连续性”等应进入 Project Constraint Ledger 并自动继承后续镜头。
14. 计划评分、上下文预算与安全重路由
硬约束始终优先;在多个都合规的方案之间,可以使用 orchestrator.scoring.score_plan() 比较质量、稳定性、保真度、成本、风险和返工。评分只能辅助选择,不能覆盖 User/System Constraint。
使用 orchestrator.budget.context_budget_report() 检查传给后继节点的上下文体量,优先裁掉无关历史而不是压缩关键锁定信息。
能力失败需要 fallback 时,使用 reroute_capability() 保持节点 requires/produces 契约不变,并重新验证 DAG。
安全检查:
python /home/oai/skills/skill-orchestrator/scripts/security_lint.py \
/home/oai/skills/skill-orchestrator --strict
完整性校验:
python /home/oai/skills/skill-orchestrator/scripts/verify_integrity.py \
/home/oai/skills/skill-orchestrator
15. 自检与完整测试
快速自检:
python /home/oai/skills/skill-orchestrator/scripts/smoke_test.py \
/home/oai/skills/skill-orchestrator
完整测试:
python -m unittest discover \
-s /home/oai/skills/skill-orchestrator/tests -v
只有结构、能力发现、DAG数据流、Authority、Constraint、State/Resume、Retry 关键测试通过,才视为 v2 控制平面可用。