155 lines
4.4 KiB
Markdown
155 lines
4.4 KiB
Markdown
# 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 escalation
|
|
- `agents/_negotiation/response-format.md` - Agent response format
|