AIエージェントの仕組みを、動くコードで段階的に追える教材が公開されています。
この記事では、GitHubリポジトリ「claude-agent-examples」の構成と、学習の進め方を整理します。Tool use、記憶、Skills、マルチエージェント協調まで、エージェント開発の主要パターンを1本の学習ラインで追えます。
この記事でわかること
- claude-agent-examplesが何を提供しているか
- step01からstep09までの9段階カリキュラムの内容
- 本格版エージェントの記憶・Skills・子代理の設計
- 進化版Emperor AgentのWebUI・cron・モデル振り分け
claude-agent-examplesとは
TheSyart氏が公開するオープンソース教材です。PythonとAnthropic APIを使い、AIエージェントをゼロから組み立てる手順を、実行可能なコードとREADMEでまとめています。2026年6月時点でGitHubスター数は196、最終更新は6月10日です。
リポジトリは大きく2部構成です。
- agent/ … 本格版の対話型エージェント。三層記憶、Skills、タスク計画、子代理派遣、Agent Teamまで実装済み
- build-agent-example/ … step01からstep09までの段階的チュートリアル。各ステップに同名の解説ドキュメントが付属
新機能の単発発表というより、エージェント設計の知見を体系化したリソースです。READMEとコードが揃っているため、読むだけでなく手を動かして検証できます。
9段階で追う学習ライン
チュートリアルは、最小構成から複雑な協調へと段階を踏んでいます。
| ステップ | 追加される能力 |
|---|---|
| step01 | 単発のAPI呼び出し |
| step02 | 対話ループ |
| step03 | messages履歴による多輪記憶 |
| step04 | system promptによる役割設定 |
| step05 | Tool useとツール呼び出しループ |
| step06 | 複数ツールとSkillsの動的読み込み |
| step07 | update_todosによるタスク計画 |
| step08 | dispatch_subagentによる子代理派遣 |
| step09 | Agent Teamによる固定メンバー協調 |
step05のTool useが、エージェントと外部世界をつなぐ分岐点です。LLM(大規模言語モデル)がツール名と引数を返し、実行結果を会話に戻すループが、以降のSkillsや子代理の土台になります。
step08の子代理は、独立した会話履歴を持ちます。Web取得やファイル探索などの重い作業を子コンテキストで完結させ、主エージェントには要約だけ返します。同一ターン内で複数のdispatch_subagentを並列実行する設計もREADMEに記載されています。
本格版エージェントの中身
python agent.pyで起動する本格版は、チュートリアルの集大成です。
三層記憶
記憶は3層に分かれています。
- 作業記憶 … メモリ上のhistory。毎ターンLLMへ渡す
- 情景記憶 …
memory/YYYY-MM-DD.mdに日付単位で保存。圧縮時に生成 - 長期記憶 …
memory/MEMORY.md。毎ターンsystem promptへ注入
入力トークンが14万(コンテキスト上限20万の70%)を超えると、古い履歴をLLMで要約し、情景記憶と長期記憶を更新します。セッション終了時に圧縮閾値に達していない場合も、次回起動時に未処理分をアーカイブする仕組みです。
Skillsとツール群
Skillsはskills/{name}/SKILL.mdにYAML frontmatterとMarkdown本文を置く形式です。エージェントはload_skillで必要なときだけ読み込み、コンテキストを節約します。組み込みSkillsにはDuckDuckGo検索、GitHub CLI連携、URL要約などが含まれます。
主なツールは次のとおりです。
run_command… shellコマンド実行web_fetch… URL取得read_file/write_file/edit_file… ファイル操作glob/grep… ワークスペース検索update_todos… タスク計画(同時にin_progressは1件まで)dispatch_subagent… 役割別子代理の派遣spawn_teammate/send_message/read_inbox… Agent Team連携
Agent Team
固定メンバーの協調は.team/ディレクトリで管理します。各メンバーにinbox/{name}.jsonlがあり、JSON行の追記でメッセージを送受信します。メンバーはタスク完了後も破棄されず、idle状態で次の指示を待ちます。CLIでは/teamで状態確認、/inboxで受信箱を読み出せます。
進化版Emperor Agent
step09まで終えたあとは、同作者のEmperor Agentが次のステップとしてREADMEで紹介されています。コマンドライン教材から、ブラウザで操作できる製品寄りの形へ進む設計です。
Emperor AgentはVue 3製のWebUI、複数LLMプロバイダ対応、ストリーミングチャットを備えます。2026年6月時点でGitHubスター数は84です。
Webダッシュボード
emperor-agent webでローカルサーバーを起動し、チャット・モデル設定・Skills・ツール・Team・記憶・トークン統計をブラウザから操作できます。WebSocketでmessage_deltaやtool_callなどのイベントをリアルタイム表示します。
cronとスケジューラ
ローカルSchedulerがat(指定時刻)、every(間隔)、cron(cron式)の3形式に対応します。WebUI起動後、バックグラウンドタイマーがタスクを復元し、定期実行でエージェントのターンを自動起動します。エージェント自身もschedulerツールからジョブの確認や作成が可能で、変更系操作は権限承認を経ます。
マルチモデル振り分け
各モデル設定に主モデルと副モデルをペアで登録します。主エージェントや書き込み系の作業は主モデル、記憶圧縮や軽量な子代理は副モデルへ振り分けます。副モデルが失敗した場合は主モデルへ1回だけフォールバックします。DeepSeek、OpenAI、Azure、Bedrock、Ollamaなど複数プロバイダに対応し、MCP(Model Context Protocol)経由の外部ツールも統合できます。
始め方
claude-agent-examplesの導入は次の手順です。
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # ANTHROPIC_API_KEYを設定
python build-agent-example/code/step01_single_call.py
step01から順に進め、理解が深まったらpython agent.pyで本格版を試します。WebUIやcronまで触る場合はEmperor Agent側でemperor-agent initのあとemperor-agent webを実行します。
こんな人向け
- AIエージェントの内部構造を、抽象論ではなくコードで把握したい開発者
- Tool useや記憶設計を自前実装する前に、動く参照実装を見たい人
- マルチエージェントやスケジュール実行まで含めた設計パターンを学びたい人
フレームワークのブラックボックスに頼らず、エージェントの部品を1つずつ積み上げる教材です。9段階のチュートリアルで基礎を固め、本格版とEmperor Agentで実運用に近い機能まで到達できる構成になっています。