Opencode: 1.3.15
Weave: 0.7.5
At the moment I am having issues to get Weave to delegate work to its agents. Most of the time Loom does all the work even though the work should not be categorised a such. To investigate I ran /weave-health and noticed depending on whether Weave's agents have display_name set or not, Weave categorises them differently as builtin or custom.
Below are 2 reports with the agent config section of Weave config.
In the run without display names most Weave agents are categorised as builtin (not Loom and Tapestry). In the run with custom display_names they are categorised as custom.
Expected:
- builtin agents are categorised as builtin regardless of the display names
- loom and tapestry should be builtin in both reports
I am not sure what the impact is of 'wrong' categorisation, depending on that accurate reporting is probably more important or not. (It does cause confusion probably.y)
Is Weave's functionality impacted by this categorisation? My first impression seems to be that if I remove display names Loom delegates more easily but I need to use Weave more to confirm.
Without display names
Weave Config Health: OK
No warnings or errors.
Config files
- /Users/hans/.config/opencode/weave-opencode.jsonc
Loaded agents
- Builtin: 6/8 (shuttle, pattern, thread, spindle, weft, warp)
- Custom: 2 (loom, tapestry)
Logs
- Detailed: ~/.local/share/opencode/log/ (service=weave)
- Real-time: opencode --print-logs --log-level WARN
Agent config:
"agents": {
"loom": {
// "display_name": "Orchestrator (loom)",
"model": "openai/gpt-5.4-mini",
"variant": "high",
// "prompt": "{file:./weave/loom.md}",
},
"pattern": {
// "display_name": "Planner (pattern)",
"model": "openai/gpt-5.4",
"mode": "subagent",
"skills": ["writing-plans"],
},
"thread": {
// "display_name": "Codebase explorer (thread)",
"model": "opencode-go/kimi-k2.5",
"mode": "subagent",
},
"spindle": {
// "display_name": "External Researcher (spindle)",
"model": "opencode-go/kimi-k2.5",
"mode": "subagent",
},
"weft": {
// "display_name": "Reviewer (weft)",
"model": "openai/gpt-5.3-codex",
"mode": "subagent",
"skills": ["code-review"],
},
"warp": {
// "display_name": "Security auditor (warp)",
"model": "openai/gpt-5.3-codex",
"mode": "subagent",
},
"tapestry": {
// "display_name": "Execution orchestrator (tapestry)",
"model": "opencode-go/kimi-k2.5",
"mode": "subagent",
},
"shuttle": {
// "display_name": "Specialist worker (shuttle)",
"model": "openai/gpt-5.3-codex",
"variant": "medium",
"mode": "all",
},
}
With display names:
✅ Weave Config Health: OK
No warnings or errors.
- Config: /Users/hans/.config/opencode/weave-opencode.jsonc
- Loaded agents: 8 custom (loom, tapestry, shuttle, pattern, thread, spindle, weft, warp)
Logs:
- ~/.local/share/opencode/log/ (service=weave)
- opencode --print-logs --log-level WARN
Agent config:
"agents": {
"loom": {
"display_name": "Orchestrator (loom)",
"model": "openai/gpt-5.4-mini",
"variant": "high",
// "prompt": "{file:./weave/loom.md}",
},
"pattern": {
"display_name": "Planner (pattern)",
"model": "openai/gpt-5.4",
"mode": "subagent",
"skills": ["writing-plans"],
},
"thread": {
"display_name": "Codebase explorer (thread)",
"model": "opencode-go/kimi-k2.5",
"mode": "subagent",
},
"spindle": {
"display_name": "External Researcher (spindle)",
"model": "opencode-go/kimi-k2.5",
"mode": "subagent",
},
"weft": {
"display_name": "Reviewer (weft)",
"model": "openai/gpt-5.3-codex",
"mode": "subagent",
"skills": ["code-review"],
},
"warp": {
"display_name": "Security auditor (warp)",
"model": "openai/gpt-5.3-codex",
"mode": "subagent",
},
"tapestry": {
"display_name": "Execution orchestrator (tapestry)",
"model": "opencode-go/kimi-k2.5",
"mode": "subagent",
},
"shuttle": {
"display_name": "Specialist worker (shuttle)",
"model": "openai/gpt-5.3-codex",
"variant": "medium",
"mode": "all",
},
}
Opencode: 1.3.15
Weave: 0.7.5
At the moment I am having issues to get Weave to delegate work to its agents. Most of the time Loom does all the work even though the work should not be categorised a such. To investigate I ran
/weave-healthand noticed depending on whether Weave's agents havedisplay_nameset or not, Weave categorises them differently as builtin or custom.Below are 2 reports with the agent config section of Weave config.
In the run without display names most Weave agents are categorised as builtin (not Loom and Tapestry). In the run with custom display_names they are categorised as custom.
Expected:
I am not sure what the impact is of 'wrong' categorisation, depending on that accurate reporting is probably more important or not. (It does cause confusion probably.y)
Is Weave's functionality impacted by this categorisation? My first impression seems to be that if I remove display names Loom delegates more easily but I need to use Weave more to confirm.
Without display names
Agent config:
With display names:
Agent config: