持久化代理任务执行引擎

BAARA Next 是一个持久化代理任务执行引擎,通过 Claude Code SDK 代理在可配置的沙盒隔离中运行任务,支持崩溃恢复、检查点和自动重试,适用于自动化任务管理和执行。

  • by fakoli
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 fakoli/baara-next

使用说明

BAARA Next运行Claude驱动的代理任务,在进程崩溃后继续运行 从检查点,并在失败时自动重试。通过a控制任务 以聊天为中心的web UI、Claude Code MCP集成或完整的REST API-所有 从一个单一 bun start.

“baara”在曼丁卡语中意为“工作”。


快速开始

git clone https://github.com/fakoli/baara-next.git
cd baara-next
bun install
ANTHROPIC_API_KEY=sk-ant-... bun start

打开 http://localhost:3000 在您的浏览器中。


BAARA接下来是什么?

BAARA Next是一个持久代理任务执行引擎:您可以使用 提示,它在可配置的沙盒隔离中运行Claude Code SDK代理 (Native、Wasm或Docker),每5轮检查一次对话,以及 崩溃后自动恢复。任务在11个状态的生命周期中流动 具有指数级回退重试和永久故障的死信队列。

web UI为您提供了一个由27个MCP工具支持的聊天界面——创建任务、运行 他们检查日志,回答循环中的问题,并监控队列深度, 所有这些都没有离开谈话。Claude Code连接到相同的27个工具 通过 .mcp.json 以及stdio传输。

BAARA Next是Bun上100%的TypeScript。没有Go,没有Rust,没有原生插件。跑吧 只需一个命令即可完成整个系统。


特性

  • 持久化执行 --对话级检查点是指代理 恢复到崩溃或重新启动后停止的位置。
  • 11状态生命周期 — created → queued → assigned → running → waiting_for_input → completed / failed / timed_out / cancelled / retry_scheduled → dead_lettered
  • 指数级回退重试 --配置 maxRetries 每项任务;精疲力竭 任务落在死信队列(DLQ)中。
  • 可插拔沙盒 --本地(主机进程)、Wasm(外部隔离)或 Docker容器——在不改变业务逻辑的情况下按任务交换。
  • 27工具MCP服务器 --Claude Code通过以下方式直接连接 .mcp.json (标准版本) 传输)或HTTP(/mcp 端点)。
  • 以聊天为中心的用户界面 --实时SSE的React/Vite/Tailwind前端 流媒体、内联执行卡和持久对话线程。
  • JSONL日志记录 --每次执行都会写入结构化日志;按级别查询, 搜索和偏移。
  • 循环中的人类 --代理可以在执行过程中暂停,提出问题,以及 回复后继续。
  • 单二进制开发模式 --编排器、代理和HTTP服务器在一个平台上运行 过程。无需Docker即可开始使用。
  • 完整CLI奇偶校验 --所有操作均可用 baara 子命令 除了HTTP API之外。
  • Claude代码集成 --将整个27刀具表面直接连接到内部 克劳德代码通过 .mcp.json.

建筑

看 docs/architecture.md 对于完整的组件图, 状态机和数据流。


Claude代码集成

将BAARA Next添加为项目的MCP服务器 .mcp.json:

{
  "mcpServers": {
    "baara-next": {
      "command": "bun",
      "args": ["run", "/path/to/baara-next/packages/cli/src/index.ts", "mcp-server"],
      "env": {
        "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}"
      }
    }
  }
}

然后在Claude Code中:“创建一个克隆我的仓库并运行测试的任务。”

看 docs/mcp-integration.md 完整的27工具 参考。


CLI快速参考

命令 描述
bun start 启动服务器(编排器+代理+HTTP API)
bun start --port 8080 从自定义端口开始
bun start --data-dir ./data 自定义数据目录
baara tasks list 列出所有任务
baara tasks create --name <n> --prompt <p> 创建任务
baara tasks run <name> 直接运行任务
baara executions list 列出最近执行的死刑
baara executions logs <id> 尾部执行日志
baara queues list 显示队列深度
baara admin dlq 检查死信队列
baara chat 开始交互式聊天REPL
baara mcp-server 在stdio上运行MCP服务器(用于克劳德代码)

配置

变量 默认值 描述
ANTHROPIC_API_KEY -- 代理执行和聊天所需
BAARA_API_KEY - 在所有上启用API密钥身份验证 /api/* 路线
BAARA_SHELL_ENABLED false 允许执行shell任务
PORT 3000 HTTP服务器端口
HOST 0.0.0.0 要绑定的主机名
NEXUS_DIR ~/.baara SQLite和日志的数据目录

看 docs/configuration.md 以获取完整参考。


文档

文件 主题
docs/architecture.md 10包概述、数据流、状态机
docs/sandbox-guide.md ISandbox接口,三种实现,添加一个沙盒
docs/mcp-integration.md 27工具MCP目录,克劳德代码设置
docs/api-reference.md 每个带有请求/响应的REST端点
docs/chat-architecture.md SSE协议、事件类型、线程模型
docs/durability.md 检查点模型、恢复流程、时间比较
docs/configuration.md 环境变量、CLI标志
docs/contributing.md 开发设置、运行测试、PR指南

贡献

看 docs/contributing.md.


许可证

麻省理工学院——见 许可证.