如何参与OpenResearch开发dev-slot、CI与贡献者完整工作流【免费下载链接】OpenResearchTurn your coding agents into research agents项目地址: https://gitcode.com/GitHub_Trending/op/OpenResearch想参与OpenResearchorxCLI开发吗本文带你走通从克隆仓库、用dev-slot一键起本地实例到通过CI 检查与版本发布流的贡献者完整工作流。OpenResearch 是一个本地优先的研究智能体工作台能把 Claude Code、Codex、OpenCode、Cursor 等编码智能体变成能读文献、跑实验、出成果的研究智能体。 先认识项目结构在动手前花 2 分钟看懂仓库布局后面每一步都会用到目录/文件职责src/Rust 实现本地 CLI、仪表盘、API、SQLite 存储、智能体集成、实验编排与计算后端ui/src/仪表盘前端TypeScript React Tailwindui/dist/已提交的前端构建产物会内嵌进发布构建scripts/dev-slot.mjs开发槽位工具隔离端口、数据与进程.github/workflows/CI 与发布工作流核心约定写在 AGENTS.md 里Rust 代码在src/仪表盘在ui/src/本地功能保持本地只有openresearch.sh服务侧能力组织、托管算力才走生产 API 客户端。 仓库里附带的 demo/nanochat/ 演示了一个完整研究闭环用智能体训练 nanochat 并做缩放律分析。下图中正是研究智能体产出的实验证据——IsoFLOP 曲线与最优模型规模/训练 token 数 克隆仓库并搭建开发环境OpenResearch 开发需要 Ruststable与 pnpmNode 22。dev-slot 的生命周期管理仅支持macOS / Linux见 scripts/dev-slot.mjs。git clone https://gitcode.com/GitHub_Trending/op/OpenResearch cd OpenResearch工具基于git worktree工作它要求恰好存在一个main分支的工作树作为主检出worktreeInfo 逻辑每个特性分支放在独立 worktree 中互不干扰git worktree add ../openresearch-feature -b my-feature 用 dev-slot 一键启动本地实例这是贡献者最重要的工具它让每个 worktree 拥有独立的数据目录、端口和进程避免污染你正常使用的orx本地库。四条命令覆盖全部生命周期命令作用scripts/dev-slot.mjs start --db empty\|copy [--open]启动一个开发槽位scripts/dev-slot.mjs status查看当前 worktree 的槽位状态scripts/dev-slot.mjs stop停止后端与 UI 进程scripts/dev-slot.mjs cleanup停止并删除槽位数据目录数据库两种模式见 initializeDatabase--db empty全新空库从零验证功能--db copy对正常 CLI 数据库做WAL 安全快照并复制运行日志——想复现真实数据问题时用它。槽位分配规则工具从 slot 1–9 中挑选空闲槽位用flock/lockf加咨询锁防止竞态见 acquireAdvisoryLock每个槽位独占一组端口与目录槽位后端端口UI 端口slot-149015201slot-N4900N5200Nslot-949095209所有数据落在~/.local/share/openresearch-dev/下每个槽位有独立的ORX_DATA_DIR、ORX_CACHE_DIR、XDG_CONFIG_HOMEslotEnvironment而CARGO_TARGET_DIR全局共享避免每个 worktree 重复编译整个 Rust 依赖树。启动时它会自动为 UI 安装依赖pnpm install --frozen-lockfile→ 以cargo run -- up --no-browser --port 槽位端口拉起后端 → 以pnpm dev --strictPort拉起 UI → 等待后端日志出现 dashboard on 且 API 就绪后才打印可访问地址startUnlocked。node scripts/dev-slot.mjs start --db copy --open # Dev slot ready (copy) # Backend: http://127.0.0.1:4901 # UI: http://localhost:5201/✅ 提交前对照 CI 做本地自检CI 定义在 .github/workflows/ci.yml 中。合并前先在本地跑通这些检查可大幅减少返工Rust 侧对应fmt, clippy, test任务ci.yml L75-L93cargo fmt --all --check cargo clippy --all-targets -- -D warnings cargo build --locked cargo test --lockedUI 侧ci.yml L40-L66node ui/scripts/check-i18n.mjs # 国际化目录完整性 node ui/scripts/check-styles.mjs # 样式 token 检查 cd ui pnpm typecheck # 类型检查 node --test --experimental-strip-types ui/tests/*.test.mjs两个最容易踩的坑ui/dist是提交的。改了ui/src/后必须运行pnpm build并把再生成的产物一起提交AGENTS.md。样式规范优先使用规范 Tailwind 工具类与项目主题别名如bg-background、text-subtext、border-border只在无可用工具类时才用任意值。另外 CI 还会校验源码构建的遥测通道必须是 developmentci.yml L84-L90——开发构建不发送任何使用分析这条由 CI 强制保证无需你处理但改动version --build-channel相关逻辑时务必留意。️ CI 流水线与分支保护PR 合并有三道关卡fmt, clippy, test在 ubuntu 上跑上面全部检查外加 dev-slot 自身的单测node --test scripts/dev-slot.test.mjs。windows build, testWindows 上单独跑 clippy、构建与测试并产出 release 版orx.exe构件供下载——这是多数改动唯一会遇到的 Windows 环境改 CLI 时值得留意。version sanity仅 PR 触发专门看守版本号规则见 version-guard 任务版本只能向前、不能复用已发布的 tag、版本号变化必须同步重新生成 Cargo.lock。两个值得理解的 CI 细节PR 测试的是GitHub 模拟合并结果refs/pull/编号/merge而不是你的分支头。也就是说 main 后续更新不会自动重跑已开的 PR——如果你怀疑 CI 结果过期手动 re-run 或 rebase。main分支保护要求fmt, clippy, test与version sanity全部通过管理员同样适用不要求 merge queueAGENTS.md。 版本发布流bump 即发布OpenResearch 的发布机制很优雅合并一个 bump 版本号的 PR 就是发布行为本身。完整链路.github/workflows/release-on-bump.yml你在评审过的 PR 中修改 Cargo.toml 的version并重新生成Cargo.lock一起提交合并推送到main后release-on-bump.yml检测到本次推送改动了版本且对应 tag 尚未存在才 dispatchrelease.yml带version-bump标签标记 PRrelease.yml基于 cargo-dist配置见 dist-workspace.toml构建 macOS双架构、Linuxmusl 双架构、Windows 安装包发布 GitHub Release 时顺带创建 tag——没有任何工作流主动推 tag规避了 GitHub 的防递归规则发布前会先跑同一套 CI 工作流CI 不成功就不发布。普通贡献者不需要碰这条流但如果你要参与发布或签名相关改动.github/workflows/、/macos/、scripts/package-macos-app.sh它们受 .github/CODEOWNERS 保护必须经维护者评审——这些文件能触达 macOS 签名证书属安全敏感区。 贡献者速查清单按main 特性 worktree 组织代码用node scripts/dev-slot.mjs start --db copy --open调试Rustfmt/clippy -D warnings/build --locked/test --locked全绿UI改完记得pnpm build并提交ui/disti18n 与样式检查通过本地功能保持本地化服务侧能力才走生产 API 客户端涉及版本号时同步重新生成Cargo.lock若 CI 疑似过期手动 re-run模拟合并特性导致 main 更新不会自动重跑 准备好后挑一个带标签的 issue 或直接从小型 UI/文档改进入手跑通一次 dev-slot → 本地自检 → PR CI 的全流程你就正式加入 OpenResearch 的贡献者行列了。【免费下载链接】OpenResearchTurn your coding agents into research agents项目地址: https://gitcode.com/GitHub_Trending/op/OpenResearch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考