aiwg
Version:
Cognitive architecture for AI-augmented software development with structured memory, ensemble validation, and closed-loop correction. FAIR-aligned artifacts, 84% cost reduction via human-in-the-loop, standards adopted by 100+ organizations.
309 lines (236 loc) • 10.1 kB
Markdown
# Thought Protocol Rules
**Enforcement Level**: MEDIUM
**Scope**: All tool-using agents
**Research Basis**: REF-018 ReAct Methodology
**Issue**: #158
## Overview
These rules integrate seven thought types from ReAct methodology into agent system prompts for enhanced reasoning transparency and tool usage.
## Research Foundation
From REF-018 ReAct (Yao et al., 2022):
- ReAct improves success rates by 34% on HotpotQA
- Reduces hallucinations to 0% with tool grounding (vs 56% without)
- Seven distinct thought types structure reasoning effectively
- Explicit thought types enable better monitoring and debugging
- Research thought type prevents uninformed action (addresses top user complaint)
## Seven Thought Types
### Type Definitions
| Type | Purpose | Example |
|------|---------|---------|
| **Goal** | State the objective | "I need to implement user authentication" |
| **Research** | Identify what to look up before acting | "I need to find out how this project handles auth before proceeding" |
| **Progress** | Track completion | "So far I have created the login component" |
| **Extraction** | Pull key data from observations | "From the error log, the key issue is missing token" |
| **Reasoning** | Explain logic | "This means I should add token validation because..." |
| **Exception** | Flag inconsistencies | "Wait, this doesn't match the requirement because..." |
| **Synthesis** | Draw conclusions | "Combining all evidence, the best approach is..." |
### Thought Type Protocol
```markdown
## Thought Protocol
For each step, express your thinking using appropriate thought types:
**Goal Thought** 🎯
- Format: "Goal: I need to accomplish [objective]"
- Use: At start of task and when switching sub-goals
- Example: "Goal: I need to fix the failing authentication tests"
**Research Thought** 🔬
- Format: "Research: I need to find out [information] because [reason]"
- Use: Before making technical decisions, when encountering unfamiliar APIs/patterns, before choosing an approach
- Example: "Research: I need to find out how this project handles token refresh before I modify the auth middleware"
- Triggers: Search, read, grep, glob, or web search actions — NOT code modifications
- See: @agentic/code/addons/aiwg-utils/rules/research-before-decision.md
**Progress Thought** 📊
- Format: "Progress: So far I have completed [items]"
- Use: After completing steps, to maintain context
- Example: "Progress: I have identified the failing test and located the bug"
**Extraction Thought** 🔍
- Format: "Extraction: From [source], the key data is [data]"
- Use: After reading files, running commands, observing output
- Example: "Extraction: From the test output, the error is 'Token expired'"
**Reasoning Thought** 💭
- Format: "Reasoning: This means I should [action] because [justification]"
- Use: Before making decisions or taking actions
- Example: "Reasoning: I should refresh the token before retrying because it's expired"
**Exception Thought** ⚠️
- Format: "Exception: Wait, [inconsistency] because [explanation]"
- Use: When something unexpected occurs or doesn't make sense
- Example: "Exception: Wait, the token shouldn't expire this quickly - the TTL is wrong"
**Synthesis Thought** ✅
- Format: "Synthesis: Combining all evidence, the conclusion is [conclusion]"
- Use: At end of investigation or before final decision
- Example: "Synthesis: The root cause is the TTL config, and the fix is to update the constant"
```
## Agent Prompt Integration
### System Prompt Addition
Add to all tool-using agent system prompts:
```markdown
## Thinking Protocol
When working on tasks, express your thinking explicitly using thought types:
1. **Goal** 🎯 - State what you're trying to achieve
2. **Research** 🔬 - Identify what to look up before acting
3. **Progress** 📊 - Summarize what's been done
4. **Extraction** 🔍 - Pull key data from observations
5. **Reasoning** 💭 - Explain your logic
6. **Exception** ⚠️ - Flag surprises or inconsistencies
7. **Synthesis** ✅ - Draw conclusions from evidence
This protocol helps maintain clarity and enables better oversight.
```
### Per-Agent Customization
Different agents may emphasize different thought types:
| Agent | Primary Thoughts | Secondary Thoughts |
|-------|-----------------|-------------------|
| Architecture Designer | Research, Reasoning, Synthesis | Goal, Exception |
| Requirements Analyst | Research, Extraction, Reasoning | Goal, Progress |
| Technical Researcher | Research, Extraction | Reasoning, Synthesis |
| Test Engineer | Goal, Extraction | Research, Exception, Synthesis |
| Security Auditor | Research, Exception, Reasoning | Extraction, Synthesis |
| Debugger | Research, Extraction, Exception | Reasoning, Synthesis |
| Software Implementer | Research, Goal | Reasoning, Progress |
## Thought Formatting
### Inline Format
For simple thoughts within conversation:
```
Goal: Fix the authentication bug in login.ts
Research: I need to check how the token parsing works in this project
before I change anything. Let me read the auth module.
Extraction: From the error log:
- Error: "JWT malformed"
- File: src/auth/login.ts:42
- Timestamp: 2026-01-25T10:30:00Z
Reasoning: The token parsing is failing because the header
format changed in the latest update. I should update the
parser to handle both formats.
Synthesis: The fix requires updating the token parser to
be backwards-compatible with the old format.
```
### Structured Format
For complex tasks, use structured blocks:
```markdown
### Thought: Goal
I need to implement the user registration flow per UC-002.
### Thought: Research
Before implementing, I need to check how the existing user model is
structured and what email service the project uses. Let me read the
user module and search for email-related code.
### Thought: Progress
✓ Created user model
✓ Added validation schema
○ Implement API endpoint (current)
○ Add database migration
○ Write tests
### Thought: Extraction
From the requirements:
- Email must be unique
- Password requires: 8+ chars, 1 uppercase, 1 number
- Must send verification email
### Thought: Reasoning
I should use the existing email service for verification
because it already handles templates and delivery tracking.
### Thought: Exception
Wait - the requirements say "unique email" but the schema
allows duplicate emails. I need to add a unique constraint.
### Thought: Synthesis
The implementation plan is:
1. Add unique constraint to user email
2. Use existing email service for verification
3. Follow password validation pattern from login
```
## Logging and Monitoring
### Thought Type Logging
Ralph loops SHOULD log thought types for analysis:
```yaml
thought_log:
loop_id: "ralph-001"
thoughts:
- type: goal
content: "Fix authentication tests"
timestamp: "2026-01-25T10:30:00Z"
iteration: 1
- type: extraction
content: "Error: Token expired at line 42"
timestamp: "2026-01-25T10:30:15Z"
iteration: 1
- type: exception
content: "TTL should be 3600, found 60"
timestamp: "2026-01-25T10:30:30Z"
iteration: 1
```
### Thought Type Metrics
Track thought type distribution:
| Metric | Description |
|--------|-------------|
| thought_type_count | Count by type per loop |
| exception_rate | Exceptions / total thoughts |
| synthesis_quality | Manual rating of conclusions |
| thought_sequence_patterns | Common thought sequences |
## Agent Protocol
### Thought-Augmented Execution
```yaml
agent_execution:
steps:
- express_goal_thought
- express_research_thought # What do I need to look up?
- perform_research_actions # Search, read, grep — NOT modify
- express_extraction_thought
- execute_step:
- express_reasoning_thought
- perform_action
- express_extraction_thought
- check_for_exceptions
- after_each_iteration:
- express_progress_thought
- on_completion:
- express_synthesis_thought
```
### Exception Handling
When Exception thought is expressed:
```yaml
on_exception_thought:
steps:
- log_exception
- pause_execution_if_critical
- re_evaluate_approach
- update_goal_if_needed
- continue_with_adjusted_plan
```
## Agents to Update
The following agents MUST include thought protocol:
| Agent | Priority |
|-------|----------|
| Architecture Designer | HIGH |
| Requirements Analyst | HIGH |
| Test Engineer | HIGH |
| Security Auditor | HIGH |
| Software Implementer | MEDIUM |
| Debugger | HIGH |
| Code Reviewer | MEDIUM |
| Technical Writer | LOW |
## Validation
### Pre-Execution Check
Before executing complex tasks, verify agent has:
- [ ] Expressed Goal thought
- [ ] Expressed Research thought (what needs to be looked up)
- [ ] Performed research actions (search/read/grep)
- [ ] Identified key constraints (Extraction/Reasoning)
- [ ] Planned approach (Reasoning)
### Post-Execution Check
After completing tasks, verify:
- [ ] Progress thoughts tracked completion
- [ ] Any exceptions were addressed
- [ ] Synthesis thought summarizes outcome
## Benefits
1. **Reduced Hallucinations**: Tool grounding via Extraction thoughts
2. **Fewer Blind Retries**: Research thoughts force investigation before action
3. **Better Debugging**: Thought logs enable tracing decisions
4. **Quality Improvement**: Exception thoughts catch errors early
5. **Knowledge Transfer**: Reasoning thoughts document decisions
6. **Human Oversight**: Thought protocol enables effective review
## References
- @.aiwg/research/findings/REF-018-react.md - ReAct research
- @agentic/code/frameworks/sdlc-complete/agents/ - Agent definitions
- @.aiwg/research/synthesis/topic-04-tool-grounding.md - Tool grounding
- @.claude/rules/reasoning-sections.md - Reasoning patterns
- @agentic/code/addons/aiwg-utils/rules/research-before-decision.md - Research enforcement
- @agentic/code/addons/aiwg-utils/rules/instruction-comprehension.md - Instruction following
- #158 - Implementation issue
**Rule Status**: ACTIVE
**Last Updated**: 2026-02-08