Skip to content

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:

jsonc
{
  // 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:

jsonc
{
  "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:

jsonc
{
  "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:

jsonc
{
  // 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:

jsonc
{
  "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:

jsonc
{
  "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:

jsonc
{
  // 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.

Released under the MIT License.