Workflow Customization
Weave's agent system is fully configurable. You can disable agents you don't need, add custom specialists, change which models back each agent, and reshape the entire delegation workflow — all through configuration.
This page shows practical recipes for common workflow customizations.
Understanding the Default Workflow
Out of the box, Weave uses this delegation flow:
User → Loom (orchestrator)
├── Pattern (planning)
├── Thread (exploration)
├── Spindle (research)
├── Shuttle (coding)
├── Weft (review)
└── Warp (security)
Plan execution: Loom → Tapestry (step-by-step execution)Every part of this is customizable:
- Disable any agent you don't use
- Reconfigure any agent's model, temperature, or tools
- Add new agents that participate in the workflow
- Reshape delegation by adding triggers that tell Loom when to use each agent
Recipe: Dual Security Review
Get two independent security perspectives by adding a second reviewer backed by a different model:
{
// Keep the built-in Warp (Anthropic-backed) and add a GPT-backed reviewer
"custom_agents": {
"security-gpt": {
"display_name": "Security (GPT)",
"description": "Independent security review using OpenAI for diverse coverage",
"model": "openai/gpt-5",
"category": "advisor",
"cost": "EXPENSIVE",
"prompt": "You are a security auditor. Review code for OWASP Top 10 vulnerabilities, authentication flaws, injection attacks, data exposure, and insecure dependencies. Be thorough and skeptical. Produce a clear APPROVE or REJECT verdict.",
"tools": {
"write": false,
"edit": false,
"bash": false
},
"triggers": [
{ "domain": "Security", "trigger": "Independent security review using a different model for diverse analysis" }
]
}
}
}Loom will now see both warp and security-gpt as security reviewers. You can instruct Loom to use both via prompt_append:
{
"agents": {
"loom": {
"prompt_append": "When reviewing security-sensitive changes, delegate to BOTH Warp AND Security (GPT) for independent reviews."
}
}
}Recipe: Minimal Agent Setup
Strip Weave down to just the agents you need. For example, a solo developer who doesn't need planning or research:
{
"disabled_agents": ["pattern", "spindle", "weft", "warp"],
"agents": {
"loom": {
"prompt_append": "Skip planning phases. Work directly with Thread for exploration and Shuttle for coding."
}
}
}This leaves only loom, tapestry, shuttle, and thread — a lean setup for rapid prototyping.
Recipe: Replace the Review Pipeline
Swap out the built-in reviewers for custom ones tailored to your team's standards:
{
// Disable built-in reviewers
"disabled_agents": ["weft", "warp"],
// Add team-specific reviewers
"custom_agents": {
"code-reviewer": {
"display_name": "Code Reviewer",
"description": "Reviews code against team standards and patterns",
"model": "anthropic/claude-sonnet-4",
"category": "advisor",
"cost": "CHEAP",
"skills": ["company-standards", "testing"],
"prompt": "Review code changes for correctness, maintainability, and adherence to team conventions. Check test coverage. Approve or request changes with specific, actionable feedback.",
"tools": {
"write": false,
"edit": false,
"bash": false
},
"triggers": [
{ "domain": "Code Review", "trigger": "Code quality review, standards compliance, test coverage verification" }
]
},
"compliance-checker": {
"display_name": "Compliance",
"description": "Checks for regulatory and licensing compliance",
"model": "anthropic/claude-sonnet-4",
"category": "advisor",
"cost": "CHEAP",
"prompt": "Check code for licensing compliance, PII handling, GDPR requirements, and regulatory concerns. Flag any issues with third-party dependencies.",
"tools": {
"write": false,
"edit": false,
"bash": false
},
"triggers": [
{ "domain": "Compliance", "trigger": "License checks, PII handling, regulatory review" }
]
}
}
}Recipe: Domain-Specialized Coding Agents
Instead of one general-purpose Shuttle, add domain-specific coding agents:
{
"custom_agents": {
"frontend-dev": {
"display_name": "Frontend Dev",
"description": "React/TypeScript frontend specialist",
"model": "anthropic/claude-sonnet-4",
"category": "specialist",
"cost": "CHEAP",
"skills": ["react-best-practices", "typescript-strict", "accessibility"],
"prompt_file": ".opencode/prompts/frontend.md",
"triggers": [
{ "domain": "Frontend", "trigger": "React components, CSS, accessibility, UI/UX implementation" }
]
},
"backend-dev": {
"display_name": "Backend Dev",
"description": "Python FastAPI backend specialist",
"model": "anthropic/claude-sonnet-4",
"category": "specialist",
"cost": "CHEAP",
"skills": ["python-patterns", "api-design"],
"prompt_file": ".opencode/prompts/backend.md",
"triggers": [
{ "domain": "Backend", "trigger": "API endpoints, database queries, business logic, background jobs" }
]
},
"infra-dev": {
"display_name": "Infrastructure",
"description": "DevOps and infrastructure specialist",
"model": "anthropic/claude-sonnet-4",
"category": "specialist",
"cost": "CHEAP",
"skills": ["docker", "ci-cd"],
"triggers": [
{ "domain": "Infrastructure", "trigger": "Docker, CI/CD pipelines, deployment, monitoring, IaC" }
]
}
}
}Loom's delegation table will now include all three specialists, and it will route tasks based on the domain triggers.
Recipe: Research-Heavy Workflow
For teams that need extensive research before coding — add specialized research agents:
{
"custom_agents": {
"api-researcher": {
"display_name": "API Researcher",
"description": "Researches third-party APIs and libraries",
"model": "anthropic/claude-sonnet-4",
"category": "exploration",
"cost": "CHEAP",
"prompt": "Research third-party APIs, SDKs, and libraries. Read documentation, find examples, and summarize integration approaches. Never write production code — only research and recommend.",
"tools": {
"write": false,
"edit": false
},
"triggers": [
{ "domain": "Research", "trigger": "Third-party API investigation, library evaluation, integration research" }
]
}
},
"agents": {
"loom": {
"prompt_append": "Before implementing any third-party integration, always delegate to API Researcher first to understand the API surface."
}
}
}Combining Mechanisms
The most powerful configurations combine multiple mechanisms together:
{
// Optimize built-in agents
"agents": {
"loom": {
"model": "anthropic/claude-opus-4",
"prompt_append": "Prioritize security review for any auth-related changes."
},
"thread": {
"model": "anthropic/claude-3-haiku"
}
},
// Add custom specialists
"custom_agents": {
"perf-analyzer": {
"display_name": "Performance Analyst",
"model": "anthropic/claude-sonnet-4",
"category": "advisor",
"cost": "CHEAP",
"prompt": "Analyze code for performance issues: N+1 queries, unnecessary re-renders, memory leaks, expensive computations in hot paths.",
"tools": { "write": false, "edit": false, "bash": false },
"triggers": [
{ "domain": "Performance", "trigger": "Performance analysis, bottleneck identification, optimization review" }
]
}
},
// Disable what you don't need
"disabled_agents": ["spindle"],
"disabled_hooks": ["context-window-monitor"],
// Domain-specific categories for Shuttle
"categories": {
"backend": {
"model": "anthropic/claude-opus-4",
"prompt_append": "Use async/await. Include comprehensive error handling."
}
}
}Start Simple
Don't try to configure everything at once. Start with the default workflow, identify friction points, and customize incrementally. The most effective configurations are targeted — solving specific problems rather than trying to optimize everything.
