复制安装命令
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
npm version npm downloads License: Apache 2.0 GitHub stars
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
来源文件:README.md
A harness wraps a model. A rig wraps your harnesses. Define your agent team in YAML, boot it with one command. Claude Code and Codex in the same rig, managed as one system.
OpenRig is open-source software for building and running your own network of agents. It turns AI coding agents from a pile of terminal sessions into a persistent, organized team. Talk to a lead agent about the outcome you want; it can coordinate specialists across teams and bring you results and decisions that need your attention. Start with a repository and one useful change, then keep the team's work and context at the same addresses.
It's the open-source system behind my AI civilization experiments.
Guide: Getting started · Stuck? Help · Questions: Q&A · Updates and demos: @_feralmachine on X

Start here: the guided first-use path: install, launch a two-agent team in your repository, and get one reviewed change.
Not setting this up today? Get the next walkthrough and occasional OpenRig updates → https://openrig.dev/follow
Requires Node.js 22 or 24 and tmux, on macOS or Linux. On a Mac with Apple silicon, use Node.js 22 (compatibility history). Native Windows is not supported yet, and WSL2 has not been tested. Launching a rig writes provider hooks and workspace trust settings. Before running the commands below, read what OpenRig changes on your machine and back up the relevant files.
npm install -g @openrig/cli
rig setup --dry-run
To install with Bun instead, run bun add -g @openrig/cli. OpenRig still runs on Node.js, so install Node.js 22 as well. Bun may block this package's postinstall script, in which case the Node.js and SQLite check described under what OpenRig changes on your machine does not run at install time.
Choose the working account you already have: Claude Code, Codex, or both. Reuse an explicit choice; no second subscription is required. rig setup --dry-run previews the broader setup, but applying rig setup checks both harnesses and cmux. It is optional for the selected-provider path.
Before launching, your agent asks once: “Allow your agents to run OpenRig commands without repeated permission prompts?” Yes — recommended / No — keep prompts. This covers every rig command, including starting/stopping agents and configuration, at personal project scope unless you explicitly choose user-wide sessions. It is not global YOLO or permission to invent work. On Yes, the agent adds and verifies native rules; No or no answer leaves settings unchanged. An existing explicit choice is reused. Say “Undo the OpenRig command allowances added by this setup” to remove only its additions.
Check tmux -V and only your selected CLI/login: claude --version plus
claude auth status, or codex --version plus codex login status. If needed,
sign in once with claude auth login or codex login; do not install or log in
to an unused provider.
| Team | Starter | Models |
|---|---|---|
| Two Codex agents | first-project | Both gpt-6-astra (unchanged) |
| Two Claude agents | first-project-claude | Configured native Claude default |
| Claude owner + Codex checker | first-project-mixed | Claude default + gpt-6-astra |
All three use the same owner/checker roles and task. Show the selected runtime, configured model and command before launch; confirm the account supports the model instead of silently falling back. The kernel starts automatically and selects from available authenticated providers independently of these two project agents. A missing unused provider is not a setup requirement.
cd /path/to/your/repository
starter=first-project # or first-project-claude or first-project-mixed
rig specs preview "$starter" --kind rig
rig up "$starter" --cwd . --plan
rig up "$starter" --cwd .
rig tui --shared
The kernel provides separate operational support and the shared dashboard. To detach without stopping the dashboard, press Ctrl-b then d; rig tui --shared returns to that view. Plain rig tui opens an independent view. Closing a viewing terminal does not mean you should relaunch the team.
Check project-seat readiness with rig ps --nodes --rig "$starter" and resolve any authentication, trust or permission prompt before assigning work. Then give the owner one bounded outcome from your repository:
rig send "dev-owner@$starter" 'Implement <one useful change>. Track the task in the queue and return its ID. Keep it local, verify the behavior, ask dev-check in this rig to check the exact candidate, and record the result and how I can try it.'
rig queue list --destination "dev-owner@$starter" --limit 1000
Sending a message does not itself create a queue item; the owner records the task. Read the final artifact and the review of its exact candidate, then return to the same owner for the next change. The guided first-use path covers readiness, a useful task, a reviewed result, Herdr/cmux terminals and recovery.
Not setting this up today? Get the next walkthrough and occasional OpenRig updates → https://openrig.dev/follow
@openrig/cliWe aim to acknowledge issues and pull requests within one day; see CONTRIBUTING.md for review targets.
OpenRig writes instance state, provider integration and workspace files as part
of setup and operation. These include trust settings and executable hooks.
The summary below follows this source revision; check rig --version when
using a published package, since repository guidance can be ahead of npm.
| When | What changes and why |
|---|---|
| npm installation | Installs the CLI, bundled components and dependencies under your npm prefix (with Bun, under Bun's global directory). OpenRig's postinstall checks the Node.js version and that the SQLite module loads; Bun may block this script. It does not run daemon or provider setup. |
rig setup | Attempts missing tools and writes an OpenRig block in ~/.tmux.conf for mouse support and scrollback. On macOS it can install cmux and enable its automation socket control in ~/.config/cmux/settings.json. --full adds workstation tools. --dry-run shows setup's plan without applying it. |
| Daemon startup | Creates/updates instance state under OPENRIG_HOME (normally ~/.openrig), including its database and managed plugin resources. Seeds the openrig-skills discovery skill in ~/.claude/skills and ~/.agents/skills, subject to existing version ownership. With runtime.codex.hooks_enabled enabled (the default), writes Codex hook configuration and trust records as described below—even before a rig launches. |
| Rig/seat launch and attachment | Creates tmux sessions, supplies seat identity and daemon connection environment, and projects selected guidance, skills, plugins and runtime resources into the workspace. Managed startup pre-trusts the workspace. Claude context collection can also be provisioned for attached sessions and refreshed during monitoring. |
| Explicit permission configuration | The built-in bootstrap does not add rig command allow rules. Agent-guided setup recommends Yes and requires your actual answer before the agent adds rules at your chosen scope. No/no answer preserves settings; existing choices and stricter rules remain relevant. Broader access is separate. |
The provider files are separate from instance state. Here ~ means the daemon
user's home; changing OPENRIG_HOME alone does not isolate provider configuration.
~/.claude.json. In the workspace, .claude/settings.local.json receives
the context collector's statusLine command and selected activity hooks;
helper scripts live under .openrig/. Selected settings/MCP resources can also
change that settings file and .mcp.json. The shared settings resource sets
permissions.defaultMode to acceptEdits and enables Exa/Context7 MCP entries;
selected MCP resources configure those external services. Built-in bootstrap
no longer writes a command allowlist to ~/.claude/settings.json or removes
older allowances. The trust writer uses the daemon home, so a custom
CLAUDE_CONFIG_DIR is not a general relocation of these writes.CODEX_HOME/config.toml (normally
~/.codex/config.toml). Startup enables hooks, adds the OpenRig activity relay
commands and pre-writes trust hashes for those commands. Seat startup adds
trust_level = "trusted" for the workspace; selected config resources can
add MCP settings. Recognized update notices can be skipped during launch,
recording the skipped version in Codex's cache; this is not an update install.Activity relays send event type/subtype, seat/runtime identity, timestamps and
native session identity to the configured OpenRig daemon's /api/activity/hooks
endpoint, using its activity token. That payload excludes prompt text and tool
arguments. Claude's collector writes context/token usage, session/transcript-path
metadata and available rate-limit data to the instance's state/context-usage
and state/provider-usage. Provider and selected MCP connections have their own
data flows. Daemon plugin initialization also checks the OpenRig plugin release
endpoint on GitHub.
Managed launches supply HOME, CODEX_HOME and OPENRIG_* identity/connection
variables. Claude uses --permission-mode acceptEdits and defaults to the classic
renderer for terminal scrollback. Codex uses -s workspace-write unless a named
profile governs its sandbox; the default does not force an approval-policy flag.
Fresh Codex launches also add writable access to the workspace's .git and the
pod's shared queue-state directory with --add-dir; the shared root comes from
OPENRIG_SHARED_DOCS_ROOT or ~/.openrig/shared-docs.
YOLO is off by default. An explicitly selected full-bypass policy selects
Claude's --dangerously-skip-permissions or Codex's
-s danger-full-access -a never. The legacy environment-only OPENRIG_YOLO=1
path still selects only Codex's sandbox; a resolved policy overrides that
environment setting.
Permission mode controls native execution permissions; work posture is separate
project guidance. Use rig policy permissions list|show|current|apply for rig
policy configuration (the four rig policy aliases remain compatible). Use
rig seat set-permissions <seat> --mode <mode> --reason <text> for an audited
future-launch choice: floor, full_bypass, or inherit to clear the seat
override. Additional Claude modes such as auto require support from the exact
managed Claude executable at the seat's working directory; selection and launch
each check it. Unsupported or changed contexts refuse without a fallback.
This does not relaunch the seat
or change its current native process, history, rules or hooks. rig seat status
separates the desired selection from the last launch arguments; neither proves
native enforcement. See the permission guide.
Managed hook blocks target OpenRig's entries and retain unrelated hooks, but
trust entries, selected resource keys and Claude's existing status-line command
can be replaced. Some writers recover unreadable settings as empty objects;
this is not a complete preservation or rollback guarantee. Back up relevant
files before first use. Daemon/bootstrap writes are automatic and do not each
have an interactive preview; rig setup --dry-run does not preview every later
startup effect.
OpenRig is a multi-agent harness — it manages the system that coding agents form when you run them together. Not the agents themselves, but the team they create: which sessions are running, how they relate, how to recover after a reboot, and how to stop it from becoming terminal sprawl.
rig up — tmux sessions, harnesses, startup files, readiness checksrig down --snapshot, restore by name with rig up <name>rig send, rig broadcast, and rig chatroomrig seat set-typing-guard <seat> --enabled true --reason <text> holds automatic messages and wakes instead of typing them into that seat (off by default; see rig seat set-typing-guard --help)rig slack manifest prints that app's manifest (setup guide)rig grow, rig shrink, rig launch, rig removeEvery agent runs in a tmux session you can attach to, inspect, and work with directly.
Use first-project, first-project-claude, or first-project-mixed for the
same focused first-use path on your selected providers. product-team is an optional
larger product-development example:
rig specs preview product-team --kind rig
rig up product-team
Use it when you want a larger product squad: two orchestrators, implementation, QA, design, and two independent reviewers.
For a smaller starter, use conveyor:
rig specs preview conveyor --kind rig
rig up conveyor
conveyor is a four-seat starter mixing Claude Code and Codex. It shows a handoff path through intake, planning, build, and review; first-project remains the smaller two-seat starting point.
Also ships: implementation-pair, adversarial-review, research-team, and secrets-manager (HashiCorp Vault managed by a specialist agent).
Browse the library:
rig specs ls
OpenRig is a local daemon + CLI + terminal UI + MCP server, built on tmux. The older React web UI remains in maintenance mode with best-effort support.
CLI / TUI / MCP
|
Hono HTTP daemon
|
Domain services
|
SQLite + tmux + runtime adapters
rig_up, rig_ps, rig_send, rig_chatroom_send, etc.)The TUI shows the team's coordination state; herdr and cmux show the actual agent terminals alongside it. Use rig tui commands to list the TUI's command-bar navigation, or try the interactive TUI tour.

