多代理编程助手配置

一个具有持久记忆、多代理编排、定时代理和并行代码审查功能的OpenCode配置,适用于开发效率和编程辅助场景。

  • by kiryteo
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kiryteo/opencode-setup

使用说明

开放代码设置

一 开源代码 配置持久内存、多代理编排、调度代理和并行代码审查。在每天使用约25天的基础上构建 超能力 技能框架。

分享它是因为在野外很少有大量定制的OpenCode配置的例子。作为可能的起点或参考很有用。

JOURNEY.md中的完整构建日志

回购中有什么

.
├── AGENTS.md              # Global agent instructions (loaded every session)
├── opencode.json          # Base config: MCP servers, compaction, permissions
├── setup.sh               # New-machine bootstrap script
├── agents/                # 18+ agent definitions
├── commands/              # 139+ slash commands
├── plugins/               # 12 plugins (memory, compliance, context, token monitoring)
├── skills/                # 143+ skill directories
├── scripts/               # Utility scripts (token analytics, session analysis, SLURM launcher)
├── notes/                 # Cross-project knowledge base
├── mcp/opencode-memory/   # Custom MCP server for persistent memory (Python/SQLite)
├── symphony/              # Multi-agent PR review orchestrator
├── hands/                 # Scheduled headless agents (macOS launchd)
└── docs/                  # Setup guides (Ollama local models, etc.)

设置

先决条件

工具 安装
开源代码 curl -fsSL https://opencode.ai/install | bash
紫外线 curl -LsSf https://astral.sh/uv/install.sh | sh
版本控制系统 xcode-select --install (macOS)或 sudo apt install git (Linux)

1.单机(macOS/Linux)

对于个人工作站、笔记本电脑或任何具有本地文件系统的机器:

# If ~/.config/opencode/ doesn't exist yet:
git clone https://github.com/kiryteo/opencode-setup.git ~/.config/opencode
~/.config/opencode/setup.sh

如果已经安装并创建了OpenCode ~/.config/opencode/:

mv ~/.config/opencode ~/.config/opencode-old
git clone https://github.com/kiryteo/opencode-setup.git ~/.config/opencode
cp ~/.config/opencode-old/settings.json ~/.config/opencode/ 2>/dev/null  # keep local settings
rm -rf ~/.config/opencode-old
~/.config/opencode/setup.sh

什么 setup.sh 做:

  • 检查一下 opencode, uv,以及 git 已安装
  • 扩展 $HOME 占位符在 opencode.json 到您的实际主目录
  • 安装内存MCP服务器(uv sync 在 mcp/opencode-memory/)
  • 创建运行时目录(memory/, research/, session-states/等等)
  • 标记路径更改 opencode.json 随着当地的变化(不会污染 git status)

设置后,只需运行 opencode 像往常一样。

2.SLURM集群后面的远程机器

在具有共享NFS主目录和SLURM作业调度的HPC集群上,SQLite的WAL模式会导致跨计算节点的锁定问题。此设置通过 oc() 将数据库复制到节点本地的包装器 /tmp 每次跑步时,将它们同步回来。

问题

  • 主目录位于NFS上;SQLite WAL使用共享内存文件(.shm)不适用于NFS
  • 每 salloc 可以将您放置在不同的计算节点上
  • SLURM可以SIGKILL您的进程(作业超时),使数据库处于不一致的状态

安装

# Same clone step as standalone:
mv ~/.config/opencode ~/.config/opencode-old 2>/dev/null  # if it exists
git clone https://github.com/kiryteo/opencode-setup.git ~/.config/opencode
cp ~/.config/opencode-old/settings.json ~/.config/opencode/ 2>/dev/null
rm -rf ~/.config/opencode-old

# Run setup with --slurm flag:
~/.config/opencode/setup.sh --slurm

这 --slurm 标志以交互方式提示:

提示 描述 示例
NFS数据目录 OpenCode运行时数据的持久共享存储(集 XDG_DATA_HOME).留空以供使用 $HOME/.local/share. /shared/users/$USER/.local/share
CPU分区 CPU分配的SLURM分区名称 cpu
GPU分区 GPU分配的SLURM分区名称 gpu

它在本地生成一台机器 scripts/bashrc-opencode-local.sh (gitignored)与您的值并添加 source 线到 ~/.bashrc.

source ~/.bashrc  # apply changes

在SLURM上的使用

总是使用 oc 而不是 opencode 在计算节点上。 这 oc 包装器处理数据库安全。

# 1. Allocate a compute node:
oc-simple   # 8 CPU, 16GB, 4h
oc-cpu      # 16 CPU, 64GB, 4h
oc-gpu      # 2 GPU, 16 CPU, 64GB, 8h

# 2. Run OpenCode on the compute node:
oc

如何 oc() 作品

Start:
  1. Copy opencode.db + memory.db from NFS → node-local /tmp/
  2. Symlink non-DB items (auth.json, plans/, storage/) from NFS
  3. Start background sync (every 2 min) to protect against SIGKILL
  4. Run opencode with XDG_DATA_HOME pointing to /tmp/

Exit (normal):
  5. Stop background sync
  6. Merge local opencode.db → NFS primary (INSERT OR REPLACE)
  7. Backup local memory.db → NFS primary (.backup)

Crash recovery (SIGKILL / job timeout):
  - Background sync already wrote recent state to NFS
  - Next oc() start detects stale local DB, offers to merge it
  - Cross-node lock detection warns if another node is still running

