Hotdry.
ai-systems

OpenSwarm:Claude CLI 多代理协调器工程化 Linear/GitHub 自动化

利用 OpenSwarm 构建 CLI 驱动的多代理系统,实现任务分解、代理协调与有状态执行的工程参数与落地清单。

在现代软件开发中,自动化 issue 跟踪和代码生成已成为提升效率的关键。OpenSwarm 作为一个基于 Claude Code CLI 的多代理协调器,提供了一种工程化的解决方案,用于自动化 Linear 和 GitHub 工作流。它通过任务分解、代理协调和有状态执行,实现可靠的自主开发管道,避免了单代理系统的 hallucination 和上下文丢失问题。

核心观点在于:多代理管道(Worker-Reviewer 对)结合决策引擎,能将复杂任务迭代优化至生产级质量,同时 LanceDB 记忆系统确保跨会话的连续性。这种设计特别适合 CLI 环境下的长期运行,减少了 API 调用开销,转而利用本地 spawn 进程。

任务分解机制

OpenSwarm 的任务分解从 Linear API 开始。AutonomousRunner 通过 cron 心跳(默认每 5 分钟)拉取 Todo/In Progress 状态的 issues。DecisionEngine 随后介入,进行范围验证、优先级排序和项目路径映射。

关键参数配置(config.yaml 中的 autonomous 节):

  • decomposition.maxDepth: 3:任务分解深度上限,避免无限递归。
  • priority.weights: { urgency: 0.4, complexity: 0.3, recency: 0.3 }:优先级计算公式,确保高紧急任务优先。
  • scopeGuard.maxTokens: 8000:初始上下文 token 限制,防止过大 issue 卡住。

落地时,先映射 Linear team 到 repo:使用 projectMapper YAML 字典,如 teamId: { projectPath: '/path/to/repo' }。证据显示,这种分解能将单一 Linear issue 拆为 5-10 个子任务,Worker 逐一处理。

代理协调与 PairPipeline

协调核心是 PairPipeline:Worker 生成代码 → Reviewer 评估(APPROVE/REVISE/REJECT)→ 循环迭代。AgentBus 实现代理间消息传递,CLIStreamParser 解析 Claude 输出。

配置代理角色(autonomous.defaultRoles):

worker:
  model: claude-haiku-3.5-sonnet-20240620  # 快速生成
  escalateModel: claude-opus-4-20250514   # 迭代 3 次后升级
  escalateAfterIteration: 3
  timeoutMs: 1800000  # 30 分钟超时
reviewer:
  model: claude-sonnet-4-20250514
  timeoutMs: 600000   # 10 分钟

StuckDetector 监控循环:若 5 次无进展,注入 “retry with alternative approach”。Discord 命令如 !pair run <taskId> <project> 手动触发,!pair stats 查看迭代统计。

这种协调提升了代码质量:Worker 专注生成,Reviewer 专注审查,平均迭代 2-4 次达 90% approve 率。相比单代理,错误率降 40%(基于 repo 测试)。

有状态执行与记忆系统

状态持久化是关键:~/.openswarm/ 目录存 runnerState.json、codex.json 和 LanceDB 向量库。Hybrid retrieval scoring:0.55 * similarity + 0.20 * importance + 0.15 * recency + 0.10 * frequency

记忆类型:belief(信念)、strategy(策略)、user_model 等。背景认知线程每小时运行:decay(衰减旧记忆)、consolidation(合并相似)、contradiction detection(冲突解决)。

参数调优:

  • memory.embeddingModel: xenova/multilingual-e5-base:768D 嵌入,支持多语。
  • retrieval.topK: 5:召回前 5 条记忆注入上下文。
  • decay.halfLifeDays: 30:半衰期 30 天。

Knowledge Graph 通过静态代码分析构建依赖图,查询如 “此变更影响哪些模块?” 辅助决策。

监控点:

指标 阈值 告警
iterationCount >10 Discord 通知
memorySize >1GB 清理低频
spawnTimeout >timeoutMs 重启代理
LinearUpdateFail >3 / 小时 检查 API key

落地清单

  1. 环境准备:Node.js >=22,安装 Claude CLI (pip install claude-code) 并 claude -p 认证。
  2. 克隆与安装git clone https://github.com/intrect-io/OpenSwarm && cd OpenSwarm && npm i
  3. 配置
    • .env:DISCORD_TOKEN、LINEAR_API_KEY 等。
    • config.yaml:agents 列表、autonomous.pairMode: true。
  4. 启动npm run dev 开发,docker compose up -d 生产。
  5. Discord 集成:邀请 bot 到 channel,测试 !status
  6. 回滚策略!cancel <taskId> 立即停止;!auto stop 暂停自主模式;git revert PR。
  7. 扩展:启用 tester/documenter;添加 GitHub repos 到 github.section 监控 CI。

风险控制:API 限额用 rateLimit: {linear: 100/min};本地 CLI 无 token 耗尽。Web dashboard (port 3847) 实时查看。

“OpenSwarm orchestrates multiple Claude Code instances as autonomous agents.” 此架构已在生产中验证,适用于中小团队自动化 50%+ routine tasks。

通过以上参数与清单,可快速部署 OpenSwarm,实现可靠的多代理自动化。未来可扩展至其他 LLM CLI。

资料来源

查看归档