开发与工程 typescriptcode-reviewlineardiscord-botgithub-actionslancedbcode-registrylocal-models

OpenSwarm

将开发工单编排为经审核与验证的代码变更。

FollowAgents 评估 · FARS-2.0
待评估
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

OpenSwarm 是一个以 TypeScript 和 Node.js 22+ 构建的自主开发任务编排器,可通过 TUI、CLI、Discord 和 Web Dashboard 操作。它从 Linear 或内置 SQLite 工单追踪器获取任务,由 DecisionEngine 筛选并交给 PairPipeline 中的 Worker、Reviewer,以及可选 Tester 和 Documenter 阶段。执行可使用 Codex、OpenAI GPT、OpenRouter、Atlas Cloud、Ollama、LM Studio,或作为可选后备的 Claude Code CLI。它还提供代码实体注册表、BS Detector、LanceDB 长期记忆和按仓库回忆的知识循环。对于团队采用,它更适合愿意配置模型凭据、项目目录和验证命令,并希望把工单处理、审查和 CI 修复纳入同一自托管工具链的开发团队。

AutonomousRunner 按心跳从 Linear 获取工单,DecisionEngine 按范围、优先级和限额过滤任务,projectMapper 解析项目路径后调用 PairPipeline.run()。Worker 通过配置的 adapter 修改代码,Reviewer 输出 APPROVE、REVISE 或 REJECT,并可循环多次;可选 Tester 和 Documenter 随后执行。openswarm review 审查工作树,openswarm review --max 将代码库拆成区域交给 reviewer 子代理,并输出审计报告、可选 Linear 工单、JSON 判定或 SARIF;--fix 在隔离沙箱中修复并在复审和确定性验证通过后发布 PR。openswarm fix 自动识别 npm、Cargo 或 Python 检查,按失败文件分组修复并重复运行检查。Code Registry 将函数、类和类型写入 SQLite/FTS5,openswarm check --bs 扫描坏代码模式;完成的任务还会写入 LanceDB,以便后续同仓库任务通过 search_memory 和提示词回忆。

  1. 维护 Linear 工单的工程团队,希望按计划自动挑选任务、实施修改、复审并把结果回写工单状态。
  2. 需要在 GitHub Actions 中把 PR 审查作为合并门禁的团队,可使用仓库提供的 composite action、JSON 判定或 SARIF 输出。
  3. 面对 lint、typecheck、build 或 test 失败的多语言仓库维护者,希望用 `openswarm fix` 按轮次修复并重复验证。
  4. 使用 Discord 管理开发工作的团队,可通过 `!dev`、`!tasks`、`!auto` 和 `!provider` 调度任务、查看状态和切换提供商。
  5. 想在本机 Ollama 或 LM Studio 上运行代码工作流,同时保留 OpenRouter、Codex 或 GPT 路由选择的开发者。

这个 Agent 有哪些优点和局限?

优点
  • 将 Linear/本地工单、Worker/Reviewer 流水线、可选测试与文档阶段整合在同一 CLI 和 daemon 中。
  • 提供多种执行后端,包括 OpenRouter 任意模型、ChatGPT OAuth 的 codex-responses、本地 Ollama/LM Studio,以及 Claude Code CLI 后备路径。
  • `review --max --fix` 具有区域化审查、依赖闭包分组、隔离沙箱、复审和确定性验证门槛。
  • 代码注册表、风险与测试映射、BS Detector,以及 LanceDB 的仓库知识回忆,覆盖了单次任务之外的代码库上下文。
局限
  • 运行全功能自主模式需要 Node.js 22+、原生模块构建条件、模型认证,并视集成情况需要 Linear、Discord 或 GitHub CLI。
  • Claude Code 仅作为需显式选择的 `claude -p` 后备路径;不会自动回退到它。
  • Linux 确定性验证依赖 bubblewrap,且不可用时会失败关闭;GitHub Actions 和 Docker 可能需要额外系统配置。
  • `review --max --fix` 只有在所有区域复审通过且受信任的确定性检查通过后才发布 PR,因此不适合只想无门槛直接写入的流程。

如何安装或部署这个 Agent?

需要 Node.js 22+、至少一个已配置的 LLM 提供商,以及 better-sqlite3@lancedb/lancedb 所需的原生构建环境。安装并完成首次配置:
npm install -g @intrect/openswarm
openswarm init
openswarm doctor
openswarm
openswarm init 可配置 ChatGPT OAuth、OpenRouter、GPT、Ollama、LM Studio 或已认证的 claude CLI;若手动配置,至少先执行 openswarm auth login,或为 OpenRouter 设置 OPENROUTER_API_KEY。自主模式可额外配置 Linear OAuth/API key 和 Discord bot 凭据。

如何使用这个 Agent?

在要管理的仓库目录运行 openswarm init,让向导写入 config.yaml.env,然后用 openswarm start 启动后台 daemon,或用 openswarm run "Fix the bug" -p ~/my-project 执行单个任务。要在不启动 daemon 时运行完整流水线,可使用 openswarm exec "Run tests" --local --pipeline。审查当前改动使用 openswarm review;自动修复检测到的检查失败使用 openswarm fixopenswarm dash 打开端口 3847 的仪表盘。

这个 Agent 与同类方案有什么区别?

提供商选择上,codex-responses 使用 ChatGPT OAuth 和原生 Responses API 循环;codex 委托外部 Codex CLI;openrouter 运行自身的代理工具循环并支持任意 OpenRouter 模型;local/lmstudio 面向本地模型;Claude Code 是显式启用的 CLI 后备方案。

常见问题

是否必须使用 Linear?
不必。初始化向导可选择本地 SQLite 工单追踪器;Linear 是自主工单处理的可选后端。
PR 审查会修改被审查的代码吗?
默认 `read-only` 为 true,审查器被限制为只读;`review --max --fix` 是另一个明确请求的修复流程。
无法运行审查门禁时如何处理?
`openswarm review` 的退出码 2 表示门禁未运行、没有产生判定;文档建议将所有非零退出码都当作失败。
是否可以避免云端模型?
可以选择本地 Ollama (`local`) 或 LM Studio (`lmstudio`);嵌入模型由 `@huggingface/transformers` 在本地运行。

相关 Agents