脑库
包,分,并安装代理模板横跨被套(Claude Code, Codex, Kafka).
安装
npm install -g @brainbase-labs/cli
软件包安装一个 brainbase 在您的路径上命令。 需要节点.js 18+.
快开始
brainbase login # connect this device to brainbase
brainbase team list # which teams can I put agents in?
brainbase agent list # which agents are in a team, and what are their ids?
brainbase template pack # bundle the current agent into a template
brainbase template publish # upload to the registry
brainbase template search # find templates published by your team
brainbase template onboard <creator/slug> # install or refresh a template
brainbase agent create # claim a local brainbase.agent.yaml
brainbase task create --message "Review this project and propose next steps"
brainbase benchmark list # list benchmarks for the linked agent
运行 brainbase help 可以看到每一个命令.
代理表面
从终端管理聊天、Slack、会议、GitHub、线和电话:
brainbase agent connections --agent <id> --json
brainbase agent surface chat configure --agent <id> --models= --json
brainbase agent surface meeting configure --agent <id> --vision true
brainbase agent surface github connect --agent <id> --no-open
brainbase agent surface --help
使用 status 有效环境与能力,以及 configure 改为
只更改已提供字段。 GitHub/ Linear 设置可移植浏览器
链接并可以恢复 wait --installation <id>. 供应商的业务
需要登录会话。 电话购买和所有新的断开命令
需求 --yes见 命令引用。 。 。 .
连接和拉入一步
新鲜出货——任务沙盒,CI工作——可以附在代理上并拉出 在一个单一进程中:
brainbase agent pull <agent-id> --link --yes
--link 做点什么 brainbase link --agent <agent-id> --yes 有(痛苦)
路线,使用 BB_TASK_KEY 当设定时, 加上文件夹的链接)
无论如何,拉取,所以代理被取一次而不是两次。 那个特工,
它的表象和——当拉力确实可以应用时——它的秘密是:
同步获取 . brainbase link 财务报告和审定财务报表 brainbase agent pull 无
--link 像以前一样.
任务后续行动
向已有任务发送指令, 包括当其代理运行时 :
brainbase task send <task-id> "Also update the Linear ticket"
brainbase task send <task-id> "Use the revised approach instead" --json
brainbase task stop <task-id>
send 在 stdout 中报告输入的ID和发送状态。 输入 ID 和
生成以恢复一个发件时才会打印:
错误、未经证实的收据或中断时。 初步接受可以说 待交付 时
服务器决定本地方向盘是否可用。 原生方向盘跟着
绳子本身的时机。 一个确认的后退说 排入下个回合。 。 。 .
submitted 表示带子收到了输入;并不意味着代理
已经就此采取行动。 多个后续可以加入一个执行并接受一个
综合答案.
默认情况下,两个命令在发送请求前都会读取当前输入生成.
证书必须有收件读取权限以及发送或停止的许可.
当任务阅读执行启用时,资源范围密钥可能缺少读取权限.
如果读取失败,则不发送突变. 使用 --generation <n> 只绕过已读
包含用于新操作的可信当前截断,或者用于重试的原始截断.
同时停止使寄件者无法与更年长的一代一起工作.
如果丢失了HTTP响应或按下 Ctrl-C,命令会打印输入ID和生成;
以 --input-id <uuid> --generation <n> 安全地收回这个请求。 重用标识
不重放已有输入。 A 类 未证实的交货 收讫表示
代理人可能已经收到指示; 故意重新发送
无 --input-id 只有您想要重试它作为新输入.
已知的入境前HTTP 503拒绝包括: task_inputs_disabled, (中文(简体) ),
task_input_recovery_unavailable,以及公认的沙盒提供或进入
密码 这意味着该请求不接受任何投入。 重试相同的ID, 消息
服务结束后,一代又恢复。 未识别服务器或网络故障
可以留下未经证实的分娩。 收回的收据报告 idempotency_replayed: true
在JSON中,当服务器提供其回放标题时.
stop 停止执行并取消待执行的后续工作,同时保留其
语句。 新指令不会重放它们 。 在提交前, 打印重试
命令为 --generation <n>。即使响应丢失,仍保留该命令:
重试原世代不能中断更新的工作 。 错误可以指
队列输入在原执行仍在进行时已被取消 .
遵循错误的重试或运算符回收指导. 奥米 --generation 仅限
故意发布新的停止。 JSON包括原件 expected_generation
与服务器的结果分开 generation。 。 。 .
Ctrl-C 输入 task create --wait
或者说 task logs --follow 仍然只能解开;它不会停止远程工作.
两个命令支持 --json。 。 。 . send 1出口用于未确认、已取消或
输入失败, 请求错误 。 其他被承认的州出口0;
这证实了承认或交付,而不是任务的成功.
重新命名和标签工作
创建时标出任务, 按标签查找任务, 并更改任务 标题、标签或模型,包括运行时:
brainbase task create --message "Nightly smoke run" --metadata env=staging
brainbase task list --metadata env=staging
brainbase task update <task-id> --title "Nightly smoke run" --metadata env=prod
brainbase task update <task-id> --unset-metadata env --json
brainbase task update <task-id> --model claude-sonnet-5-5
brainbase task update <task-id> --clear-model
--metadata 财务报告和审定财务报表 --unset-metadata 保留所有你没有命名的标签
编辑来自多个客户端的一瞬间全部存活下来. --clear-metadata 移除它们
所有,还有 --clear-title 删除标题. --model 切换模型
任务下一轮启动; 已经运行的回合保持其模式 .
--clear-model 返回任务到其代理的默认模式。 见
命令参考 每个旗帜.
基准管理
benchmark init, (中文(简体) ), benchmark validate,命令帮助是本地的,不需要
登录或链接代理 。 控制飞机命令使用索赔的代理人
brainbase.agent.yaml 默认; 通过 --agent <id> 以覆盖它.
# Scaffold and validate locally.
brainbase benchmark init ./benchmarks/support-quality
brainbase benchmark validate ./benchmarks/support-quality
# Create accepts manifests and directories without attached files.
brainbase benchmark create ./benchmarks/support-quality --json
# A directory containing cases/*/files/** must be imported as a bundle.
brainbase benchmark import bundle ./benchmarks/support-quality --json
# Publish, then plan, start, and watch the run in one step. The run uses the
# agent's default model; --variant default=<model> runs another one.
brainbase benchmark publish <benchmark-id> --expected-version <version> --json
brainbase benchmark run <benchmark-id> --yes --watch --jsonl
brainbase benchmark run <benchmark-id> --yes --variant default=<model> --json
# Or plan and start separately.
brainbase benchmark run plan <benchmark-id> \
--revision <revision-id> \
--variant default \
--json
brainbase benchmark run start <plan-id> --yes --json
brainbase benchmark run watch <run-id> --jsonl
# Inspect and export terminal results.
brainbase benchmark diagnoses <run-id> --json
brainbase benchmark export-results <run-id> --output ./results.zip
benchmark pull 财务报告和审定财务报表 benchmark push 绕行本地目录布局 :
benchmark.yaml
cases/<case-key>/case.yaml
cases/<case-key>/files/**
bundle/<original-bundle-path>
benchmark.yaml 仅携带本地 case_order 列表如此拉并推
保存案件顺序;它不是作为远程清单的一部分发送的.
案发地档案放在他们的案子旁边 共享、隐藏和根级捆绑
路径存储在下面 bundle/ 同时保留其原始远程路径.
牵引目的地必须缺席或为空. 使用新目录刷新 a
基准而不是覆盖本地编辑.
人可读出输出为默认. --json 发出一个版本的信封.
对于 pagized 命令, 它返回一页及其 next_cursor 除非
--all 已经设定. --jsonl 发送项目和页数记录,同时观看
发布国家变化事件。 继续使用 --cursor; 结构模式从未
快点.
同上,只是明确性:请求省略 " 一权 " 标题,除非
--idempotency-key 提供。 只为相同的重试重用密钥 .
启动运行需要 --yes;确认同一计划ID是重放安全.
中断 run watch 不取消远程运行。 运行,MAS暂停
收费站 run watch 带有退出代码 1; 一旦计费确定, 运行
brainbase benchmark run resume <run-id> --yes 把它放回队列中.
使用 brainbase benchmark --help, (中文(简体) ), brainbase benchmark run --help,或
brainbase benchmark <command> --help 为本地指挥提供帮助.
基准运行时间命令
管理下的基准工人在同一条内援引两个只使用机器的命令 作为代理任务的沙盒 :
brainbase benchmark hydrate --spec /path/to/hydrate.json --result /path/to/result.json --json
brainbase benchmark evaluate --spec /path/to/evaluate.json --result /path/to/result.json --json
brainbase benchmark capabilities --json
CLI执行本地,版本相规格. 它不要求工作, 授权用户,或持续基准数据库状态。 能力反应 既发布CLI版本的广告,又发布支持相位计划版本的广告.
两种规格都使用 schema_version: "1",一个 attempt_id,一个马厩 phase_id, (中文(简体) ),
绝对工作空间/存储/日志路径,以及相位预算。 硬化必须:
<workspace>/.brainbase/benchmark/<attempt_id>/incoming
相位日志/ 测试根必须缺失、 空出或带有 CLI 匹配 尝试/相控所有权标记; CLI 从未重复清除未拥有的 非空目录.
水分在复制文件或复制文件前核查每个阶段大小和SHA-256
安全地从候选工作空间取出克兹克焦油. .brainbase, (中文(简体) ), .git, (中文(简体) ),
财务报告和审定财务报表 brainbase.agent.yaml 预留。 设置命令使用 argv 阵列, 范围
时间/输出、允许列表的基础环境、明确标记的文字值
sensitive: false,并且只有命令选择的秘密环境变量
spec's宣布的约束。 预期答案和评价者的定义是:
无效的水合物字段.
评估仅在MAS结束代理转接并单独进行 评估规格。 核查最终产出、轨迹、参考和评价人员 捆绑摘要; 写一个评估前工作空间清单; 保存声明 候选文物;可选创建候选档案;然后实现 在候选工作空间外隐藏参考资料并运行评价员 同步进行. Schema v1 支持 :
output_assertion:准确、包含或正则检查最终产出.trajectory_assertion:有界数的犬类事件类型.workspace_assertion:文件存在,不存在,SHA-256,或内容检查.sandbox_command: 根植于工作空间或隐藏的有边框的 argv 命令 测试目录。 退出 0 通道; 任何其他退出代码都是无效的 判决。 Schema v1 允许最多 20 名命令评估员, 并运行它们 仅读断言。 每个命令都收到经过验证的活工作空间 用于遗留的只读评价或它自己孤立地被冻结的工作空间副本.
有效的失败判决仍然产生一个成功的评价阶段。 无效
规格、文摘/路径侵犯、环境缺失、阶段预算耗竭、,
并且违反产出预算的行为未能进入这一阶段。 单个指令发射失败,
暂停,强迫终止记录为错误评价结果,因此
剩下的评估人员仍然可以运行。 结果是用解剖法写出来的
有模式 0600,包括原始的光谱摘要和校验摘要证据/记录
明确输入/产出参考 staging, (中文(简体) ), workspace, (中文(简体) ), tests,或
logs 根, 编辑命令日志中宣布的秘密值, 要求
结果路径 <logs_root>/result.json,并处理匹配成功
相位结果作为重播的权威 .
在任何相位执行失败时,MAS必须拆下任务沙盒.
失败和超时命令清理进程组和后人
CLI可以观察. 成功的评估命令得到同样的清理,所以一个
检查无法污染下一个 。 成功的水合设置命令可能
故意将服务留给代理机构;运行周期
仍然是他们最后的清理边界。 单独评估工作空间副本省略
.git 和不安全的绝对 或逃出共鸣.
发展
用 Bun 版本构建到 .bun-version (目前为1.3.10)——CI和两者
发布工作流程读取该文件。 生成的 dist/index.js 承诺
bun补丁的释放可以产生不同的捆绑
输出.
套接字组也具有版本敏感性,因此在每一个入口处都执行接针:
bun run verify 财务报告和审定财务报表 bun run build 直接拒绝另一班,和 bun test
打印一个警告并继续进行。 每个被绑定的版本和命令的名称
为了得到它: npx bun@<pinned> …启用 npx 而不是说 bunx - 包克斯运行最多
已出版的 Bun 版本, 但无法具体解析 1. 3. 10 的 bin , 而
是当前指针。 设定 SKIP_BUN_VERSION_CHECK=1 以压倒其中任何一种.
释放
- 运行 准备释放 从
main与准确的版本。 它拒绝 npm 或 a 的版本已经release/*已经存在的分支或标签, 然后推动分支并打印出一个链接来打开拉动请求。 矿石 不让动作打开拉动请求, 所以最后一步是您的 . - 合并释放拉动请求 。 CI 检查任何移动
版本,或来自
release/*树枝,对npm——如此手工制作 释放牵引请求与生成的请求在同一栏. - 运行 发布,命名同一个版本。 它拒绝运行 如果犯罪
它检查出一个不同的, 和焦油球的
dist/index.js必须匹配承诺的捆绑.
编制和出版 release 货币组, 所以两个释放队列
而不是离间。 出版的版本是不可改变的:如果发行失败
没有你打算包含的东西, 运送下一个版本而不是
重新剪接号码.
代理运行时间配置
brainbase.agent.yaml 能够声明提供者、默认模式和运行时间模式
用于管理运行 :
schema: 1
harness: codex
machine_kind: daytona
default_model: openai/gpt-5.6-terra
agent:
name: Ops Agent
machine_kind 用于创建云代理。 换个位置
声称代理在任何云写入前失败; 创建新代理以切换
供养者. default_model 可用 brainbase agent push设置它
改为 null 来清除覆被 关闭这些田地 使得它们无人管理,所以
旧的表 保持他们现有的行为.
runtime_mode 接受 fixed 或者说 auto,与铅带和
型号。 一个明确的值由 agent create 或者说 agent push; 遗漏
保留远程模式。 一个模式感知控制平面的拉力写着 auto 财务报告和审定财务报表
省略 fixed。 。 。 .
运行时自动需要服务器 self-delegation 特性旗和子
还需要一个自我发现 在一个管弦乐。 传统控制飞机明确拒绝
模式写入 . agent pull --force 丢弃本地运行时间- 模式编辑 .
何时 agent create 声称没有 default_model,控制飞机
给代理机默认其操纵的平台, 同一个模式的网络
控制台选择,和 agent create 显示它。 Cursor、工厂和Quder代理商
没有,因为那些拉带 总是运行自己的供应商的模型.
利用功能支持
每个组件类型被存储在从运行时间已经读取的地方——CLI不强制自己的布局. "内生"细胞描述安装地块的位置;"-"表示被套不支持该成分类型.
| 构成部分 | 克劳德代码 | 代码 | 卡夫卡语Name |
|---|---|---|---|
| 技能 | .claude/skills/<slug>/ (每名技能,w/出处标记) | ~/.codex/skills/<slug>/ (全球)或 .agents/skills/<slug>/ (项目) | .kafka/skills/<slug>/ |
| MCP 服务器 | 项目: .mcp.json. 全球: ~/.claude.json → mcpServers永远 settings.json (克劳德在那里忽略它). | 嵌入于内 ~/.codex/config.toml 作为 [mcp_servers.<slug>] 块 | 嵌入于内 .kafka/kafka.json (没有侧车-Kafka SDK从设置直接读取MCP) |
| 命令 (斜线命令/ 即时) | .claude/commands/<slug>.md | ~/.codex/prompts/<slug>.md (Codex没有文件记录的项目镜提示 dir) | .kafka/commands/<slug>.md (卡夫卡的运行时间在内部称这些"游戏本",但CLI保留了 command 交叉对称类型) |
| 副代理人 | .claude/agents/<slug>.md | —— (Codex使用不同的剂型方案) | .kafka/agents/<slug>.md |
| 游戏本 | .claude/playbooks/<slug>.md + 底层自动管理表格 CLAUDE.md | .codex/playbooks/<slug>.md + 底层自动管理表格 AGENTS.md | .kafka/playbooks/<slug>.md + 底层自动管理表格 KAFKA.md |
| 指令 | 封锁 CLAUDE.md 介于 <!-- brainbase:start name=<template> --> 编号 : :end 标记 | 同一区块公约 AGENTS.md | 同一区块公约 KAFKA.md |
| 钩子 | - (待办) | —— 说 | —— 说 |
| 文件 | 任意复制: 相对于 cwd | 一样 | 一样 |
Playbook 文件包含一个小的 YAML 前题(title, (中文(简体) ), description) —— CLI分析它来构建被注入到每个被带指令文件的表格. 该表由下列人士置于括号内: <!-- brainbase:playbooks:start --> 编号 : :end 每次拉动时都会打出标记并重新生成,所以被移除的游戏本会自动从桌子上跳出.
项目根( 敌意- 不可知性)
- 自动检测
ONBOARDING.md和您指出的任何额外文件/文件夹--file <path>装入file组件并在安装时重放.
配置
| 变量 | 目的 |
|---|---|
BRAINBASE_CONTROL_PLANE_URL | 覆盖MAS主机. 使用代理/管理请求 /v2/cli; 任务命令使用 /v2/tasks默认为 https://api.brainbaselabs.com。 。 。 . |
BRAINBASE_API_URL | 遗留 KLS 主机覆盖 。 控制请求的使用 /api/cli;这也是模型代用和登记流量的倒数. |
BRAINBASE_PROXY_URL | 覆盖在启用吊带跟踪时使用的模型-代理主机. |
BRAINBASE_REGISTRY_URL | 覆盖注册 API 主机 . |
BRAINBASE_TOKEN | 使用 PAT 而不是存储的登录会话 。 超过了会话和 PAT 保存的 token.json。见 认证。 。 。 . |
BRAINBASE_HOME | 当地国家居住的地方( 默认 ): ~/.brainbase(中文(简体) ) |
模型代用和登记流量通过 BRAINBASE_API_URL, (中文(简体) ),
登录时捕获的服务器,最后 https://api.v1.brainbaselabs.com。 。 。 .
认证
每个命令都尝试三种证书,按此顺序:
BRAINBASE_TOKEN- 页:1
auth.json登录会话, 如果已过期, 先更新 - 那个PAT
brainbase token create保存在~/.brainbase/token.json, (中文(简体) ), 没有会议或会议无法延长。 一个PAT 铸造 与会话不同的账户从不使用.
brainbase whoami (或 --json(d) 报告哪些活动。 它更新了一个
过期的会话本身, 因此它报告的是下一个命令会使用什么 .
对于CI: 跑者没有 token.json把PAT当作秘密
export BRAINBASE_TOKEN=bbpat_…
brainbase agent push
别烤了 ~/.brainbase 目录为构建图像。 船舶
BRAINBASE_TOKEN 而是作为一个秘密.
明确的 PAT 不继承存储登录的路由 。 设定
BRAINBASE_CONTROL_PLANE_URL 当使用 PAT 对非默认 MAS 主机.
许可证
麻省理工学院——见 自由主义。 。 。 .