catalog/repos/a5c-ai--babysitter.md

19 KiB
Raw Permalink Blame History

AI智能体工作流编排

AI智能体 工作流 编排 Claude Code 自动化

Babysitter

https://a5c.ai


npm version License: MIT GitHub issues GitHub stars

强制 AI 智能体工作团队服从指令。通过确定性、无幻觉的自我编排管理极其复杂的工作流。

快速开始 | 文档 | 社区


目录


什么是 Babysitter

Babysitter 强制 AI 智能体工作团队服从指令使其能够通过确定性、无幻觉的自我编排管理极其复杂的任务和工作流。在代码中定义你的工作流——Babysitter 强制执行每个步骤,确保在推进前通过质量门控,在断点处要求人工审批,并将每个决策记录在不可变的日志中。你的智能体严格按照流程允许的范围执行,不多也不少。


前置要求

  • Node.js20.0.0+ 版本(推荐 22.x LTS
  • Claude Code:最新版本(文档
  • Git:用于克隆(可选)

安装

Babysitter 支持多种 AI 编程框架。为你选择的框架安装对应插件:

Claude Code推荐

原生市场安装:

claude plugin marketplace add a5c-ai/babysitter
claude plugin install --scope user babysitter@a5c.ai

重启 Claude Code然后输入 /skills 验证"babysit"是否出现。

插件 README

Codex CLI测试版

克隆本仓库后,在 Codex CLI 中执行:

codex
> /plugins

导航到"babysitter"条目并选择"安装"。

插件 README

Cursor IDE 和 CLI实验性

通过 Cursor 市场或 npm

npm install -g @a5c-ai/babysitter-cursor

插件 README

Gemini CLI实验性

npm install -g @a5c-ai/babysitter-gemini
babysitter-gemini install --global

插件 README

GitHub Copilot实验性

通过 GitHub Copilot CLI 市场,或:

npm install -g @a5c-ai/babysitter-github

插件 README

Pi实验性

原生 Pi 插件安装:

pi install npm:@a5c-ai/babysitter-pi

插件 README

Oh-My-Pi实验性

原生 omp 插件安装:

omp plugin install @a5c-ai/babysitter-omp

插件 README

OpenCode实验性

npm install -g @a5c-ai/babysitter-opencode

安装后脚本会自动将插件复制到 .opencode/plugins/babysitter/

插件 README

内置 Harness无需 AI 编程智能体)

Babysitter 内置了一个内部 harness,无需任何外部 AI 编程智能体即可以编程方式运行流程。这对于 CI/CD 管道、脚本、自动化测试和无头编排非常有用:

npm install -g @a5c-ai/babysitter-sdk

# 使用内部 harness 运行流程定义
babysitter harness:call --harness internal --process .a5c/processes/my-process.js#process --workspace .

# 或运行自由格式的提示
babysitter harness:call --harness internal --prompt "run lint and tests" --workspace .

内部 harness 直接使用 SDK 内置的 Pi 执行引擎。它支持所有功能(编程式、会话绑定、停止钩子、无头提示),无需外部 CLI。

在流程执行期间,内部 harness 可以通过调用器将任务委派给任何已发现的已安装 harness。在 --harness internal 下运行的流程可以生成通过 Claude Code、Codex、Gemini CLI 或系统上发现的任何其他 harness 执行的子智能体任务——SDK 在运行时发现可用的 harness CLI 并相应地路由任务执行。这意味着你可以从单个无头入口点编排多智能体工作流,不同任务委派给最适合的 harness。


插件

Babysitter 有自己的插件系统——其工作方式与你预期的不同。Babysitter 插件不是带有扩展点的代码模块,而是 AI 智能体读取并执行的一组自然语言指令Markdown 文件)或确定性编码流程JS 文件。SDK 存储、版本管理和分发这些指令AI 智能体是运行时。

这意味着插件可以做 AI 智能体能做的任何事情:安装 npm 包、生成 CI/CD 管道、设置 git 钩子、创建 Terraform 配置、修改 linter 规则、将 babysitter 流程复制到你的项目中,并在过程中询问你的偏好。

官方市场包含以下类别的插件:安全gitleaks、ESLint 安全规则、审计流程)、测试Vitest/Playwright/pytest 设置、覆盖率门控、TDD 流程)、部署Terraform、Helm、Dockerfile、多环境管道主题(音效、设计系统、对话个性)、CI/CDGitHub Actions 工作流)和速率限制(指数退避钩子)。

