Agent Frameworks
How do you build a ReAct agent loop manually with Claude?
QUICK ANSWER
Build a manual ReAct loop by creating a while-loop that passes tools, reads Claude's tool_use calls, executes the matching code locally, and posts the results back until Claude returns a text completion.
Manual ReAct Loop Code Pattern
async function runAgent(prompt: string) {
const messages = [{ role: "user", content: prompt }];
while (true) {
const response = await anthropic.messages.create({
model: "claude-3-5-sonnet-20241022",
max_tokens: 1024,
tools: myTools,
messages
});
messages.push({ role: "assistant", content: response.content });
if (response.stop_reason !== "tool_use") {
return response.content[0].text; // Loop complete
}
const toolResults = await executeTools(response.content);
messages.push({ role: "user", content: toolResults });
}
}
Verified against: Anthropic API Tool Use v1