Agent Patterns¶
SecondBrain ships a canonical agent-pattern library in brain/patterns/.
Purpose¶
- expose reusable reasoning and execution patterns
- keep them usable offline during development
- share one provider/tool/result model across patterns
Active Pattern Set¶
The current public surface is centered on seven core patterns plus composition and async helpers.
Core Patterns¶
| Pattern | Use It For |
|---|---|
ReActAgent |
tool use and iterative observation loops |
PlanAndExecuteAgent |
explicit planning before step execution |
ReflexionAgent |
self-critique and bounded retries |
MultiAgentOrchestrator |
parallel subtasks with synthesis |
RAGAgent |
retrieval-augmented question answering |
StreamingReActAgent |
event-by-event streaming UIs |
HITLAgent |
approval-gated tool use |
Additional Public Helpers¶
Agentas a higher-level entrypointPatternChainandPatternRouterfor composition- async variants such as
AsyncReActAgentandrun_concurrent() - testing helpers such as
AgentHarnessandMockProvider
Quick Start¶
from brain.patterns import ReActAgent, RAGAgent
agent = ReActAgent()
result = agent.run("What is retrieval-augmented generation?")
print(result.answer)
rag = RAGAgent(retriever=my_retriever)
result = rag.run("What changed in our auth subsystem?")
print(result.answer)
Common Supporting Utilities¶
The patterns package also includes:
- typed tool helpers
- prompt registry primitives
- tracing helpers
- conversation-memory helpers
- deterministic testing support
These live in the same package so pattern consumers do not need to reinvent the supporting runtime every time.
Choosing A Pattern¶
- choose
ReActAgentwhen you need tool use - choose
PlanAndExecuteAgentwhen the task benefits from explicit decomposition - choose
ReflexionAgentwhen answer quality matters more than raw latency - choose
RAGAgentwhen retrieval quality is the main concern - choose
HITLAgentwhen the tool surface should stop for review - choose
MultiAgentOrchestratoronly when subtasks are genuinely parallelizable
Implementation Pointers¶
brain/patterns/__init__.pybrain/patterns/react.pybrain/patterns/plan_execute.pybrain/patterns/reflexion.pybrain/patterns/rag.pybrain/patterns/multi_agent.pybrain/patterns/testing.py