要管理插件,在你的 harness 中使用 /babysitter:plugins 命令(或从 CLI 使用 babysitter harness:plugins)。智能体读取插件的安装说明,询问你的偏好,分析你的项目,并在 babysitter 编排运行中执行设置。

有关安装工作原理、市场格式、创建自己的插件和迁移系统的详细信息,请参阅完整的插件文档


第一步

安装后,设置你的环境:

1. 配置你的个人资料(一次性)

/babysitter:user-install

这将创建你的个人资料,包含:

  • 断点偏好(你希望多少监督)
  • 工具偏好和沟通风格
  • 专业领域以更好地匹配流程

2. 设置你的项目

/babysitter:project-install

这将分析你的代码库并配置:

  • 项目特定工作流
  • 测试框架和 CI/CD 集成
  • 技术栈偏好

3. 验证设置

/babysitter:doctor

运行诊断以确认一切正常。


快速入门

claude "/babysitter:call implement user authentication with TDD"

或用自然语言:

Use the babysitter skill to implement user authentication with TDD

Claude 将创建一个编排运行,逐步执行任务,处理质量检查和审批,并持续到完成。

选择你的模式

模式 命令 使用场景
交互式 /babysitter:call 学习、关键工作流——暂停等待审批
自主式 /babysitter:yolo 可信任的任务——全自动,无断点
规划式 /babysitter:plan 执行前审查流程
持续式 /babysitter:forever 监控、周期性任务——无限运行

实用命令

命令 用途
/babysitter:doctor 诊断运行健康状况和问题
/babysitter:observe 启动实时监控仪表板
/babysitter:resume 继续中断的运行
/babysitter:help 文档和使用帮助

Harness CLI 封装器

