如何参与OpenResearch开发?dev-slot、CI与贡献者完整工作流
如何参与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),仅供参考

相关新闻

咨询方法论:从项目启动到经验复盘的体系化能力建设

咨询方法论:从项目启动到经验复盘的体系化能力建设

简介:一份聚焦售前咨询方法论的专业资料,面向IT售前咨询顾问、解决方案工程师及希望建立咨询思维的项目管理人员。资源围绕评估、交流、设计、投标、总结五阶段展开,逐一拆解商务与技术评估要点、中国商业环境中的客户交流策略、时间排期与竞…

2026/10/15 16:01:18 阅读更多 →
xiaomusic:小爱音箱播放本地音乐,3 条部署路径与避坑指南

xiaomusic:小爱音箱播放本地音乐,3 条部署路径与避坑指南

xiaomusic:小爱音箱播放本地音乐,3 条部署路径与避坑指南 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 晚饭刚收完,你对着音箱…

2026/10/15 16:01:15 阅读更多 →
TaoToken 跑通 OpenCode 的 Terminal-Bench:Agent 实战

TaoToken 跑通 OpenCode 的 Terminal-Bench:Agent 实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 16:24:23 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/9 14:01:10 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/9 14:56:39 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/10 2:03:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/10 16:14:15 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/10 12:51:50 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/9 14:01:11 阅读更多 →

日新闻

周新闻

月新闻