LESSON 05
/ 06
Agent SDK で自律エージェントを構築
このレッスンでは、Anthropic の Agent SDK を使ってカスタム自律エージェントを作る方法を学びます。Agent とは「目標を与えると、自分で考えて手順を踏み、ツールを使って完了させるAI」のことです。
Agent SDK の特徴
- ループ実行:1リクエスト/1応答を超えて、複数ステップを自動実行
- 状態管理:会話履歴・中間結果を保持
- ツール統合:Tool Use を抽象化して扱いやすく
- コンパクション:長期実行時のコンテキスト圧縮
シンプルなエージェント例(Python)
from anthropic import Anthropic
client = Anthropic()
tools = [
{"name": "search_docs", "description": "...", "input_schema": {...}},
{"name": "write_file", "description": "...", "input_schema": {...}},
]
def run_agent(goal: str, max_steps: int = 10):
messages = [{"role": "user", "content": goal}]
for step in range(max_steps):
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=2048,
tools=tools,
messages=messages,
)
# ツール呼び出しが含まれていなければ完了
if response.stop_reason == "end_turn":
return response.content[-1].text
# ツール実行 → 結果を会話に追加
messages.append({"role": "assistant", "content": response.content})
tool_results = []
for block in response.content:
if block.type == "tool_use":
result = execute_tool(block.name, block.input)
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": result,
})
messages.append({"role": "user", "content": tool_results})
return "max_steps reached"
設計パターン
- Reflexion:自分の出力をレビューさせて改善
- Plan-and-Execute:最初にステップ分解、その後実行
- Memory:長期記憶を外部DB化
- Multi-agent:役割の異なるエージェントを連携
運用上の注意
- ループ上限:必ず max_steps で暴走防止
- コスト監視:1タスクあたりの上限金額を設定
- 人間レビュー:本番反映前に人間チェックを挟む
- 権限分離:書込・送信などのツールには厳格な確認
このレッスンのまとめ
Agent SDK で、Claude を業務プロセスの一部として動かせます。次の最終レッスンでは、本番運用で必須のエラーハンドリング・レート制限対応を学びます。