learn-claude-code:エージェントのハーネスをゼロから学ぶ
Bash を軸に、最小構成の Claude Code 風エージェントハーネスをゼロから作る実践チュートリアル。モデルとハーネスがどう組み合わさって動くエージェント製品になるかを学べる。
ひと目でわかる
- これは何?
- 1つのエージェントループから始まり、ツール、権限、メモリ、チーム、ワークツリー分離を追加していく20レッスンのリポジトリ。
- 誰に向いている?
- このリポジトリは、エージェンシーは訓練されたモデルに由来し、エンジニアの仕事はハーネスを構築することだという主張を、20のレッスンで具体化している。各レッスンは固定されたループに1つの仕組みを追加し、scope節では省略された本番機能を明示している。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 20 日前です。
- 何の言語で書かれている?
- 主に Python です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
エージェンシーはモデルに由来し、接着コードには由来しない
READMEは冒頭で、エージェンシー、つまり知覚、推論、行動の能力は、モデルの訓練に由来し、外部のオーケストレーションコードには由来しないという区別を提示します。例としてDeepMind DQN、OpenAI Five、AlphaStar、Tencent Jueyu、現在のLLMコーディングエージェントを挙げ、訓練済みモデルが環境に置かれる仕組みを説明しています。このリポジトリの役割はモデルを訓練することではなく、ハーネス、つまりモデルにツール、知識、観察、行動インターフェース、権限を与えるコードを構築することです。READMEは、ドラッグアンドドロップのワークフロービルダーやプロンプトチェーンライブラリを、LLMを組み込んだ手続き型ルールパイプラインと表現し、エージェントではないと明確に述べています。この主張がチュートリアル全体の前提です。
20レッスンの現行版と12レッスンの旧版
このプロジェクトには2つのチュートリアルトラックがあります。現在の正式トラックは、ルート直下のs01_agent_loopからs20_comprehensiveまでのフォルダで、各章は1つのハーネス機構を追加し、モットーを持っています。旧トラックはdocs/、agents/、現在のwebアプリに残っている12レッスン版で、既存の読者と古いリンクのために維持されています。READMEは、旧版と新版の章番号が常に対応するとは限らないため、混在させないよう注意を促しています。旧版に相当しない新しい章には、権限、フック、メモリ、システムプロンプト、エラー回復、cron、MCP、包括的エージェントが含まれます。各章のフォルダには、中国語のREADME.md、英語と日本語の翻訳、実行可能なcode.py、必要なSVG図が含まれています。
決して変わらないループ
中心となるコード例はagent_loopという関数です。メッセージリストをモデルAPIに送信し、アシスタントの応答を追加し、stop_reasonがtool_useかどうかを確認します。tool_useであれば、TOOL_HANDLERSマップを使って要求されたツールを実行し、tool_resultブロックを追加します。それ以外なら関数は戻ります。READMEによると、各レッスンはこのループに1つの仕組みを重ねるだけで、ループ自体は変わりません。ループはエージェントに属し、ツール、知識、権限はハーネスに属します。クイックスタートではANTHROPIC_API_KEYを設定するため、例はAnthropic互換のAPIを前提としていますが、READMEは対応モデルを明示していません。
意図的に簡略化された本番機構
scopeの節では、簡略化または省略される本番機構が明示されています。PreToolUse、SessionStart、SessionEnd、ConfigChangeなどの完全なイベント・フックバス動作は完全には扱われません。ルールベースの権限ガバナンス、完全なトラストワークフロー、resume/forkなどのセッションライフサイクル制御、より完全なワークツリーライフサイクル処理、MCPのトランスポート、OAuth、リソース購読、ポーリングなどの完全なランタイム詳細も簡略化または省略されています。このリポジトリのJSONLメールボックスプロトコルは教育用実装であり、特定の本番内部実装についての主張ではないと説明されています。つまり、コードは本番用エージェントランタイムではなく、機構のデモを目的としています。
クイックスタートに書かれていること
クイックスタートには具体的なコマンドが書かれています。リポジトリをクローンし、pip install -r requirements.txtでPython依存関係をインストールした後、.env.exampleを.envにコピーしてANTHROPIC_API_KEYを設定します。例はpython s01_agent_loop/code.pyから始め、python s08_context_compact/code.pyを経て、python s20_comprehensive/code.pyで終わります。旧トラックにはpython agents/s01_agent_loop.pyなどの独自コマンドがあります。web/ディレクトリのウェブプラットフォームは現在旧docsトラックを表示しており、npm installとnpm run devで起動できます。READMEはこれらのコマンドの期待される出力を詳しく説明していません。
レッスンの先:Kode、claw0、ライセンス
20レッスンの後、READMEは2つの姉妹プロジェクトを紹介しています。Kode Agent CLIはnpmでグローバルインストールでき、Kode Agent SDKはアプリケーションに埋め込むためのライブラリです。また、ハートビート、cron、IMチャンネル、メモリ、Soulパーソナリティを持つ常駐アシスタントを解説する姉妹チュートリアルclaw0へのリンクもあります。READMEはインストールコマンドとGitHubリンク以外に、これらのプロジェクトの使用方法を提供していません。このリポジトリはMITライセンスで、著作権はshareAI Labにあります。ライセンスは使用、複製、変更、結合、公開、配布、サブライセンス、販売を許可し、保証を免責します。ライセンス文にはセキュリティ保証、サポート、本番稼働への準備については何も書かれていません。
編集部の結論
このリポジトリは、エージェンシーは訓練されたモデルに由来し、エンジニアの仕事はハーネスを構築することだという主張を、20のレッスンで具体化している。各レッスンは固定されたループに1つの仕組みを追加し、scope節では省略された本番機能を明示している。MITライセンスは広い利用を許諾し保証を免責しており、README自体もソースコードの複製ではなく設計の理解を求めている。
コミュニティノート