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.
316 lines (243 loc) • 7.53 kB
Markdown
# TAO Loop Standardization Rules
**Enforcement Level**: HIGH
**Scope**: All iterative agent execution (Ralph loops, agent tasks)
**Research Basis**: REF-018 ReAct Methodology
**Issue**: #162
## Overview
These rules standardize the Thought→Action→Observation (TAO) loop across all iterative agent execution, ensuring consistent reasoning traces and tool grounding.
## Research Foundation
From REF-018 ReAct (Yao et al., 2022):
- ReAct interleaving thoughts and actions improves performance by 34%
- Explicit TAO structure reduces hallucinations to 0% (vs 56% without)
- TAO loops enable better monitoring, debugging, and oversight
- Standardized format enables cross-agent learning
## TAO Loop Structure
### Canonical Format
Every iteration MUST follow this structure:
```
THOUGHT: [reasoning about current state and next step]
ACTION: [specific action to take with parameters]
OBSERVATION: [result of the action]
```
### Detailed Format
```yaml
tao_iteration:
iteration_number: 1
thought:
type: reasoning # goal, progress, extraction, reasoning, exception, synthesis
content: "I need to find the authentication module to fix the token issue"
confidence: 0.85
timestamp: "2026-01-25T10:30:00Z"
action:
tool: grep
parameters:
pattern: "authenticate"
path: "src/"
rationale: "Searching for authentication-related code"
timestamp: "2026-01-25T10:30:01Z"
observation:
result: |
src/auth/authenticate.ts:42: export function authenticate(token: string)
src/auth/middleware.ts:15: import { authenticate } from './authenticate'
status: success # success, failure, partial, timeout
duration_ms: 150
timestamp: "2026-01-25T10:30:01.150Z"
```
## Mandatory TAO Elements
### Thought Requirements
Every THOUGHT must include:
1. **Type Classification**: One of the six thought types from `@.claude/rules/thought-protocol.md`
2. **Clear Intent**: What the agent is trying to achieve
3. **Justification**: Why this action is being taken
**Good Example**:
```
THOUGHT [Reasoning]: The error message indicates a token expiration issue.
I should check the token TTL configuration in the auth module because
the default 60-second TTL is likely too short for our use case.
```
**Bad Example**:
```
THOUGHT: Looking at the code.
```
### Action Requirements
Every ACTION must include:
1. **Tool Name**: Specific tool being invoked
2. **Parameters**: All parameters with values
3. **Rationale**: Why this tool/action was chosen
**Good Example**:
```
ACTION: Read
file_path: src/auth/config.ts
rationale: Checking TTL configuration value
```
**Bad Example**:
```
ACTION: Reading the file
```
### Observation Requirements
Every OBSERVATION must include:
1. **Result**: Actual output from the action
2. **Status**: success, failure, partial, timeout
3. **Key Extraction**: What was learned from the result
**Good Example**:
```
OBSERVATION [Success]:
Result: TOKEN_TTL = 60 // seconds
Extraction: Found TTL is set to 60 seconds, confirming hypothesis.
This explains the frequent re-authentication errors.
```
**Bad Example**:
```
OBSERVATION: Got the result
```
## Loop Execution Rules
### Rule 1: No Action Without Thought
**FORBIDDEN**:
```
ACTION: Edit file.ts # No preceding thought
```
**REQUIRED**:
```
THOUGHT: The TTL value needs to be increased to 3600 seconds.
ACTION: Edit file.ts to change TTL from 60 to 3600
```
### Rule 2: No Thought Without Follow-Up
**FORBIDDEN**:
```
THOUGHT: I should check the config file.
THOUGHT: Maybe I should look at logs too. # No action taken
```
**REQUIRED**:
```
THOUGHT: I should check the config file for TTL value.
ACTION: Read src/auth/config.ts
OBSERVATION: [result]
```
### Rule 3: Complete TAO Triplets
Every iteration MUST be a complete triplet. Partial iterations indicate:
- Loop interruption (should be logged)
- Agent failure (should trigger recovery)
- Human intervention needed
### Rule 4: Observation Grounding
Thoughts in subsequent iterations MUST reference observations:
**Good Example**:
```
OBSERVATION [Iteration 1]: TTL = 60 seconds
...
THOUGHT [Iteration 2]: Based on the TTL value of 60 seconds found in
the config, I need to increase it to 3600 for production use.
```
**Bad Example**:
```
OBSERVATION [Iteration 1]: TTL = 60 seconds
...
THOUGHT [Iteration 2]: I'll update the TTL to some larger value.
```
## Integration with Ralph
### Ralph TAO Logging
Ralph loops MUST log all TAO iterations:
```yaml
ralph_tao_log:
loop_id: "ralph-001"
task: "Fix authentication tests"
iterations:
- iteration: 1
thought:
type: goal
content: "Fix the failing authentication tests"
action:
tool: bash
command: "npm test -- --grep auth"
observation:
status: failure
result: "3 tests failed"
- iteration: 2
thought:
type: extraction
content: "From test output, token expiration is the issue"
action:
tool: read
path: "src/auth/config.ts"
observation:
status: success
result: "TOKEN_TTL = 60"
```
### TAO Metrics
Track TAO loop metrics:
| Metric | Description |
|--------|-------------|
| iterations_count | Total TAO iterations |
| thought_type_distribution | Count by thought type |
| action_tool_distribution | Count by tool used |
| observation_success_rate | % successful observations |
| thought_to_action_ratio | Should be ~1.0 |
| grounding_score | % thoughts referencing observations |
## Error Handling
### Observation Failures
When an action fails:
```yaml
on_observation_failure:
required_response:
- express_exception_thought
- analyze_failure_cause
- determine_recovery_action
- continue_with_new_tao_iteration
forbidden:
- skip_observation_logging
- proceed_without_analysis
- repeat_same_action_unchanged
```
### Timeout Handling
```yaml
on_action_timeout:
log_partial_observation: true
express_exception_thought: true
options:
- retry_with_increased_timeout
- try_alternative_action
- escalate_for_human_intervention
```
## Agent Protocol
### TAO Execution Protocol
```yaml
tao_execution:
pre_iteration:
- check_loop_termination_conditions
- load_context_from_previous_observations
thought_phase:
- classify_thought_type
- express_thought_with_reasoning
- validate_thought_completeness
action_phase:
- select_appropriate_tool
- validate_tool_parameters
- execute_action
- capture_timing_metrics
observation_phase:
- capture_action_result
- classify_observation_status
- extract_key_information
- log_observation
post_iteration:
- update_progress_state
- check_for_loop_completion
- prepare_for_next_iteration
```
## Validation Checklist
Before completing any TAO loop:
- [ ] All iterations are complete triplets (T→A→O)
- [ ] All thoughts have type classification
- [ ] All actions have tool and parameters
- [ ] All observations have status and result
- [ ] Subsequent thoughts reference prior observations
- [ ] Loop metrics captured
- [ ] Error handling followed protocol
## References
- @.claude/rules/thought-protocol.md - Six thought types
- @agentic/code/addons/ralph/schemas/iteration-analytics.yaml - Iteration tracking
- @.aiwg/research/findings/REF-018-react.md - ReAct research
- @.aiwg/research/synthesis/topic-04-tool-grounding.md - Tool grounding
- #162 - Implementation issue
**Rule Status**: ACTIVE
**Last Updated**: 2026-01-25