给科研 Agent 加上边界、执行真相与证据链
本地、可审计的研究循环控制面;配置真实 Runner 与固定评估器后再持续执行
长期算法实验最麻烦的地方,不是"再跑一个模型"。
- 人不可能一直守着实验室电脑。
- Coding agent 会写代码,但不天然知道哪些边界不能动。
- 单次高分可能只是 lucky run,不是可靠进步。
- 多轮尝试如果只散在日志里,下一轮又会从头猜。
AutoBCI 把这些问题收进一个本地研究循环:人类冻结问题和指标,Worker 在受限沙盒里运行实验,固定评估器给出结果,ledger 写下证据,Research Tree 把多轮尝试压成下一轮可用的经验。
| 模式 | 适合什么 | 怎么结束 |
|---|---|---|
| 持续研究(Perp) | 长期调参、评估漂移、跨轮次复盘 | 持续目标保持有效;只有 Program、数据、Runner 与固定评估器就绪后才执行 |
| Goal 模式 | 单次验证、临时分析、快速试一个候选方向 | 目标完成并通过证据检查后,汇报并停下 |
Goal 模式参考 Codex /goal 的思路:目标、验证面和完成条件先固定,完成后就停下。AutoBCI 也支持 持续研究(Perp)。Perp active 只表示持续目标已登记,不等于 Worker 正在执行;真实执行状态必须由 Runner、固定评估器和 ledger 证据确认。Research Tree 不是一份漂亮总结,而是由 Program、ledger、events、artifacts 和压缩摘要组成的研究记忆。
AutoBCI 负责冻结目标和边界、区分控制意图与真实执行、记录阻塞原因和证据。接入课题自己的 Runner、数据目录与固定评估器后,它才能在本机持续推进研究循环。公开版缺少这些条件时会明确 blocked,不会把状态登记冒充实验运行。
Hermes、OpenClaw、ClawBot、微信或 webhook 只负责传话和收报告:查状态、发报告、记录论文链接、触发白名单命令。你可以在通勤、散步或临时看到一篇论文时,随时把灵感交给它,也可以随时调整下一步研究方向。手机不是远程桌面,也不能变成任意 shell;科研真源仍在本机 Program、ledger、events 和 artifacts 里。
每一次尝试都应该留下来:为什么选这条方向,跑了什么命令,改了什么文件,结果是不是可信,为什么下一轮要继续或放弃。上下文足够多时,AutoBCI 才会真正变强,因为它不是只记对话,而是在积累可复盘的研究证据。Research Tree 让它能跨轮次学习、进化和迭代,把前后几次实验的结论变成下一次实验的经验。
AutoBCI 不把用户锁死在某一家模型或某一个远程联络 agent 上。模型接口层负责连接推理、计划和代码 Worker 可用的供应商;远程联络 Agent/Worker 层负责消息流转、微信汇报和白名单控制。两层分开展示,不把 Claude 模型和 Claude Code 这类 coding agent 混成同一类。
| 模块 | 作用 |
|---|---|
| Program | 冻结研究问题、主指标、数据边界和禁止事项 |
| Guard | 防止 agent 为了高分改题、换指标、碰 raw data 或吃未来信息 |
| Worker Sandbox | 让代码修改和实验运行发生在受限范围内 |
| Fixed Evaluator | 用固定评估器区分 smoke、候选结果和可信结果 |
| Trace + Ledger | 记录命令、diff、stdout/stderr、指标、artifact 和回滚线索 |
| Research Tree | 把多轮尝试、失败证据和下一步理由压成可复用研究记忆 |
| Storage Budget | 防止自动研究悄悄复制数据、写爆 checkpoint 或 artifacts |
| Dashboard / Mobile Gateway | Dashboard 看现场,微信/Hermes/OpenClaw 收报告和发白名单任务 |
真实世界的大脑数据充满个体差异、跨 session 漂移和长尾异常。依靠人工穷举超参、反复对齐预处理、手动调试算法结构,既耗费心力,也无法覆盖组合空间。通用 coding agent 能写代码,但不天然理解科研边界:它可能改评价指标、改数据划分、吃未来信息,或在一次偶然高分后停止验证。
AutoBCI Harness 是为 BCI 等科研场景设计的 research-loop engineering harness(研究循环工程框架)。它的第一原则是:人类定义问题边界、主指标和禁止事项;AI 在边界内持续探索;每一步必须可追踪、可回滚、可审计。
前置要求:
- Python 3.10+
- Node.js 22+ 和 npm
- macOS 或 Linux(Windows 有检查脚本,但不是 alpha 首个验收目标)
git clone https://github.com/infoechoes/AutoBCI-Harness.git
cd AutoBCI-Harness
bash scripts/install.sh
source .venv/bin/activate
# 环境检查
autobci doctor --json
# 建一个一次性 Goal,完成后会停
autobci goal start "验证一个严格因果 BCI baseline" --success "status JSON 可检查" --json
# 建一个长期 Perp 观察目标
autobci perp start "持续观察 BCI 研究循环" --json
# 查看 Research Tree
autobci research-tree show --json
# 跑不依赖真实模型 key 的本地 demo(推荐首次验证)
autobci demo onsite --skip-smoke
# 打开 Dashboard
autobci dashboard--skip-smoke 会跳过真实模型调用,只验证本地安装、控制面与 Dashboard,不代表科研任务已经运行。 要跑真实 provider smoke,需要先配置 API key(见下节);要执行真实实验,还需要自己的 Program、数据、Runner 和固定评估器。
查看当前 provider 和模型状态:
autobci model list --json配置 MiniMax 中国区 API key:
autobci model key minimax-cn
autobci model set --agent intake --provider minimax-cn --model MiniMax-M3
autobci model test minimax-cn --model MiniMax-M3 --json运行带真实 intake smoke 的现场 demo:
autobci demo onsite --provider minimax-cn --model MiniMax-M3常用 provider 已内置适配:
| Provider | 协议 | Key |
|---|---|---|
minimax-cn |
Anthropic Messages 兼容 | MINIMAX_CN_API_KEY |
minimax |
Anthropic Messages 兼容 | MINIMAX_API_KEY |
deepseek |
OpenAI Chat Completions 兼容 | DEEPSEEK_API_KEY |
glm / zhipu |
OpenAI Chat Completions 兼容 | ZAI_API_KEY |
qwen / dashscope |
OpenAI Chat Completions 兼容 | DASHSCOPE_API_KEY |
xiaomi / mimo |
pi-ai runtime | XIAOMI_API_KEY |
openai |
pi-ai runtime | OPENAI_API_KEY |
注意: ChatGPT Plus 网页订阅 ≠ 本仓库 provider runtime 的 API key。Codex App 或 Codex CLI 可以用 ChatGPT 账号登录,但 AutoBCI 自己的 provider smoke、director web search 和内置 worker 需要相应 provider 的 API key。缺 key 或模型不可用时必须显式失败,不能用本地 mock 冒充成功。
AutoBCI 的默认产品入口是 headless CLI + agent 对话。它不要求用户打开 TUI,也不要求切到第三方窗口。Claude Code、Codex、Cursor、Workbody、Hermes、ClawBot 或其它 agent 只需要调用稳定命令:
autobci doctor --json
autobci status --json
autobci ask "现在进展如何?" --json
autobci goal status --json
autobci perp status --json
autobci research-tree show --json
autobci-agent research-loop status --json手机微信 / Hermes / OpenClaw 这类网关只负责传话和收报告。科研真源仍然在本机的 Program、ledger、events 和 artifacts 里。
配置教程见 docs/mobile_gateway_setup.md。
公开 alpha 故意保持窄路径,优先交付一条别人 clone 下来就能验证的控制面路径:
| 命令 | 用途 |
|---|---|
autobci |
显示 headless CLI 入口和常用机器命令 |
autobci doctor --json |
检查 Python、Node、provider 配置、Pi runtime、Dashboard 和 runner |
autobci status --json |
读取当前 Program、Goal、Perp、Research Tree、Dashboard 和 artifact 状态 |
autobci goal start "...目标..." --success "...检查口径..." --json |
创建一次完成即停止的研究目标 |
autobci goal complete --evidence "...证据..." --json |
用证据完成当前 Goal |
autobci perp start "...长期目标..." --json |
创建持续观察和远程汇报用的 Perp 状态 |
autobci perp stop --reason "...原因..." --json |
停止 Perp |
autobci research-tree show --json |
输出由 Goal、Perp 和事件组成的可检查研究树 |
autobci ask "现在进展如何?" --json |
处理一次自然语言状态查询,默认不调用 live 模型 |
autobci data set /path/to/dataset |
保存本地 BCI 数据目录或项目数据目录 |
autobci storage audit --json |
非破坏性扫描本地记录目录,识别重复文件和可压缩记录 |
autobci demo onsite --skip-smoke |
跑不依赖真实模型 key 的现场交付检查 |
autobci dashboard |
打开本地 Dashboard,分开展示研究模式、真实执行、Agent、阻塞原因、就绪度与证据时间线 |
autobci-agent research-loop status |
查看研究循环 facade;未配置用户 runner 时会显式 blocked |
autobci-agent director-plan --web on |
使用 OpenAI web search 辅助生成研究方向(需配置 OPENAI_API_KEY) |
公开 alpha 不绑定某个具体公开任务。它先证明通用 BCI 研究闭环的接入边界:Program、Goal、Perp、Research Tree、Dashboard 和手机网关。真实课题需要用户在本地冻结自己的 Program,配置自己的数据目录、固定评估器和 runner;没配 runner 时不会假装启动实验。
主仓曾服务过 BCI/eCOG 严格因果解码研究;这个公开 harness 导出版只保留通用控制面和接入边界,不携带历史研究树、内部策略文档或真实科研数据。
开源本框架的初衷,是为了在更广泛、复杂的真实科研与临床场景中验证并打磨系统。
适合交流的场景:
- 有长期调参、评估漂移、结果复盘压力的 BCI 或算法团队
- 想在不破坏现有私有代码库的前提下,接入本地 Agent Loop
- 需要把模型 API、校园网 / 医院内网、跳板机和本地执行边界拆清楚
- 已经有 runner / evaluator,但缺少可审计的自动研究循环
不适合:
- 希望拿到一个托管云 SaaS
- 希望手机任意远控 shell
- 希望把单次最高分包装成可靠科研结论
我们希望了解真实使用场景中的约束、失败模式和接入边界,也欢迎围绕本地部署、数据管线、评估器和远程观察链路展开技术讨论。
📫 联系方式:
- 微信:
Submartinga11e - 备注:
AutoBCI + 你的实验类型
把这个仓库交给 coding agent 时,不要只说"帮我优化代码"。建议直接复制下面这段:
Read README.md, AGENTS.md, DEMO_QUICKSTART.md, and docs/storage_budget.md.
Treat AutoBCI as a research-loop engineering harness, not as a generic coding task.
First run:
bash scripts/install.sh
source .venv/bin/activate
autobci doctor --json
autobci status --json
autobci ask "现在进展如何?" --json
autobci demo onsite --skip-smoke
autobci-agent research-loop status --json
Before proposing edits, report:
1. the current Program boundary;
2. the primary metric;
3. the allowed and forbidden files/actions;
4. the current research queue;
5. where ledger, events, and artifacts are written.
Do not modify data/raw, ProgramMD, data splits, primary metrics, or alignment logic unless I explicitly approve it.
如果要让 agent 搜论文或 GitHub 方向,先确认 provider key,再用:
autobci-agent director-plan \
--web on \
--web-provider openai_web_search \
--min-tracks 10 \
--json.
├── README.md
├── DEMO_QUICKSTART.md
├── AGENTS.md # 给 coding agent 的硬规则
├── pyproject.toml
├── src/bci_autoresearch/
├── scripts/
├── dashboard/
├── configs/
├── docs/
├── reports/
├── tests/
└── .agents/skills/
重要入口:
AGENTS.md:给 coding agent 的硬规则DEMO_QUICKSTART.md:最短现场演示路径docs/storage_budget.md:数据和产物的默认磁盘预算programs/:冻结 Program 后在本地创建;公开仓库不预装具体课题.agents/skills/autobci-harness/SKILL.md:作为本地研究 harness 使用 AutoBCIscripts/:接入本地 runner、Dashboard 和安装脚本
Dashboard 是运行态投影,默认本地启动:
autobci dashboard它会显示:
- 当前研究模式与控制意图
- Worker 是否真的在运行,以及 Agent 的独立状态
- Program、数据、Runner、Evaluator 与 Provider 的就绪度
- 唯一阻塞原因和一条可执行的检查命令
- 控制事件、执行事件与证据时间线
- 是否存在经过固定评估器验证的实验结果;没有结果时明确显示空状态
Dashboard 不是审计真源。审计真源在这些文件里:
artifacts/research_loop/<task_id>/events.jsonl
artifacts/research_loop/<task_id>/ledger.jsonl
artifacts/research_loop/<task_id>/runs/<run_id>/result.json
artifacts/monitor/demo_task_stream.json
公开 harness 不规定某个固定数据 schema。真实 BCI 任务的数据布局应由冻结 Program、配置文件和本地 runner 明确声明。
本地路径只写入 .autobci/data_paths.json。这个文件被 Git 忽略,不会提交你的本机路径。
磁盘安全边界:
- 本仓库不会默认下载 Kaggle、BCI 原始数据或第三方数据集。
- runner 默认应拒绝超过预算的数据目录和 artifacts。
- 如确实需要更大数据,显式设置
AUTOBCI_MAX_DATASET_BYTES=10G或AUTOBCI_MAX_ARTIFACT_BYTES=2G。 kaggle/、artifacts/、data/、.autobci/和常见模型/数组产物都被 Git 忽略,不要把大产物放进公开提交。
详细策略见 docs/storage_budget.md。
原始科研数据边界:
data/raw/永远只读- 不允许为了拿高分修改原始数据、数据划分、主指标或标签定义
- 历史 BCI 训练代码必须保持严格因果:模型输入只能使用当前和过去样本,不能在预处理、归一化、平滑或目标构造中使用未来信息
安装开发依赖:
AUTOBCI_INSTALL_DEV=1 bash scripts/install.sh最小回归检查:
PYTHONPATH=src pytest -q tests/test_headless_cli.py
git diff --check涉及 CLI、provider、Dashboard、runner 或 research-loop 的改动,至少跑对应单测和一个本地 smoke。缺 key、缺 runner 或配置不兼容时必须显式失败,不能用本地兜底路径冒充成功。
存储审计:
autobci storage audit --json这条命令只读扫描 artifacts/、output/、tmp/、.autobci/,报告重复大文件和可压缩文本记录,不会删除、压缩或移动任何文件。
- 公开 alpha 不附带真实业务数据
- 不承诺自主研究一定提升分数
- 不把单次最高分包装成可靠科研结论
- 不把内部 smoke fixture 包装成公开 BCI 成果
- 不允许 silent fake fallback
- 不允许 agent 自行改 Program、主指标、数据划分或 raw-data 边界
Apache-2.0. See LICENSE.

