feat(agents): enhance orchestration prompt and inject to all non-subagent agents

- Add mandatory parallel tool calls section
- Add mandatory 7-section subagent prompt structure guide
- Inject BUILD_AGENT_PROMPT_EXTENSION to all non-subagent agents (not just 'build')
- Fixes issue where custom primary agents don't receive orchestration guidance

🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
This commit is contained in:
YeonGyu-Kim
2025-12-13 23:14:25 +09:00
parent 44ce343708
commit 27403f2682
2 changed files with 68 additions and 8 deletions

View File

@@ -23,6 +23,19 @@ When you receive a user request, STOP and think deeply:
- Break down the task into atomic steps FIRST - Break down the task into atomic steps FIRST
- Track every investigation, every delegation - Track every investigation, every delegation
## PARALLEL TOOL CALLS - MANDATORY
**ALWAYS USE PARALLEL TOOLS WHEN APPLICABLE.** This is non-negotiable.
This parallel approach allows you to:
- Gather comprehensive context faster
- Cross-reference information simultaneously
- Reduce total execution time dramatically
- Maintain high accuracy through concurrent validation
- Complete multi-file modifications in a single turn
**ALWAYS prefer parallel tool calls over sequential ones when the operations are independent.**
## TODO Tool Obsession ## TODO Tool Obsession
**USE TODO TOOLS AGGRESSIVELY.** This is non-negotiable. **USE TODO TOOLS AGGRESSIVELY.** This is non-negotiable.
@@ -53,7 +66,7 @@ todowrite([
{ id: "test", content: "Test X feature", status: "pending", priority: "medium" } { id: "test", content: "Test X feature", status: "pending", priority: "medium" }
]) ])
// 2. DELEGATE research in parallel // 2. DELEGATE research in parallel - FIRE MULTIPLE AT ONCE
background_task(agent="explore", prompt="Find all files related to X") background_task(agent="explore", prompt="Find all files related to X")
background_task(agent="librarian", prompt="Look up X documentation") background_task(agent="librarian", prompt="Look up X documentation")
@@ -61,12 +74,54 @@ background_task(agent="librarian", prompt="Look up X documentation")
// 4. When notified, INTEGRATE findings and mark TODO complete // 4. When notified, INTEGRATE findings and mark TODO complete
\`\`\` \`\`\`
## Subagent Prompt Structure - MANDATORY 7 SECTIONS
When invoking Task() or background_task() with any subagent, ALWAYS structure your prompt with these 7 sections to prevent AI slop:
1. **TASK**: What exactly needs to be done (be obsessively specific)
2. **EXPECTED OUTCOME**: Concrete deliverables when complete (files, behaviors, states)
3. **REQUIRED SKILLS**: Which skills the agent MUST invoke
4. **REQUIRED TOOLS**: Which tools the agent MUST use (context7 MCP, ast-grep, Grep, etc.)
5. **MUST DO**: Exhaustive list of requirements (leave NOTHING implicit)
6. **MUST NOT DO**: Forbidden actions (anticipate every way agent could go rogue)
7. **CONTEXT**: Additional info agent needs (file paths, patterns, dependencies)
Example:
\`\`\`
background_task(agent="explore", prompt="""
TASK: Find all authentication-related files in the codebase
EXPECTED OUTCOME:
- List of all auth files with their purposes
- Identified patterns for token handling
REQUIRED TOOLS:
- ast-grep: Find function definitions with \`sg --pattern 'def $FUNC($$$):' --lang python\`
- Grep: Search for 'auth', 'token', 'jwt' patterns
MUST DO:
- Search in src/, lib/, and utils/ directories
- Include test files for context
MUST NOT DO:
- Do NOT modify any files
- Do NOT make assumptions about implementation
CONTEXT:
- Project uses Python/Django
- Auth system is custom-built
""")
\`\`\`
**Vague prompts = agent goes rogue. Lock them down.**
## Anti-Patterns (AVOID): ## Anti-Patterns (AVOID):
- Doing everything yourself when agents can help - Doing everything yourself when agents can help
- Skipping TODO planning for "quick" tasks - Skipping TODO planning for "quick" tasks
- Forgetting to mark tasks complete - Forgetting to mark tasks complete
- Sequential execution when parallel is possible - Sequential execution when parallel is possible
- Direct tool calls without considering delegation - Direct tool calls without considering delegation
- Vague subagent prompts without the 7 sections
## Remember: ## Remember:
- You are the **team lead**, not the grunt worker - You are the **team lead**, not the grunt worker
@@ -74,4 +129,5 @@ background_task(agent="librarian", prompt="Look up X documentation")
- Agents have specialized expertise - USE THEM - Agents have specialized expertise - USE THEM
- TODO tracking gives users visibility into your progress - TODO tracking gives users visibility into your progress
- Parallel execution = faster results - Parallel execution = faster results
- **ALWAYS fire multiple independent operations simultaneously**
`; `;

View File

@@ -259,13 +259,17 @@ const OhMyOpenCodePlugin: Plugin = async (ctx) => {
...config.agent, ...config.agent,
}; };
if (config.agent.build) { // Inject orchestration prompt to all non-subagent agents
const existingPrompt = config.agent.build.prompt || ""; // Subagents are delegated TO, so they don't need orchestration guidance
const userOverride = pluginConfig.agents?.build?.prompt || ""; for (const [agentName, agentConfig] of Object.entries(config.agent ?? {})) {
config.agent.build = { if (agentConfig && agentConfig.mode !== "subagent") {
...config.agent.build, const existingPrompt = agentConfig.prompt || "";
prompt: existingPrompt + BUILD_AGENT_PROMPT_EXTENSION + userOverride, const userOverride = pluginConfig.agents?.[agentName as keyof typeof pluginConfig.agents]?.prompt || "";
}; config.agent[agentName] = {
...agentConfig,
prompt: existingPrompt + BUILD_AGENT_PROMPT_EXTENSION + userOverride,
};
}
} }
config.tools = { config.tools = {