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

525 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AI智能体工作流编排
`AI智能体` `工作流` `编排` `Claude Code` `自动化`
<div align="center">
# Babysitter
https://a5c.ai
---
[![npm version](https://img.shields.io/npm/v/@a5c-ai/babysitter-sdk.svg)](https://www.npmjs.com/package/@a5c-ai/babysitter-sdk)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![GitHub issues](https://img.shields.io/github/issues/a5c-ai/babysitter.svg)](https://github.com/a5c-ai/babysitter/issues)
[![GitHub stars](https://img.shields.io/github/stars/a5c-ai/babysitter.svg)](https://github.com/a5c-ai/babysitter/stargazers)
> **强制 AI 智能体工作团队服从指令。通过确定性、无幻觉的自我编排管理极其复杂的工作流。**
[快速开始](#安装) | [文档](#文档) | [社区](#社区与支持)
</div>
---
## 目录
- [什么是 Babysitter](#什么是-babysitter)
- [前置要求](#前置要求)
- [安装](#安装)
- [插件](#插件)
- [第一步](#第一步)
- [快速入门](#快速入门)
- [Harness CLI 封装器](#harness-cli-封装器)
- [工作原理](#工作原理)
- [为什么选择 Babysitter](#为什么选择-babysitter)
- [压缩](#压缩)
- [文档](#文档)
- [贡献](#贡献)
- [社区与支持](#社区与支持)
- [许可证](#许可证)
---
## 什么是 Babysitter
Babysitter 强制 AI 智能体工作团队服从指令使其能够通过确定性、无幻觉的自我编排管理极其复杂的任务和工作流。在代码中定义你的工作流——Babysitter 强制执行每个步骤,确保在推进前通过质量门控,在断点处要求人工审批,并将每个决策记录在不可变的日志中。你的智能体严格按照流程允许的范围执行,不多也不少。
---
## 前置要求
- **Node.js**20.0.0+ 版本(推荐 22.x LTS
- **Claude Code**:最新版本([文档](https://code.claude.com/docs/en/quickstart)
- **Git**:用于克隆(可选)
---
## 安装
Babysitter 支持多种 AI 编程框架。为你选择的框架安装对应插件:
### Claude Code推荐
原生市场安装:
```bash
claude plugin marketplace add a5c-ai/babysitter
claude plugin install --scope user babysitter@a5c.ai
```
重启 Claude Code然后输入 `/skills` 验证"babysit"是否出现。
[插件 README](plugins/babysitter/README.md)
### Codex CLI测试版
克隆本仓库后,在 Codex CLI 中执行:
```
codex
> /plugins
```
导航到"babysitter"条目并选择"安装"。
[插件 README](plugins/babysitter-codex/README.md)
### Cursor IDE 和 CLI实验性
通过 Cursor 市场或 npm
```bash
npm install -g @a5c-ai/babysitter-cursor
```
[插件 README](plugins/babysitter-cursor/README.md)
### Gemini CLI实验性
```bash
npm install -g @a5c-ai/babysitter-gemini
babysitter-gemini install --global
```
[插件 README](plugins/babysitter-gemini/README.md)
### GitHub Copilot实验性
通过 GitHub Copilot CLI 市场,或:
```bash
npm install -g @a5c-ai/babysitter-github
```
[插件 README](plugins/babysitter-github/README.md)
### Pi实验性
原生 Pi 插件安装:
```bash
pi install npm:@a5c-ai/babysitter-pi
```
[插件 README](plugins/babysitter-pi/README.md)
### Oh-My-Pi实验性
原生 omp 插件安装:
```bash
omp plugin install @a5c-ai/babysitter-omp
```
[插件 README](plugins/babysitter-omp/README.md)
### OpenCode实验性
```bash
npm install -g @a5c-ai/babysitter-opencode
```
安装后脚本会自动将插件复制到 `.opencode/plugins/babysitter/`
[插件 README](plugins/babysitter-opencode/README.md)
### 内置 Harness无需 AI 编程智能体)
Babysitter 内置了一个**内部 harness**,无需任何外部 AI 编程智能体即可以编程方式运行流程。这对于 CI/CD 管道、脚本、自动化测试和无头编排非常有用:
```bash
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/CD**GitHub Actions 工作流)和**速率限制**(指数退避钩子)。
要管理插件,在你的 harness 中使用 `/babysitter:plugins` 命令(或从 CLI 使用 `babysitter harness:plugins`)。智能体读取插件的安装说明,询问你的偏好,分析你的项目,并在 babysitter 编排运行中执行设置。
有关安装工作原理、市场格式、创建自己的插件和迁移系统的详细信息,请参阅完整的[插件文档](docs/plugins.md)。
---
## 第一步
安装后,设置你的环境:
### 1. 配置你的个人资料(一次性)
```bash
/babysitter:user-install
```
这将创建你的个人资料,包含:
- 断点偏好(你希望多少监督)
- 工具偏好和沟通风格
- 专业领域以更好地匹配流程
### 2. 设置你的项目
```bash
/babysitter:project-install
```
这将分析你的代码库并配置:
- 项目特定工作流
- 测试框架和 CI/CD 集成
- 技术栈偏好
### 3. 验证设置
```bash
/babysitter:doctor
```
运行诊断以确认一切正常。
---
## 快速入门
```bash
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:call`Babysitter SDK 还提供 `harness:*` CLI 命令,让你从终端创建、运行和管理编排会话。这些命令适用于任何已安装的 harness。
### 通过 Harness 运行流程
```bash
# 通过 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 .
```
### 管理运行
```bash
# 恢复中断的运行
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 发现
```bash
# 查看系统上安装了哪些 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 编程智能体:
```bash
# 在 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% |
### 快速切换
```bash
# 禁用所有压缩
export BABYSITTER_COMPRESSION_ENABLED=false
# 禁用单个层
babysitter compression:toggle sdkContextHook off
# 显示当前有效配置
babysitter compression:config
```
### 配置文件
编辑 `.a5c/compression.config.json` 以持久化设置(环境变量始终优先):
```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>` 设置单个值。
---
## 文档
### 入门指南
- [快速入门指南](docs/user-guide/getting-started/quickstart.md)
- [初学者教程REST API](docs/user-guide/tutorials/beginner-rest-api.md)
- [最佳实践](docs/user-guide/BEST-PRACTICES.md)
### 功能特性
- [流程库](docs/user-guide/features/process-library.md) - 2000+ 预构建流程
- [流程定义](docs/user-guide/features/process-definitions.md)
- [质量收敛](docs/user-guide/features/quality-convergence.md)
- [运行恢复](docs/user-guide/features/run-resumption.md)
- [日志系统](docs/user-guide/features/journal-system.md)
- [最佳实践](docs/user-guide/features/best-practices.md)
- [架构概览](docs/user-guide/features/architecture-overview.md)
### 参考资料
- [常见问题](docs/user-guide/reference/faq.md)
- [故障排除](docs/user-guide/reference/troubleshooting.md)
- [安全性](docs/user-guide/reference/security.md)
- [CLI 参考](docs/user-guide/reference/cli-reference.md)
---
## 贡献
我们欢迎贡献!以下是你可以提供帮助的方式:
- **报告 Bug**[GitHub Issues](https://github.com/a5c-ai/babysitter/issues)
- **建议功能**:分享你的改进想法
- **提交 Pull Request**:修复 Bug 或添加功能
- **改进文档**:帮助使文档更清晰
详细指南请参阅 [CONTRIBUTING.md](https://github.com/a5c-ai/babysitter/blob/main/CONTRIBUTING.md)。
---
## 社区与支持
- **Discord**[加入我们的社区](https://discord.gg/dHGkzxf48a)
- **GitHub Issues**[报告 Bug 或请求功能](https://github.com/a5c-ai/babysitter/issues)
- **GitHub Discussions**[提问和分享想法](https://github.com/a5c-ai/babysitter/discussions)
- **npm**[@a5c-ai/babysitter-sdk](https://www.npmjs.com/package/@a5c-ai/babysitter-sdk)
### 社区工具
| 工具 | 描述 |
|------|-------------|
| [Observer Dashboard](https://github.com/yoavmayer/babysitter-observer-dashboard) | 并行运行的实时监控 UI |
| [Telegram Bot](https://github.com/a5c-ai/claude-code-telegram-bot) | 远程控制会话 |
| [vibe-kanban](https://github.com/BloopAI/vibe-kanban) | 并行流程管理 |
### Star 历史
<a href="https://star-history.com/#a5c-ai/babysitter&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=a5c-ai/babysitter&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=a5c-ai/babysitter&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=a5c-ai/babysitter&type=Date" />
</picture>
</a>
### 贡献者
<a href="https://github.com/a5c-ai/babysitter/graphs/contributors">
<img src="https://contrib.rocks/image?repo=a5c-ai/babysitter" />
</a>
---
## 许可证
本项目采用 **MIT 许可证**。详情请参阅 [LICENSE.md](https://github.com/a5c-ai/babysitter/blob/main/LICENSE.md)。
---
<div align="center">
**由 A5C AI 使用 Claude 构建**
[返回顶部](#babysitter)
</div>