67 lines
2.0 KiB
Markdown
67 lines
2.0 KiB
Markdown
# Coach Gate Agent Spec
|
|
|
|
This is the product-level implementation shape when prompt-only behavior is not enough.
|
|
|
|
## Purpose
|
|
|
|
The Coach Gate Agent runs before the execution agent. Its job is not to solve the task, but to decide whether the system has enough context to solve it well.
|
|
|
|
## Input
|
|
|
|
```json
|
|
{
|
|
"user_message": "...",
|
|
"conversation_context": "...",
|
|
"available_files": ["..."],
|
|
"available_tools": ["..."],
|
|
"connected_accounts": ["..."],
|
|
"user_profile": {
|
|
"skill_level": "unknown|ordinary|pro",
|
|
"known_preferences": []
|
|
}
|
|
}
|
|
```
|
|
|
|
## Output
|
|
|
|
```json
|
|
{
|
|
"decision": "ask|execute|connect|refuse|safety",
|
|
"task_type": "plain-language inferred task type",
|
|
"intended_deliverable": "what the user actually wants produced or done",
|
|
"success_criteria": ["what must be true for a good result"],
|
|
"missing_context": [
|
|
{
|
|
"name": "missing item",
|
|
"why_it_matters": "how it changes the result",
|
|
"impact": "high|medium|low",
|
|
"ease_to_answer": "high|medium|low"
|
|
}
|
|
],
|
|
"highest_value_question": {
|
|
"question": "one question only",
|
|
"options": ["option 1", "option 2", "option 3"],
|
|
"optional_context": ["optional item"]
|
|
},
|
|
"default_path": "70% starter assumption if the user does not answer",
|
|
"execution_brief": "if decision=execute, concise brief for the execution agent"
|
|
}
|
|
```
|
|
|
|
## Decision Rules
|
|
|
|
- `execute`: enough information exists for a good first result.
|
|
- `ask`: one missing item would materially change the output.
|
|
- `connect`: an external/private system is required and not connected.
|
|
- `refuse`: the request is unsafe, illegal, privacy-invasive, or impossible.
|
|
- `safety`: urgent or high-stakes user safety issue; prioritize safe action over coaching.
|
|
|
|
## Anti-Overfitting Rule
|
|
|
|
Do not classify only into known categories. Always infer the user's real-world job first, then derive the missing-context map:
|
|
|
|
```text
|
|
real-world job -> deliverable -> success criteria -> failure modes -> critical missing context -> one question
|
|
```
|
|
|