Hotdry.
ai-systems

基于运行时分发的代理技能框架:模块化子代理协调与无层级开发

剖析 Superpowers 框架的运行时技能调度机制,实现模块化子代理协调,支持代码生成、审查、测试与部署的全流程,无需复杂层级。

在构建高级代理系统时,一个常见痛点是多代理协调的复杂性:层级结构往往导致通信开销激增、状态同步困难,而扁平化设计又容易失控。Superpowers 框架提供了一种优雅解法 —— 通过运行时分发的 “技能”(skills)框架,实现模块化子代理协调,支持代码生成、审查、测试、部署的全链路开发,且完全摒弃固定层级。这种设计的核心在于:主代理(orchestrator)仅负责规划与调度,具体任务动态分发给临时子代理,借助自动触发的技能确保一致性和纪律性。

运行时分发机制:技能库与触发逻辑

Superpowers 的技能框架是一个 composable 的模块库,每个技能封装特定行为,如 brainstorming(需求 brainstorm)、writing-plans(编写实施计划)、subagent-driven-development(子代理驱动开发)、test-driven-development(测试驱动开发)等。这些技能不是静态工具,而是运行时动态发现与调度的 “政策”:在任何开发步骤前,主代理都会检查上下文匹配相关技能,并自动触发执行。这避免了硬编码的 if-else 树或固定路由,转而依赖 LLM 的上下文感知能力进行智能分发。

例如,在收到用户构建功能的请求后,技能 brainstorming 首先激活,通过苏格拉底式提问提炼 spec,并分块呈现给用户确认。一旦批准,writing-plans 技能接管,将工作分解为 2-5 分钟粒度的 bite-sized 任务,每个任务包含精确的文件路径、完整代码片段、验证步骤。这种粒度设计至关重要:过大任务易 hallucinate,过小则开销过高。实证参数建议:任务时长阈值设为 3 分钟(基于 Claude 等模型的单次响应极限),计划总任务数不超过 20 个 / 分支,避免上下文膨胀。

证据显示,这种运行时分发高度可靠。在 Superpowers 的工作流中,技能触发率接近 100%,因为初始指令强制代理 “在任何任务前检查技能”。引用 README:“The agent checks for relevant skills before any task. Mandatory workflows, not suggestions.” 这确保了从 spec 到 deploy 的全流程纪律性,而非依赖代理的 “灵感”。

模块化子代理协调:无层级 dispatch

传统多代理系统常采用反射器 - 工作者层级(reflector-worker hierarchy),但 Superpowers 采用纯平坦模型:主代理生成计划后,通过 subagent-driven-development 技能为每个任务启动一个全新子代理。子代理不共享状态,仅接收任务 spec 执行,输出经双阶段审查(第一阶段:spec 合规;第二阶段:代码质量)后反馈主代理。关键创新在于 “无层级”:无持久子代理、无固定角色分工,所有协调通过共享计划文档与审查循环实现。

协调参数落地:

  • Dispatch 条件:任务计划批准后,自动 dispatch;并行阈值:≤4 个子代理(防 API 限流),使用 dispatching-parallel-agents 技能。
  • 子代理配置:每个子代理使用独立 session 或新 chat,避免污染;温度 0.2(平衡创造与精确),max_tokens 4096。
  • 审查阈值:第一阶段失败率 >10% 则重试子代理(最多 3 次);第二阶段,critical issues(如安全漏洞)阻塞进度,必须人工干预。
  • 状态同步:全靠 git worktrees(using-git-worktrees 技能):每个开发分支隔离,测试基线验证后 commit,避免冲突。

这种设计支持代码全生命周期:

  • Code Gen:子代理按计划生成精确 diff。
  • Reviewrequesting-code-review 技能模拟 peer review,按严重度分类。
  • Test:强制 RED-GREEN-REFACTOR,预写失败测试,删除无测试代码。
  • Deployfinishing-a-development-branch 技能验证后,提供 merge/PR/keep/discard 选项。

在生产中,监控要点包括:

  1. 任务完成率:>95%,低于阈值触发人工 checkpoint。
  2. 审查通过率:第一阶段 >90%,第二 >80%。
  3. 自治时长:目标 1-2 小时 / 分支,无偏差。
  4. 资源消耗:子代理调用数 / 分支 <50,成本 <0.5 USD。

回滚策略:任何阶段失败,回滚至 git clean worktree,discard branch,无损主分支。

实施清单:快速上手 Superpowers 风格框架

欲自建类似系统,按以下清单参数化:

  1. 技能库构建

    • 核心技能 10+ 个(见上),每个 SKILL.md 格式:描述 + 执行步骤 + 反例。
    • 存储:Git repo,动态 fetch。
  2. 运行时调度器

    • Prompt prefix:"Before [task], check for matching skills from [skill_list] and invoke."
    • 匹配逻辑:semantic similarity >0.8 (embedding model 如 text-embedding-3-small)。
  3. 子代理工厂

    • Factory function:new Subagent(task_spec, model="claude-3.5-sonnet", tools=[git, test_runner])。
    • Lifecycle:spawn → execute → review → terminate。
  4. 审查管道

    阶段 检查点 阈值 动作
    Spec 路径 / 输出匹配计划 100% 重试
    Quality 风格 / 性能 / 安全 严重 0 阻塞
  5. 集成平台

    • Claude Code/Cursor:plugin install superpowers。
    • 自建:LangGraph/AutoGen,注入 skills prompt。
  6. 监控与优化

    • 日志:LangSmith/Phoenix,追踪 dispatch/review metrics。
    • A/B 测试:baseline vs superpowers,产出质量 +30%(作者实测)。

风险与限界

依赖 LLM 质量:hallucination 在审查中缓解,但复杂项目仍需人类 oversight。平台锁 - in:最佳于 Claude/Cursor,迁移需重训 prompt。扩展性:技能 >50 个时,dispatch 延迟增,建议分域加载。

此框架证明:代理系统无需庞大 infra,技能 + dispatch 即可实现 prod-grade agentic dev。实践证明,Claude 可自治数小时,输出远超 ad-hoc coding。

资料来源

查看归档