const messages: Anthropic.Messages.MessageParam[] = [
{
role: "user",
content: "Search the docs for password reset guidance.",
},
];
let response = await client.messages.create({
model: process.env.ANTHROPIC_MODEL ?? "claude-sonnet-4-5",
max_tokens: 1024,
system: "You are a careful support agent. Use tools when they help.",
messages,
tools,
});
const toolUses = response.content.filter((block) => block.type === "tool_use");
if (toolUses.length > 0) {
messages.push({
role: "assistant",
content: response.content,
});
messages.push({
role: "user",
content: toolUses.map((toolUse) => ({
type: "tool_result",
tool_use_id: toolUse.id,
content: JSON.stringify({
matches: ["Password reset links expire after 24 hours."],
}),
})),
});
response = await client.messages.create({
model: process.env.ANTHROPIC_MODEL ?? "claude-sonnet-4-5",
max_tokens: 1024,
system: "You are a careful support agent. Use tools when they help.",
messages,
tools,
});
}