async function agentLoop(prompt: string) {
const messages = [{ role: 'user', content: prompt }]
while (true) {
const res = await client.messages.create({
model: 'claude-sonnet-4-7',
tools, messages
})
messages.push({ role: 'assistant', content: res.content })
if (res.stop_reason === 'end_turn') return res
const toolResults = []
for (const block of res.content) {
if (block.type === 'tool_use') {
const result = await runTool(block.name, block.input)
toolResults.push({
type: 'tool_result',
tool_use_id: block.id,
content: result
})
}
}
messages.push({ role: 'user', content: toolResults })
}
}자율 에이전트 핵심 패턴. 40줄이면 끝