Skip to content

v0.1.0 - Chain-of-Thought Loop

Choose a tag to compare

@dalehurley dalehurley released this 15 Feb 06:14
· 20 commits to main since this release

🧠 Chain-of-Thought Loop

This release introduces a new agentic loop pattern focused on deep reasoning through iterative self-reflection.

What's New

Chain-of-Thought Loop

  • New trait: ChainOfThoughtLoop - Enables progressive reasoning with confidence evaluation
  • Streaming support: Real-time streaming of reasoning iterations via chainOfThoughtStream()
  • Self-reflection: Automatic confidence checks between reasoning cycles
  • Full transparency: Shows step-by-step thinking process to users

Supporting Classes

  • CoTResult - Enhanced result object with reasoning metadata
  • CoTStep - Value object for each reasoning iteration
  • CoTPrompts - Reusable prompt templates for CoT reasoning

Lifecycle Callbacks (6 new callbacks)

  • onIterationStart - When reasoning iteration begins
  • onBeforeReasoning - Before LLM reasons through problem
  • onAfterReasoning - After reasoning step completes
  • onReflection - When confidence evaluation occurs
  • onLoopComplete - When agent reaches confident answer
  • onMaxIterationsReached - When iteration limit is hit

Plus all standard action callbacks (onBeforeAction, onAfterAction)

Configuration

  • max_reasoning_iterations - Control iteration limits (default: 5)
  • throw_on_max_iterations - Configure error handling
  • Environment variable support via AGENTIC_COT_MAX_ITERATIONS

Documentation

  • New tutorial: Streaming Chain-of-Thought Loop
  • Complete code examples with backend routes and React frontend
  • Comparison tables: CoT vs ReAct vs Plan-Execute
  • Best practices and customization guide
  • Screenshots demonstrating the UI

Tests

  • Comprehensive unit tests with 20+ test cases
  • Integration tests with real API calls
  • 100% coverage of CoT loop logic

When to Use Chain-of-Thought

Use CoT when:

  • ✅ The reasoning process needs to be visible/auditable
  • ✅ You need to demonstrate understanding, not just results
  • ✅ The problem requires careful, step-by-step analysis
  • ✅ Users want to see "how" the agent thinks
  • ✅ Confidence in the answer is critical

Quick Example

```php
use Laragentic\Loops\ChainOfThoughtLoop;

class MathAgent implements Agent, HasTools
{
use Promptable, ChainOfThoughtLoop;

public function instructions(): string
{
    return 'Think step-by-step. Evaluate your confidence. '
         . 'Only answer when you're certain.';
}

}

$result = (new MathAgent)->chainOfThought(
'Which train is faster and by how much?'
);

echo $result->text();
echo "Reasoning iterations: {$result->reasoningIterations}";
```

Breaking Changes

None - fully backward compatible with v0.0.2

Updated Documentation

  • README updated with Chain-of-Thought section
  • Tutorial links updated
  • Configuration documented
  • All existing tutorials updated with CoT references

Full Changelog: v0.0.2...v0.1.0