Create OpenCode agents simulating an engineering team with 5 roles:
- Product Manager
- Architect
- Engineer
- Engineering Manager
- QA Engineer
OpenCode supports custom agents via:
- JSON config in
opencode.jsonwith agent definitions - Markdown files in
.opencode/agents/or~/.config/opencode/agents/
Each agent can be primary (main assistant) or subagent (invoked via @mention).
For team simulation with inter-agent communication:
- Subagents can invoke each other via the
Tasktool - Use
permission.taskto control which subagents each agent can call - Each needs custom system prompt defining their role, skills, and collaboration protocols
See: https://opencode.ai/docs/agents
Global (all projects) or project-specific?
- Primary + Subagents: You switch between agents using Tab or @invoke; each has distinct role
- Orchestrator Pattern: Main agent delegates to subagents; you interact with one primary
- Team Channel: All subagents active in one session, can @mention each other
- Should agents have a shared context/thread?
- Do they need explicit meeting/handoff protocols?
- How should they escalate disagreements?
Each role could have skills (e.g., pm-roadmapping, qa-test-planning). Define now or iterate?
Use same model for all, or different models per role (e.g., faster/cheaper for PM, more capable for Engineer)?