除了会话内技能命令(/babysitter:callBabysitter SDK 还提供 harness:* CLI 命令,让你从终端创建、运行和管理编排会话。这些命令适用于任何已安装的 harness。

通过 Harness 运行流程

# 通过 Claude Code 交互式运行流程(在断点处暂停)
babysitter harness:call --harness claude-code --prompt "implement user authentication with TDD" --workspace .

# 完全自主运行(无断点)
babysitter harness:yolo --harness claude-code --prompt "add pagination to the API" --workspace .

# 仅规划(在第一阶段后停止)
babysitter harness:plan --harness claude-code --prompt "implement feature X"

# 使用内部 harness 运行(无需外部 AI 智能体)
babysitter harness:call --harness internal --prompt "run lint and tests" --workspace .

管理运行

# 恢复中断的运行
babysitter harness:resume --run-id <runId> --harness claude-code --workspace .

# 诊断运行健康状况
babysitter harness:doctor --run-id <runId>

# 分析过去的运行以获取洞察
babysitter harness:retrospect --all --harness claude-code --workspace .

# 清理旧运行
babysitter harness:cleanup --keep-days 7 --harness claude-code --workspace .

Harness 发现

# 查看系统上安装了哪些 harness CLI
babysitter harness:discover

# 安装 harness CLI
babysitter harness:install claude-code

# 安装 harness 插件
babysitter harness:install-plugin claude-code

使用 --harness internal 进行自动化

internal harness 对 CI/CD 和脚本编写特别有用,因为它不需要外部 AI 编程智能体:

# 在 CI 管道或脚本中
babysitter harness:call \
  --harness internal \
  --process .a5c/processes/lint-and-test.js#process \
  --workspace . \
  --no-interactive \
  --json

它使用 SDK 内置引擎执行流程,支持所有效果类型(任务、断点、休眠、并行分发),并生成与任何其他 harness 相同的事件溯源日志。


工作原理

+=============================================================================+
|                         /babysitter:call                                    |
+=============================================================================+
|                                                                             |
|   你的流程JavaScript                      这是权威来源                  |
|   +----------------------------------------+                                |
|   | async function process(inputs, ctx) {  |  真实代码,而非配置。         |
|   |                                        |  编排器只能执行               |
|   |   await ctx.task(plan, { ... });       |  此代码允许的操作。           |
|   |                                        |                                |
|   |   await ctx.breakpoint({               |  断点 = 人工门控              |
|   |     question: 'Approve plan?'          |  (强制执行,非可选)         |
|   |   });                                  |                                |
|   |                                        |                                |
|   |   await ctx.task(implement, { ... });  |  任务 = 可执行工作            |
|   |                                        |                                |
|   |   const score = await ctx.task(verify);|  质量门控 = 代码逻辑          |
|   |   if (score < 80)                      |  (非配置,真实检查)         |
|   |     await ctx.task(refine, { ... });   |                                |
|   | }                                      |                                |
|   +-------------------+--------------------+                                |
|                       |                                                     |
|                       | 管控                                                |
|                       v                                                     |
|   +---------------------------------------------------------------------+   |
|   |                        强制执行机制                                  |   |
|   |                                                                     |   |
|   |   +-------------+     +------------------+     +-----------------+  |   |
|   |   | 强制         |---->| 流程检查         |---->| 决策            |  |   |
|   |   | 停止         |     | 流程允许         |     |                 |  |   |
|   |   | (由钩子     |     | 下一步是什么?   |     | 允许:分配      |  |   |
|   |   |  强制执行)  |     |                  |     | 下一个任务      |  |   |
|   |   +-------------+     +------------------+     |                 |  |   |
|   |                              |                 | 阻止:暂停      |  |   |
|   |                              v                 | 直到通过门控    |  |   |
|   |                       +--------------+        +-----------------+  |   |
|   |                       | 来自代码的   |                              |   |
|   |                       | 门控/任务    |                              |   |
|   |                       +--------------+                              |   |
|   +---------------------------------------------------------------------+   |
|                       |                                                     |
|                       | 记录每个决策                                        |
|                       v                                                     |
|   +---------------------------------------------------------------------+   |
|   |   日志:每个任务、门控、决策——不可变、可重放                         |   |
|   +---------------------------------------------------------------------+   |
|                                                                             |
+=============================================================================+

与简单迭代的区别:

  • 流程即代码: 你的工作流是 JavaScript——编排器只能执行此代码允许的操作
  • 强制停止: Claude 无法"持续运行"——每个步骤都以强制停止结束,然后由流程决定下一步
  • 强制执行,而非辅助: 门控在满足条件前阻止推进——不是建议,是强制
  • 事件溯源日志: 所有状态存储在 .a5c/runs/ 中——可从任意点确定性地重放和恢复

为什么选择 Babysitter

传统方式 Babysitter
运行脚本一次,寄希望于成功 流程在完成前强制执行质量门控
通过聊天手动审批 带上下文的结构化断点
会话结束后状态丢失 事件溯源,完全可恢复
单任务执行 并行执行,支持依赖关系
无审计记录 所有事件的完整日志
临时工作流 确定性、代码定义的流程

核心差异化优势: 流程强制执行、确定性重放、质量收敛、人工断点介入和并行执行。


压缩

Babysitter 包含一个 4 层 Token 压缩子系统(内置于 packages/sdk/),在真实会话中可将上下文窗口使用量减少 50-67%,同时保持 99% 的事实保留率。

所有压缩钩子由 babysitter 插件自动注册——无需手动配置 settings.json。安装插件后压缩即自动生效。

工作原理

层级 钩子 引擎 内容 压缩率
1a userPromptHook density-filter 用户提示 ~29%
1b commandOutputHook command-compressor Bash/Shell 输出 平均 ~47%
2 sdkContextHook sentence-extractor 智能体/任务上下文 ~87%
3 processLibraryCache sentence-extractor 库文件(预缓存) ~94%

快速切换

# 禁用所有压缩
export BABYSITTER_COMPRESSION_ENABLED=false

# 禁用单个层
babysitter compression:toggle sdkContextHook off

# 显示当前有效配置
babysitter compression:config

配置文件

编辑 .a5c/compression.config.json 以持久化设置(环境变量始终优先):

{
  "enabled": true,
  "layers": {
    "userPromptHook":    { "enabled": true, "threshold": 500, "keepRatio": 0.78 },
    "commandOutputHook": { "enabled": true, "excludeCommands": ["jq", "curl", "docker"] },
    "sdkContextHook":    { "enabled": true, "targetReduction": 0.15, "minCompressionTokens": 150 },
    "processLibraryCache": { "enabled": true, "targetReduction": 0.35, "ttlHours": 24 }
  }
}

使用 babysitter compression:toggle <层> <on|off> 切换任意层,或使用 babysitter compression:set <key> <value> 设置单个值。


文档

入门指南

功能特性

参考资料


贡献

我们欢迎贡献!以下是你可以提供帮助的方式:

  • 报告 BugGitHub Issues
  • 建议功能:分享你的改进想法
  • 提交 Pull Request:修复 Bug 或添加功能
  • 改进文档:帮助使文档更清晰

详细指南请参阅 CONTRIBUTING.md


社区与支持

社区工具

工具 描述
Observer Dashboard 并行运行的实时监控 UI
Telegram Bot 远程控制会话
vibe-kanban 并行流程管理

Star 历史

Star History Chart

贡献者


许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE.md


由 A5C AI 使用 Claude 构建

返回顶部