smithery.ai

react-pattern

Reasoning and Acting patterns for agentic LLM workflows

First seen May 1, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,749 B
  • docs SUMMARY.md 76 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

ReAct Pattern Skill

Bonded to: react-pattern-agent


Quick Start

Skill("custom-plugin-prompt-engineering:react-pattern")

Parameter Schema

parameters:
  max_iterations:
    type: integer
    default: 10
    description: Maximum reasoning-action cycles

  tool_format:
    type: enum
    values: [openai_function, anthropic_tool, langchain, custom]
    default: openai_function

  termination:
    type: enum
    values: [final_answer, max_iterations, tool_signal]
    default: final_answer

Core Pattern

You are an AI assistant that uses tools to accomplish tasks.

## Available Tools
[Tool definitions with descriptions and parameters]

## Response Format
For each step, use exactly this format:

Thought: [Your reasoning about what to do next]
Action: [tool_name({"param": "value"})]
Observation: [Result from the tool - provided by system]

Continue until you can provide:
Thought: I now have enough information to answer.
Final Answer: [Your complete response]

## Rules
1. Always think before acting
2. Use exactly one tool per action
3. Base decisions on observations
4. Never fabricate tool results
5. Stop when you have sufficient information

Component Definitions

Component Purpose Format
Thought Reasoning about current state Thought: I need to...
Action Tool invocation Action: tool({"param": value})
Observation Tool result (system-provided) Observation: {result}
Final Answer Task completion Final Answer: [response]

Tool Definition Schema

tool_schema:
  name:
    type: string
    description: "Unique identifier for the tool"

  description:
    type: string
    description: "When and why to use this tool"

  parameters:
    type: object
    properties:
      param_name:
        type: string|number|boolean|array|object
        description: "What this parameter does"
        required: true|false

  returns:
    type: string
    description: "What the tool returns"

example:
  name: search
  description: "Search the web for current information"
  parameters:
    query:
      type: string
      description: "Search query"
      required: true
    limit:
      type: integer
      description: "Maximum results"
      required: false
      default: 5
  returns: "List of search results with titles and snippets"

Workflow Patterns

Linear (Sequential)

Thought → Action → Observation → Thought → Action → Observation → Final Answer

Branching (Conditional)

Thought → Action → Observation
                       ↓
            ┌─ if condition A → Path 1
            └─ if condition B → Path 2

Iterative (Refinement)

Thought → Action → Observation
    ↑                    ↓
    └──── not satisfied ─┘
              ↓
         satisfied
              ↓
        Final Answer

Error Handling

error_strategies:
  tool_not_found:
    detection: "Invalid tool name in action"
    response: "List available tools and retry"

  invalid_parameters:
    detection: "Parameter validation fails"
    response: "Show correct schema, ask to retry"

  tool_timeout:
    detection: "No response within timeout"
    response: "Retry once, then proceed without"

  infinite_loop:
    detection: "Exceeds max_iterations"
    response: "Force Final Answer with partial results"

  all_tools_failed:
    detection: "All attempted tools return errors"
    response: "Respond without tools, acknowledge limitation"

Example Implementation

User: What's the weather in Tokyo and should I bring an umbrella?

Thought: I need to find the current weather in Tokyo. I'll use the weather tool.
Action: get_weather({"location": "Tokyo, Japan"})
Observation: {"temperature": 18, "condition": "cloudy", "precipitation_chance": 75%, "forecast": "Rain expected this afternoon"}

Thought: The precipitation chance is 75% with rain expected. I should recommend bringing an umbrella.
Final Answer: The weather in Tokyo is currently 18°C and cloudy. There's a 75% chance of precipitation with rain expected this afternoon. Yes, I recommend bringing an umbrella!

Validation

validation_checklist:
  tool_definitions:
    - [ ] All tools have clear descriptions
    - [ ] Parameters are well-documented
    - [ ] Return values are specified

  format:
    - [ ] Thought/Action/Observation format enforced
    - [ ] Termination conditions clear
    - [ ] Max iterations set

  behavior:
    - [ ] Always thinks before acting
    - [ ] Never fabricates observations
    - [ ] Handles errors gracefully

Troubleshooting

Issue Cause Solution
Never stops No termination condition Add max iterations
Wrong tool used Vague tool descriptions Make descriptions specific
Skips reasoning Format not enforced Add strict format check
Hallucinates results No grounding Require actual tool calls
Inefficient paths No planning Add planning step

Integration

integrates_with:
  - agent-design: Agent architecture
  - prompt-design: Base prompt structure
  - chain-of-thought: Reasoning patterns

tool_frameworks:
  - LangChain agents
  - OpenAI function calling
  - Anthropic tool use
  - Custom implementations

References

See references/GUIDE.md for advanced agent patterns. See assets/config.yaml for configuration options.