Captured from the interactive TUI demo using fictional project data.
With herdr installed and connected, open the starter's terminals together:
rig terminal open first-project --provider herdr
For cmux, use --provider cmux. In the TUI, a rig's detail view has a term ▸ rig <name> link that opens every running seat of that rig in the default terminal provider; with herdr that is up to 16 seats per tab, in a workspace named after the rig. The underlying sessions remain accessible through tmux. See the terminal workspace guide for setup and returning to an existing view.
dev-owner@first-project. The conversation occupying it can change while its identity and authored context remain.rig discover fingerprints existing tmux sessions. rig adopt brings them under management.rig down --snapshot captures full state. rig up <name> restores from latest snapshot. Restore reports per-node outcomes (resumed, fresh, or failed).A rig can package actual software alongside the agents that manage it. The shipped example is secrets-manager: a HashiCorp Vault instance operated by a specialist agent.
rig up secrets-manager
rig env status secrets-manager
rig send vault-specialist@secrets-manager "Check Vault health and report status." --verify
Requires Docker for service-backed rigs.
For an existing installation, follow the upgrade procedure and the 0.5.14 release notes. Preserve live seats during the upgrade; rig down is not an upgrade step. Upgrading to 0.6.0 also requires Node.js 22 or 24: see Moving off Node 20 and the 0.6.0 release notes.
OpenRig 0.6.0 supports Node.js 22 and 24 only. Its SQLite binding (better-sqlite3 13) requires Node 22 or newer. Node 20 is no longer supported; the install check refuses it with an explanation.
If you run OpenRig on Node 20, switch Node first, then reinstall the CLI under the new Node (a version manager keeps a separate global package set for each Node):
nvm install 22 # or 24; fnm or your package manager work the same way
npm install -g @openrig/cli
rig --version
Your existing OpenRig data stays where it is. The daemon reopens the same database under the new binding and applies any pending migrations in place. Restart the daemon under the new Node by following the upgrade procedure above.
The migration below still applies when upgrading from a pre-0.5.9 instance.
0.5.9 makes $OPENRIG_HOME/context the addressable context library, writes
Claude telemetry to state/context-usage (and provider telemetry to
state/provider-usage), and installs the default System World at
context/system/system-world.yaml. Existing instances cross this boundary by
an Agent-Operated Migration from the shipped openrig-upgrade skill. The
target runtime reads canonical-first with legacy-fallback while new writes use
the canonical roots; a custom context-library root stays stable during
activation. This is not a directory rename to do while an old collector writes.
# SKILL_DIR is the installed openrig-upgrade skill directory.
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --help
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --home "$OPENRIG_HOME"
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --home "$OPENRIG_HOME" --apply-state --preimage /safe/path/layout-0.5.9-before
# Activate the exact target runtime separately. After every bounded legacy tail is followed by newer paired samples at both new state roots:
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --home "$OPENRIG_HOME" --verify --preimage /safe/path/layout-0.5.9-before > /safe/path/layout-0.5.9-verify.json
# Run the separately invoked non-destructive finalizer only with that exact receipt:
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --home "$OPENRIG_HOME" --apply-library --preimage /safe/path/layout-0.5.9-before --verification /safe/path/layout-0.5.9-verify.json
# Restore only helper-owned preparation/finalizer effects if the observed upgrade must be reversed:
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --home "$OPENRIG_HOME" --rollback /safe/path/layout-0.5.9-before
--help prints the phase grammar without inventorying the instance. No phase
flag intentionally runs the read-only plan; unknown options fail nonzero before
plan or mutation.
Every phase emits JSON. Stop on any issue or incomplete receipt and follow its
next action; do not continue from copied legacy telemetry or retry a partial
mutation blindly. Preparation leaves legacy state and collector settings in
place. Verification accepts exact tail bytes only when that same seat has newer
paired context and provider samples under state/; finalization revalidates the
accepted tails, copies the library without overwrite, and switches config last.
The helper never removes the legacy telemetry or library. Retirement follows
separate stable runtime, writer, reader, and recovery proof. Daemon, database,
seat, plugin, and release lifecycle actions remain agent-owned.
Optional:
rig setup attempts core machine preparation: tmux, cmux, Claude Code, Codex, and tmux defaults. It reports what it tried and what actually succeeded. If something fails, it gives the local agent enough context to finish the job.rig setup --full attempts a broader operator workstation setup (jq, gh) on top of core.rig doctor inspects current system health and helps diagnose problems after setup. Use it when something stops working or after machine changes.Both commands support --json for agent-driven workflows.
Before setup or managed launch, review what OpenRig changes on your machine, including provider trust, hooks and selected runtime resources.
Already-running adopted sessions may need restart before they pick up newly written runtime config.
For agents: First ask which available provider(s) the user wants, reusing an explicit choice. Recommend the working account they already have and follow the selected-provider guide above. Offer core setup (rig setup) or the fuller workstation path (rig setup --full) only when they want those additional tools. Inspect the result with --json and use rig doctor to finish any remaining machine-specific issues. When OpenRig itself misbehaves, read docs/reference/help.md (installed agents can run rig context get help; the same text is at openrig.dev/help/agents): it covers the next step, known problems, and how to reach the team if you're still stuck.
OpenRig is open source and self-hosted, with Claude Code and Codex in the same team. You operate it on your own infrastructure; the selected providers' model usage costs still apply.
Apache 2.0
name: openrig-architect
description: Use when designing multi-agent topologies that run ON OpenRig — authoring RigSpec and AgentSpec files for new rigs, creating agent startup content (guidance / skills / culture), or diagnosing why a launched rig's agents aren't behaving as intended. NOT for changing OpenRig itself (use openrig-builder); NOT for ordinary CLI operation of an existing rig (use openrig-user). Covers the full authoring lifecycle from user intent to validated, launchable rig.
metadata:
cli_surfaces_referenced:
- agent validate
- capture
- daemon start
- ps
- send
- spec validate
- specs ls
- up
- whoami
openrig:
stage: factory-approved
sibling_skills:
- openrig-user
- openrig-operator
- openrig-builder
- openrig-upgrade
- forming-an-openrig-mental-model
- ai-dev-workflowsYou are now an OpenRig architect. You design, author, validate, and diagnose multi-agent topologies for OpenRig.
Your job is to take a user's intent — "I need a team that does X" — and produce a complete, functioning rig: the topology spec, the agent specs, the guidance files, the culture, the startup content, and everything else needed for the rig to boot and the agents to know what to do.
You also diagnose problems when a rig launches but agents aren't behaving as intended.
Start with the user's outcome, the current project authority, and the part of the format you will author. Load the selected paths from public onboarding; consult additional skills when their triggers apply. A design task does not require reading the whole command library.
rig-spec.md and agent-spec.md before writing
those declarations. Consult agent-startup-guide.md for startup/loadout work
and edge-types.md when selecting relationships. Resolve the installed
reference root from the actual OpenRig installation; ~/.openrig/reference/
is a default, not a fixed location. If it is absent, use the matching source
repository docs or report the missing reference. Reading does not require
starting or changing a daemon.rig <command> --help for command shape. Load openrig-user for
the specific CLI surface needed, through the installed skill/context catalog.rig specs ls. Treat them as examples to
validate against the current environment, not proof that your new rig works.building-agent-software if available.Keep the spec, startup layering, role responsibilities and selected proof standard explicit. Scale the reading and checks to what the design changes.
Before touching YAML, understand what the user actually needs:
Ask clarifying questions if the intent is ambiguous. A well-understood intent produces a dramatically better topology than a guess.
Every rig is organized into pods — bounded context groups where members share a workflow concern. The question is: what are the natural groupings?
Common pod patterns:
| Pod | Purpose | When to use |
|---|---|---|
| Orchestration | Coordination, dispatch, monitoring | Almost always — any rig with 3+ agents needs an orchestrator |
| Development | Implementation, testing, quality | Any rig that writes code |
| Review | Independent code review, architecture review | When quality gates matter (production code, security-sensitive work) |
| Research | Deep investigation, analysis, synthesis | When the work requires research before implementation |
| Design | UX, interaction design, product decisions | When the work has a user-facing interface |
| Specialist | Domain-specific operations (Vault, DB, infra) | When a specific technology needs dedicated expertise |
Sizing principles:
implementation-pair pattern.Important: Agents do NOT all need to be busy at the same time. A rig is a network, not an assembly line. Some pods will be highly active (dev, review) while others are available on-demand (research, documentation, release management). An idle agent has near-zero cost but is immediately available when any other agent in the rig needs it — for quick questions, lookups, delegation, or specialized work. Design for availability, not constant utilization.
Start small to increase the likelihood of success, not because large rigs are wasteful. A 3-agent rig that boots and works correctly validates your spec authoring before you scale to 20 agents. Once the core topology works, expand with additional pods as needed.
Each pod member needs a clear role. The role determines:
Builtin agents shipped with OpenRig:
| Agent | agent_ref (in shipped starters) | Purpose |
|---|---|---|
| orchestrator | local:agents/orchestration/orchestrator | Rig orchestration lead |
| implementer | local:agents/development/implementer | TDD implementation agent |
| qa | local:agents/development/qa | Quality assurance agent |
| independent-reviewer | local:agents/review/independent-reviewer | Independent code reviewer |
| product-designer | local:agents/design/product-designer | Product designer |
| pm | local:agents/product-management/pm | Product manager |
| analyst | local:agents/research/analyst | Research analyst |
| synthesizer | local:agents/research/synthesizer | Research synthesizer |
| vault-specialist | local:agents/apps/vault-specialist | Vault domain specialist |
To verify the current builtin set on this host, run rig specs ls and look for entries with type agent and source builtin.
Path resolution: The local: prefix means relative to the rig spec file's directory. In shipped starters, these paths resolve against the builtin specs directory inside the OpenRig installation. When authoring a custom rig spec outside the installation, you have two options:
local: paths relative to your rig spec filepath: with an absolute path to reference builtins inside the OpenRig installation (look under the specs/agents/ directory near where rig is installed)When to create a custom agent spec:
When to reuse a builtin:
Each member needs a runtime and optionally a model.
Choose from the installed, authenticated runtimes and the project's current
execution policy. claude-code and codex are agent runtimes; terminal is an
infrastructure process. Their model availability, hooks, approval behavior and
continuation support differ. Check the relevant installed interfaces rather
than ranking vendors permanently in a reusable role skill.
Pin a model when the work or environment requires it, and verify the active runtime reports that model before relying on its result. Select reviewers and support roles by consequence, competence and the declared policy. Runtime diversity can provide different methods; it does not by itself prove independence or make any model suitable for a task.
Edges define relationships between members. See ~/.openrig/reference/edge-types.md for the full reference.
Practical rules:
delegates_to edge from the orchestratorcan_observe edges to the pods they reviewdelegates_to (e.g., impl → qa)delegates_to and spawned_by affect launch order. Use them for dependency chains.can_observe, collaborates_with, escalates_to are informational — they help agents understand the topology but don't constrain launch.Start simple. You can always add edges later. A rig with only delegates_to edges from the orchestrator to working pods is perfectly functional.
This is where most rigs succeed or fail. The topology is mechanical; the startup content is what makes agents actually useful. See ~/.openrig/reference/agent-startup-guide.md for the full guide.
Minimum for every rig:
guidance/role.md — who they are, what they doCULTURE.md — how the team works togetherFor serious rigs, also include:
4. startup/context.md per agent — boot-time grounding (project info, environment details)
5. Pod SOP skills — how each pod operates (implementation-pair SOP, review-pair SOP, etc.)
6. Project-specific documentation in rig-level startup files
The key principle: An agent that boots without knowing its role, its team's culture, and its project context will produce generic, unhelpful work. The startup content IS the product value. Invest in it.
If the rig needs managed software (databases, API servers, etc.), add a services block. See ~/.openrig/reference/rig-spec.md for the full services reference.
When to add services:
Services boot before agents. If health checks fail, no agents start. This is the hard gate — the environment must be healthy before agents can work.
my-rig/
rig.yaml # The RigSpec — required
culture/
CULTURE.md # Rig-wide culture — strongly recommended
agents/
my-custom-agent/
agent.yaml # AgentSpec — if custom agent needed
guidance/
role.md # Role guidance
startup/
context.md # Boot-time context
skills/
my-skill/
SKILL.md # Custom skill if needed
docker-compose.yaml # Only if services block is used
For rigs that reuse builtin agents, the agents directory is often unnecessary — the rig spec references the builtins directly.
rig.yaml) — define pods, members, edges, optionally servicesrig spec validate rig.yaml and rig agent validate agents/*/agent.yamlrig up rig.yaml --cwd /path/to/projectrig ps --nodes — all agents ready? Check rig capture on each agent.Always validate before launching:
rig spec validate rig.yaml
rig agent validate agents/my-agent/agent.yaml
Then run rig spec audit rig.yaml for advisory checks such as stale seat references and other cross-file drift that schema validation cannot detect.
If validation fails, fix the errors. Do not try to launch an invalid spec — it will fail with a less helpful error.
Symptom: Agent produces generic output, doesn't follow team conventions.
Root cause: Missing or insufficient guidance/role.md.
Fix: Write a clear role guidance file. Include responsibilities, working rhythm, and principles. Reference it in both resources.guidance and startup.files.
Symptom: Agent tries raw tmux commands instead of rig send, doesn't know peer session names.
Root cause: Agent didn't receive openrig-user skill or openrig-start overlay.
Fix: Ensure the agent's profile uses.skills includes openrig-user. Verify via rig ps --nodes that the agent shows expected startup status; check installed skills via direct startup/capture/transcript evidence or the UI node detail (the rig ps --nodes projection does not expose installed-resource counts).
Symptom: Agent stalls on rig whoami, rig send, etc.
Root cause: Claude Code permissions not configured for rig commands.
Fix: Describe the required permissions in startup context. The agent should configure ~/.claude/settings.json with allowlisted rig commands. See ~/.openrig/reference/agent-startup-guide.md for the current support matrix.
Symptom: Orchestrator works with one or two agents, others sit idle.
Root cause: Missing CULTURE.md or pod SOP content that describes how the full team coordinates.
Fix: Write a culture file that explicitly describes the coordination protocol. Include delegation patterns, review gates, and when each pod should be engaged.
Symptom: rig up fails before agents launch with a service health error.
Root cause: Docker Compose issue, health check failure, or port conflict.
Fix: Check docker compose up manually with the compose file. Verify health check URLs are correct. Check for port conflicts.
Symptom: Agent misses expected guidance, trust settings, permissions, or repo context even though the spec validates.
Root cause: The rig spec directory was treated as the agent's runtime cwd by assumption.
Fix: Confirm the intended cwd before launch. The spec can live in a rig/spec shelf while the agent works from the project or hub directory that carries the relevant AGENTS.md, CLAUDE.md, trust, and permissions. Use member cwd or rig up --cwd deliberately.
Symptom: Agent is missing expected guidance/skills.
Root cause: File paths in the spec don't resolve, or delivery_hint is wrong.
Fix: Verify file paths resolve relative to their owning artifact — AgentSpec resource paths are relative to the agent spec directory; RigSpec startup, culture, compose, cwd, and local: agent-ref paths are relative to the rig root. Check delivery_hint — use guidance_merge for pre-boot content, send_text for post-boot instructions.
Symptom: Skills are projected but agent doesn't invoke them. Root cause: Agent wasn't told to load them. Fix: In the startup context or role guidance, explicitly tell the agent which skills to load. The belt-and-suspenders pattern: project the skills via the spec AND tell the agent to read them in the guidance.
2 agents, 1 pod. The smallest effective development unit. One implements (TDD), one does QA. The implementer proposes, QA approves or rejects, then the implementer commits.
pods:
- id: dev
label: Development
members:
- id: impl
agent_ref: "local:agents/development/implementer"
runtime: claude-code
profile: default
cwd: "."
- id: qa
agent_ref: "local:agents/development/qa"
runtime: codex
profile: default
cwd: "."
edges:
- kind: delegates_to
from: impl
to: qa
Use when: Focused feature work, bug fixes, small-to-medium implementation tasks.
5-7 agents, 3 pods. Orchestration + development + review. The orchestrator dispatches work, the dev pair implements, the review pair validates independently.
Use when: Production-quality work that needs coordination and independent review.
3 agents, 2 pods. Orchestrator + research pair (analyst + synthesizer). The analyst investigates deeply, the synthesizer consolidates findings.
Use when: Technical research, competitive analysis, architecture exploration.
1+ agents, 1 pod, services block. Software infrastructure (Docker Compose) plus a specialist agent who knows how to operate it.
services:
kind: compose
compose_file: docker-compose.yaml
wait_for:
- url: http://127.0.0.1:8200/v1/sys/health
pods:
- id: vault
label: Vault
members:
- id: specialist
agent_ref: "local:agents/apps/vault-specialist"
runtime: claude-code
profile: default
cwd: "."
edges: []
Use when: The work involves operating software, not just writing code.
7 agents, 3 pods. The kitchen-sink topology: orchestration pair, development pod (impl + qa + design), review pair. See the product-team starter spec for the complete worked example.
Use when: Full product development with design, implementation, QA, and independent review. Requires strong culture and SOP content to keep all agents engaged.
Start simple, add complexity when needed. A working implementation pair is better than a broken full team. Launch with the minimum viable topology, verify it works, then expand.
Culture is not optional for team rigs. Any rig with 3+ agents needs a CULTURE.md. Without it, agents will default to generic behavior and the topology will underperform.
Validate early and often. Run rig spec validate after every change. Run rig agent validate after every agent spec edit. Fix errors immediately — don't accumulate them.
The startup content IS the product. The YAML topology is scaffolding. What makes a rig actually useful is the guidance, culture, skills, and startup context that agents receive. Invest your authoring time there.
评论 (0)
暂无评论,成为第一个评论者吧!