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_deltatool_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で実運用に近い機能まで到達できる構成になっています。