ReAct Agents (Legacy)
ReAct agents are based on the ReAct research paper and follow a “Reason then Act” pattern. In Letta, agents using the ReAct architecture can reason and call tools in a loop but lack the long-term memory capabilities of standard Letta agents.
Architecture
Section titled “Architecture”ReAct agents maintain conversation context through summarization but cannot edit their own memory or access historical messages beyond the context window.
Key differences from MemGPT agents:
- No read-write memory blocks or memory editing tools
- No access to evicted conversation history
- Simple conversation summarization instead of recursive memory management
- Tool calling without persistent state beyond the current session
When to use ReAct agents:
- Tool-calling tasks that don’t require long-term memory
- Stateless interactions where conversation summarization is sufficient
Creating ReAct Agents
Section titled “Creating ReAct Agents”To create a ReAct agent, simply use the react_agent agent type when creating your agent.
There is no need to pass any memory blocks to the agent, since ReAct agents do not have any long-term memory.
import { LettaClient } from "@letta-ai/letta-client";
const client = new LettaClient({ token: "LETTA_API_KEY" });
// create the ReAct agentconst agent = await client.agents.create({ agentType: "react_agent", model: "openai/gpt-4.1", embedding: "openai/text-embedding-3-small", tools: ["web_search", "run_code"],});from letta_client import Letta
client = Letta(token="LETTA_API_KEY")
# create the ReAct agentagent = client.agents.create( agent_type="react_agent", model="openai/gpt-4.1", embedding="openai/text-embedding-3-small", tools=["web_search", "run_code"])curl -X POST https://api.letta.com/v1/agents \ -H "Authorization: Bearer $LETTA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "agent_type": "react_agent", "model": "openai/gpt-4.1", "embedding": "openai/text-embedding-3-small", "tools": ["web_search", "run_code"]}'