4.4 KiB
4.4 KiB
Negotiation Protocol
比较查询和跨领域问题的处理协议
When to Enable Negotiation
For complex queries requiring structured agent responses, enable negotiation mode.
| Query Pattern | Enable Negotiation | Reason |
|---|---|---|
| Single error code lookup | No | Direct answer |
| Single crate version | No | Direct lookup |
| "Compare X and Y" | Yes | Multi-faceted |
| Domain + error | Yes | Cross-layer context |
| "Best practices for..." | Yes | Requires synthesis |
| Ambiguous scope | Yes | Needs clarification |
| Multi-crate question | Yes | Multiple sources |
Negotiation Decision Flow
Query Received
│
▼
┌─────────────────────────────┐
│ Is query single-lookup? │
│ (version, error code, def) │
└─────────────────────────────┘
│
├── Yes → Direct dispatch (no negotiation)
│
▼ No
┌─────────────────────────────┐
│ Does query require: │
│ - Comparison? │
│ - Cross-domain context? │
│ - Synthesis/aggregation? │
│ - Multiple sources? │
└─────────────────────────────┘
│
├── Yes → Dispatch with negotiation: true
│
▼ No
┌─────────────────────────────┐
│ Is scope ambiguous? │
└─────────────────────────────┘
│
├── Yes → Dispatch with negotiation: true
│
▼ No
└── Direct dispatch (no negotiation)
Negotiation Dispatch
When dispatching with negotiation:
1. Set `negotiation: true`
2. Include original query context
3. Expect structured response:
- Findings
- Confidence (HIGH/MEDIUM/LOW/UNCERTAIN)
- Gaps identified
- Context questions (if any)
4. Evaluate response against original intent
Orchestrator Evaluation
After receiving negotiation response:
| Confidence | Intent Coverage | Action |
|---|---|---|
| HIGH | Complete | Synthesize answer |
| HIGH | Partial | May need supplementary query |
| MEDIUM | Complete | Accept with disclosed gaps |
| MEDIUM | Partial | Refine with context |
| LOW | Any | Refine or try alternative |
| UNCERTAIN | Any | Try alternative or escalate |
Refinement Loop
If response insufficient:
Round 1: Initial query
│
▼ (LOW confidence or gaps block intent)
Round 2: Refined query with:
- Answers to agent's context questions
- Narrowed scope
│
▼ (still insufficient)
Round 3: Final attempt with:
- Alternative agent/source
- Maximum context provided
│
▼ (still insufficient)
Synthesize best-effort answer with disclosed gaps
Integration with 3-Strike Rule
Negotiation follows the 3-Strike escalation:
Strike 1: Initial query returns LOW confidence
→ Refine with more context
Strike 2: Refined query still LOW
→ Try alternative agent/source
Strike 3: Still insufficient
→ Synthesize best-effort answer
→ Report gaps to user explicitly
See _meta/error-protocol.md for full escalation rules.
Negotiation Routing Examples
Example 1: No Negotiation Needed
Query: "What is tokio's latest version?"
Analysis: Single lookup
Action: Direct dispatch to crate-researcher
Example 2: Negotiation Required
Query: "Compare tokio and async-std for a web server"
Analysis: Comparative + domain context
Action: Dispatch with negotiation: true
Expected: Structured responses from both runtime lookups
Evaluation: Check if web-server specific data found
Example 3: Cross-Domain Negotiation
Query: "E0382 in my trading system"
Analysis: Error code + domain context
Action:
- Dispatch m01-ownership (standard - error is defined)
- Dispatch domain-fintech (negotiation: true - domain context)
Synthesis: Combine error explanation with domain-appropriate fix
Related Documents
_meta/negotiation-protocol.md- Full protocol specification_meta/negotiation-templates.md- Response templates_meta/error-protocol.md- 3-Strike escalationagents/_negotiation/response-format.md- Agent response format