-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopencode.jsonc
More file actions
163 lines (163 loc) · 5.18 KB
/
Copy pathopencode.jsonc
File metadata and controls
163 lines (163 loc) · 5.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
{
"$schema": "https://opencode.ai/config.json",
// Appended to every agent's system prompt (including the built-in
// plan/build prompts, which cannot be extended per-agent).
// Relative path: resolved to absolute at install time.
"instructions": ["./yagni.md"],
// The plugin is auto-discovered from plugin/ (no "plugin" array needed).
// Commands live in command/*.md (/usage, /reload_models).
"provider": {
"saia-gwdg": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://chat-ai.academiccloud.de/v1"
}
}
},
"agent": {
"plan": {
// No temperature: plan's pinned model (deepseek-v4-flash) is NOT one
// opencode auto-injects a temperature for, so we leave its provider
// default alone (DeepSeek reasoners want it). No steps cap either: long
// autonomous runs must not be cut off mid-task — the plugin's budget
// pacer is the runaway guard.
"color": "warning"
},
// Stub so the plugin's ROLE_MODELS can pin the built-in build agent's
// model (the plugin skips roles absent from config.agent).
// temperature 0.2: build's pinned model (qwen3-coder-next) IS one opencode
// auto-injects a temperature for (0.55); 0.2 overrides it to match @coder
// for deterministic implementation. No steps cap, same reason as plan.
"build": {
"temperature": 0.2
},
// Native opencode subagents. Declared as stubs so they survive every install
// path (the filter only deletes named custom agents) AND so the plugin's
// ROLE_MODELS can pin them a model — otherwise no subagent survives when both
// custom primaries (solo/auto) are declined.
"general": {},
"explore": {},
"solo": {
"description": "Default workhorse: plans, implements, self-checks in one session, then independent @debugger validation (~5-12 requests/task)",
"mode": "primary",
"model": "saia-gwdg/qwen3-coder-next",
"temperature": 0.2,
"steps": 25,
"prompt": "{file:./prompts/solo.md}",
"permission": {
"edit": "allow",
"bash": "allow",
"write": "allow",
"task": {
// "*" MUST come first: opencode resolves these last-match-wins, so a
// trailing "*" would deny every subagent and remove the task tool.
"*": "deny",
"debugger": "allow"
}
},
"tools": {
"skill": false,
"todowrite": false,
"webfetch": false
}
},
"auto": {
"description": "Orchestrator for big/ambiguous multi-file tasks: plan → implement → validate loop (max 1 fix round)",
"mode": "primary",
"model": "saia-gwdg/qwen3.5-122b-a10b",
"temperature": 0.2,
"steps": 10,
"prompt": "{file:./prompts/auto.md}",
"permission": {
"read": "allow",
"glob": "allow",
"grep": "allow",
"list": "allow",
"edit": "deny",
"bash": "deny",
"write": "deny",
"task": {
// "*" MUST come first: opencode resolves these last-match-wins, so a
// trailing "*" would deny every subagent and remove the task tool.
"*": "deny",
"researcher": "allow",
"coder": "allow",
"coder2": "allow",
"debugger": "allow"
}
},
"tools": {
"skill": false,
"todowrite": false,
"webfetch": false
}
},
"coder": {
"description": "Implementation agent: executes an audited PLAN, returns CHANGES block",
"mode": "subagent",
"model": "saia-gwdg/qwen3-coder-next",
"temperature": 0.2,
"steps": 20,
"prompt": "{file:./prompts/coder.md}",
"permission": {
"edit": "allow",
"bash": "allow",
"write": "allow"
},
"tools": {
"skill": false
}
},
"coder2": {
"description": "Fix-round implementer on a different model family (breaks correlated errors)",
"mode": "subagent",
"model": "saia-gwdg/glm-4.7",
"temperature": 0.2,
"steps": 20,
"prompt": "{file:./prompts/coder.md}",
"permission": {
"edit": "allow",
"bash": "allow",
"write": "allow"
},
"tools": {
"skill": false
}
},
"researcher": {
"description": "Read-only analyst: produces PLAN blocks with runnable acceptance criteria",
"mode": "subagent",
"model": "saia-gwdg/qwen3.5-122b-a10b",
"temperature": 0.2,
"steps": 8,
"prompt": "{file:./prompts/researcher.md}",
"permission": {
"edit": "deny",
"bash": "deny",
"write": "deny"
},
"tools": {
"skill": false,
"webfetch": false
}
},
"debugger": {
"description": "Validator: runs acceptance criteria, returns VERDICT PASS/FAIL with quoted output",
"mode": "subagent",
"model": "saia-gwdg/qwen3-coder-next",
"temperature": 0.1,
"steps": 8,
"prompt": "{file:./prompts/debugger.md}",
"permission": {
"edit": "allow",
"bash": "allow",
"write": "allow"
},
"tools": {
"skill": false,
"todowrite": false,
"webfetch": false
}
}
}
}