自定义启动器

编辑 scripts/bashrc-opencode-local.sh (gignored,机器本地)更改:

OPENCODE_BIN_DIR="$HOME/.opencode/bin"    # opencode binary location
NFS_DATA_DIR="/your/nfs/path/.local/share" # persistent NFS storage
SLURM_PARTITIONS=(
    "your_cpu_partition"
    "your_gpu_partition"
)

模板位于 scripts/bashrc-opencode.sh (用git跟踪)。

运作原理

记忆

我遇到的最大的痛点是每次训练都是从头开始。对过去的对话、学到的模式或纠正的错误没有记忆。大部分配置都是为了解决这个问题而存在的。

  1. 会话记忆技能 -一个协议,用于在每个任务后将学习和gotchas写入markdown文件。项目注释转到 .opencode/notes/,跨项目模式进入共享知识库。

  2. MCP内存服务器 (mcp/opencode-memory/)-一个SQLite支持的MCP服务器,用于存储笔记、任务、计划、检查点和交互日志。支持通过FTS5跨过去会话进行全文搜索。尊重 XDG_DATA_HOME 用于群集上的NFS安全操作。

  3. 代理商.md -全局指令加载每个会话。包含决策原则、委托规则和在每项任务后坚持学习的要求。这是把记忆碎片粘在一起的胶水。

代理

18+代理定义 agents/,每个都针对特定的工作进行了调整:

  • 研究人员 -通过Context7、gh_grep、Sentry MCP服务器获取外部知识
  • 探索 -不同彻底性级别的快速代码库导航
  • 代码审查员, 安全审查员, 绩效审查员, 架构评审员 -不同镜片的审查试剂
  • 分析师 -用bash/Python进行数据分析
  • 极小极大优化器/推理机-a/推理机-b/判断 -多智能体对抗推理(两个智能体辩论,盲法官选择更好的答案)
  • 多名研究员claude/gpt/ggemini -跨模型验证(对3个模型进行相同查询,综合一致性/不一致性)
  • 学术评论家, 学术作家 -结构化论文复习与写作
  • 各种个人生产力代理(职业、财务、健身等)

技能

143+技能提供结构化的工作流程。我认为最有用的是:

  • 超能力 (skills/superpowers/)-元技能,如 brainstorming, systematic-debugging, test-driven-development, quality-gate, writing-plans, dispatching-parallel-agents
  • 领域的技能 - frontend-design, system-design, testing-strategy, documentation等等。
  • 研究技能 - deep-research, literature-review, paper-reading, implement-paper等等。

技能按需加载。这 using-superpowers 技能负载在会话开始时加载,并在行动前督促代理检查相关技能。

插件

12个在后台运行的插件:

插件 它的作用
anchor-pruning 在上下文压缩过程中删除过时的工具输出
compliance-enforcer 当超过阈值时,使用Nudges质量门和代码简化器
local-context 在会话开始时自动发现项目类型、结构、git上下文
loop-detector 当每个文件的编辑计数达到5/8/12阈值时发出警告
memory-snapshot 将冻结的笔记注入系统提示符,以实现跨会话连续性
research-monitor 在压实过程中保持深入的研究状态
superpowers 在每节课中注入技能检查提醒
还有更多。.. 代币监控、Ollama自动发现等。

手(预定代理人)

Hands是无头代理,通过macOS launchd按照类似cron的时间表运行。他们与一位坚持不懈的人交谈 opencode serve 守护进程。

hands/
├── HANDS.md                    # Docs and creation guide
├── infrastructure/
│   ├── run-hand.sh             # Generic runner (reads profile.toml, builds prompt)
│   └── serve.sh                # Daemon wrapper for opencode serve
├── memory-gardener/            # Periodic memory cleanup and consolidation
├── bookmark-digest/            # Summarize and categorize bookmarks
└── opportunity-scout/          # Research opportunities in configured domains

每只手都有一个 profile.toml 和一个 HAND.md 提示模板。对于macOS设置,请创建 .plist 基于中模板的文件 hands/HANDS.md.

Symphony(多代理公关评论)

一个独立的编排器,它调度并行审查代理(代码质量、安全性、性能、架构),并将其结果综合到一个报告中。通过以下方式与GitHub PR集成 gh。包括测试套件。

命令

139+常用操作斜线命令: /review, /research, /learn, /map-codebase, /consolidate, /draft-paper, /lit-review, /peer-review,以及更多。

定制什么

  • 代理商.md -决策原则和授权规则;对自己的惯例进行编码
  • opencode.json -MCP服务器连接、模型首选项、权限
  • 注释/跨项目模式.md -用户偏好和特定项目的陷阱
  • notes/code-constitution.md -您的代码质量标准
  • 技能/超能力/ -调整哪些技能是强制性的,哪些是可选的

追踪与个人

跟踪(通过git共享) 个人(gitignored,保持本地)
代理提示、技能、命令、插件 memory/ --交互日志、笔记、检查点
MCP服务器源代码 research/ --研究成果和数据
设置脚本、配置模板 plans/ --项目计划
通用OpenCode模式注释 token-usage/ --使用指标
政策、文件、测试、交响乐 hands/*/output/ --计划代理输出
*.plist --macOS launchd(硬编码路径)
settings.json --本地OpenCode设置

许可证

麻省理工学院