Marketplace control-loop-extraction
Extract and analyze agent reasoning loops, step functions, and termination conditions. Use when needing to (1) understand how an agent framework implements reasoning (ReAct, Plan-and-Solve, Reflection, etc.), (2) locate the core decision-making logic, (3) analyze loop mechanics and termination conditions, (4) document the step-by-step execution flow of an agent, or (5) compare reasoning patterns across frameworks.
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/dowwie/control-loop-extraction" ~/.claude/skills/aiskillstore-marketplace-control-loop-extraction && rm -rf "$T"
manifest:
skills/dowwie/control-loop-extraction/SKILL.mdsource content
Control Loop Extraction
Extracts and documents the core agent reasoning loop from framework source code.
Process
- Locate the loop - Find the main agent execution loop
- Classify the pattern - Identify ReAct, Plan-and-Solve, Reflection, or Tree-of-Thoughts
- Extract the step function - Document the LLM → Parse → Decide flow
- Map termination - Catalog all loop exit conditions
Reasoning Pattern Identification
Pattern Signatures
ReAct (Reason + Act)
# Signature: Thought → Action → Observation cycle while not done: thought = llm.generate(prompt) # Reasoning action = parse_action(thought) # Action selection observation = execute(action) # Environment feedback prompt = update_prompt(observation) # Loop continuation
Plan-and-Solve
# Signature: Upfront planning, then execution plan = llm.generate("Create a plan for...") for step in plan.steps: result = execute_step(step) if needs_replan(result): plan = replan(...)
Reflection
# Signature: Act → Self-critique → Adjust while not done: action = llm.generate(prompt) result = execute(action) critique = llm.generate(f"Evaluate: {result}") if critique.needs_adjustment: prompt = adjust_approach(critique)
Tree-of-Thoughts
# Signature: Branch → Evaluate → Select thoughts = [generate_thought() for _ in range(n)] scores = [evaluate(t) for t in thoughts] best = select_best(thoughts, scores)
Step Function Analysis
The "step function" is the atomic unit of agent execution. Extract:
- Input Assembly - How context is constructed for the LLM
- LLM Invocation - The actual model call
- Output Parsing - How raw output becomes structured actions
- Action Dispatch - Tool execution vs. final response routing
Key Code Patterns
# Common step function structure def step(self, state): # 1. Assemble input messages = self._build_messages(state) # 2. Call LLM response = self.llm.invoke(messages) # 3. Parse output parsed = self._parse_response(response) # 4. Dispatch if parsed.is_tool_call: return self._execute_tool(parsed.tool, parsed.args) else: return AgentFinish(parsed.final_answer)
Termination Condition Catalog
Common Termination Patterns
| Condition | Implementation | Risk |
|---|---|---|
| Step limit | | May cut off valid execution |
| Token limit | | May truncate mid-thought |
| Explicit finish | | Relies on LLM cooperation |
| Timeout | | Wall-clock unpredictable |
| Loop detection | | Requires state hashing |
| Error threshold | | May exit on recoverable errors |
Anti-Pattern: No Termination Guard
# DANGEROUS: No exit condition while True: result = agent.step() if result.is_done: # What if LLM never outputs done? break
Fix: Always include a step counter:
for step in range(max_steps): result = agent.step() if result.is_done: break else: logger.warning("Hit max steps limit")
Output Template
## Control Loop Analysis: [Framework Name] ### Reasoning Topology - **Pattern**: [ReAct | Plan-and-Solve | Reflection | Tree-of-Thoughts | Hybrid] - **Location**: `path/to/agent.py:L45-L120` ### Step Function - **Input Assembly**: [Description of context building] - **LLM Call**: [Method and parameters] - **Parser**: [How output is structured] - **Dispatch Logic**: [Tool vs Finish decision] ### Termination Conditions 1. [Condition 1 with code reference] 2. [Condition 2 with code reference] 3. ... ### Loop Detection - **Method**: [Heuristic | State hash | None] - **Implementation**: [Code reference or N/A]
Integration Points
- Prerequisite:
to identify agent filescodebase-mapping - Feeds into:
for pattern comparisoncomparative-matrix - Feeds into:
for new loop designarchitecture-synthesis