コードの話をする前に、一つ明確にしておく。
Agency -- 知覚し、推論し、行動する能力 -- はモデルの訓練から生まれる。外部コードの編成からではない。 だが実際に動く Agent プロダクトには、モデルと Harness の両方が必要だ。モデルはドライバー、Harness は車。本リポジトリは車の作り方を教える。
Agent の核心にあるのはニューラルネットワークだ -- Transformer、RNN、学習された関数 -- 数十億回の勾配更新を経て、行動系列データの上で環境を知覚し、目標を推論し、行動を起こすことを学んだもの。Agency は周囲のコードから与えられるものではない。訓練を通じてモデルが獲得するものだ。
人間が最もわかりやすい例だ。数百万年の進化的訓練によって形作られた生物的ニューラルネットワーク。感覚で世界を知覚し、脳で推論し、身体で行動する。DeepMind、OpenAI、Anthropic が "Agent" と言うとき、その核心は常に同じことを指している:訓練によって行動を学んだモデルと、それを特定の環境で機能させるインフラの組み合わせ。
その作業環境を作る主な部品は次の通りです。
Agent Loop: モデルに聞く -> ツールを実行する -> 結果を返すTools: エージェントの手足Planning: 大きな作業を途中で迷わせないための小さな構造Context Management: アクティブな文脈を小さく保つPermissions: モデルの意図をそのまま危険な実行にしないHooks: ループを書き換えずに周辺機能を足すMemory: セッションをまたいで残すべき事実だけを保持するPrompt Construction: 安定ルールと実行時状態から入力を組み立てるTasks / Teams / Worktree / MCP: 単体 agent をより大きな作業基盤へ育てる
この教材が目指すのは:
- 主線を順序よく理解できること
- 初学者が概念で迷子にならないこと
- 核心メカニズムと重要データ構造を自力で再実装できること
実際の製品コードには、agent の本質とは直接関係しない細部も多くあります。
すべてのマイルストーンが同じ事実を示している:Agency -- 知覚し、推論し、行動する能力 -- は訓練によって獲得されるものであり、コードで組み立てるものではない。 しかし同時に、どの Agent も動作するための環境を必要とした:Atari エミュレータ、Dota 2 クライアント、StarCraft II エンジン、IDE とターミナル。モデルが知能を提供し、環境が行動空間を提供する。両方が揃って初めて完全な Agent となる。
4b95969a03f780e8aa17340a10ff0a6d9512a2c9
- パッケージングや配布の流れ
- クロスプラットフォーム互換層
- 企業ポリシーやテレメトリ配線
- 歴史互換のための分岐
- 製品統合のための細かな glue code
こうした要素は本番では重要でも、0 から 1 を教える主線には置きません。
教学リポジトリの中心は、あくまで「agent がどう動くか」です。
このリポジトリは次の読者を想定しています。
- 基本的な Python が読める
- 関数、クラス、リスト、辞書は分かる
- でも agent システムは初学者でもよい
そのため、書き方の原則をはっきり決めています。
- 新しい概念は、使う前に説明する
- 1つの概念は、できるだけ1か所でまとまって理解できるようにする
- まず「何か」、次に「なぜ必要か」、最後に「どう実装するか」を話す
- 初学者に断片文書を拾わせて自力でつなげさせない
この教材を一通り終えたとき、目標は次の 2 つです。
- 0 から自分で、構造が明快で反復改善できる coding-agent harness を組み立てられること
- より複雑な実装を読むときに、何が設計主線で何が製品周辺の detail なのかを見分けられること
このリポジトリが重視するのは:
- 重要メカニズムと主要データ構造の高い再現度
- 自分の手で作り直せる実装可能性
- 途中で心智がねじれにくい読み順と説明密度
日本語版でも主線・bridge doc・web の主要導線は揃えています。
章順と補助資料は、日本語でもそのまま追えるように保っています。
- 全体マップ:
docs/ja/s00-architecture-overview.md - コード読解順:
docs/ja/s00f-code-reading-order.md - 用語集:
docs/ja/glossary.md - 教材範囲:
docs/ja/teaching-scope.md - データ構造表:
docs/ja/data-structures.md
最初から章をばらばらに開かない方が安定します。
最も安全な入口は次の順序です。
docs/ja/s00-architecture-overview.mdで全体図をつかむdocs/ja/s00d-chapter-order-rationale.mdで、なぜこの順序で学ぶのかを確認するdocs/ja/s00f-code-reading-order.mdで、ローカルのagents/*.pyをどの順で開くか確認するs01-s06 -> s07-s11 -> s12-s14 -> s15-s19の 4 段階で主線を順に進める- 各段階の終わりで一度止まり、最小版を自分で書き直してから次へ進む
中盤以降で境界が混ざり始めたら、次の順で立て直すのが安定です。
docs/ja/data-structures.mddocs/ja/entity-map.md- いま詰まっている章に近い bridge doc
- その後で章本文へ戻る
章順、段階境界、章どうしの差分を可視化から入りたい場合は、組み込みの web 教材画面を使えます。
cd web
npm install
npm run dev開いたあと、まず見ると良いルートは次です。
/ja: 日本語の学習入口。最初にどの読み方を選ぶか決める/ja/timeline: 主線を順にたどる最も安定した入口/ja/layers: 4 段階の境界を先に理解する入口/ja/compare: 2 章の差やジャンプ診断を見る入口
初回読みに最も向くのは timeline です。
途中で境界が混ざったら、先に layers と compare を見てから本文へ戻る方が安定します。
これは新しい主線章ではなく、中盤以降の理解をつなぐための補助文書です。
- なぜこの章順なのか:
docs/ja/s00d-chapter-order-rationale.md - このリポジトリのコード読解順:
docs/ja/s00f-code-reading-order.md - 参照リポジトリのモジュール対応:
docs/ja/s00e-reference-module-map.md - クエリ制御プレーン:
docs/ja/s00a-query-control-plane.md - 1リクエストの全ライフサイクル:
docs/ja/s00b-one-request-lifecycle.md - クエリ遷移モデル:
docs/ja/s00c-query-transition-model.md - ツール制御プレーン:
docs/ja/s02a-tool-control-plane.md - ツール実行ランタイム:
docs/ja/s02b-tool-execution-runtime.md - Message / Prompt パイプライン:
docs/ja/s10a-message-prompt-pipeline.md - ランタイムタスクモデル:
docs/ja/s13a-runtime-task-model.md - MCP 能力レイヤー:
docs/ja/s19a-mcp-capability-layers.md - Teammate・Task・Lane モデル:
docs/ja/team-task-lane-model.md - エンティティ地図:
docs/ja/entity-map.md
s01-s06: まず単体 agent のコアを作るs07-s11: 安全性、拡張性、記憶、prompt、recovery を足すs12-s14: 一時的な計画を持続的なランタイム作業へ育てるs15-s19: チーム、プロトコル、自律動作、分離実行、外部 capability routing へ進む
| 章 | テーマ | 得られるもの |
|---|---|---|
s00 |
Architecture Overview | 全体マップ、用語、学習順 |
s01 |
Agent Loop | 最小の動く agent ループ |
s02 |
Tool Use | 安定したツール分配 |
s03 |
Todo / Planning | 可視化されたセッション計画 |
s04 |
Subagent | 委譲時の新鮮な文脈 |
s05 |
Skills | 必要な知識だけを後から読む仕組み |
s06 |
Context Compact | アクティブ文脈を小さく保つ |
s07 |
Permission System | 実行前の安全ゲート |
s08 |
Hook System | ループ周辺の拡張点 |
s09 |
Memory System | セッションをまたぐ長期情報 |
s10 |
System Prompt | セクション分割された prompt 組み立て |
s11 |
Error Recovery | 続行・再試行・停止の分岐 |
s12 |
Task System | 永続タスクグラフ |
s13 |
Background Tasks | 非ブロッキング実行 |
s14 |
Cron Scheduler | 時間起点のトリガー |
s15 |
Agent Teams | 永続チームメイト |
s16 |
Team Protocols | 共有された協調ルール |
s17 |
Autonomous Agents | 自律的な認識・再開 |
s18 |
Worktree Isolation | 分離実行レーン |
s19 |
MCP & Plugin | 外部 capability routing |
git clone https://github.com/shareAI-lab/learn-claude-code
cd learn-claude-code
pip install -r requirements.txt
cp .env.example .envその後、.env に ANTHROPIC_API_KEY または互換エンドポイントを設定してから:
python agents/s01_agent_loop.py
python agents/s18_worktree_task_isolation.py
python agents/s19_mcp_plugin.py
python agents/s_full.pyおすすめの進め方:
- まず
s01を動かし、最小ループが本当に動くことを確認する s00を読みながらs01 -> s11を順に進める- 単体 agent 本体と control plane が安定して理解できてから
s12 -> s19に入る - 最後に
s_full.pyを見て、全部の機構を一枚の全体像に戻す
各章は、次の順序で読むと理解しやすいです。
- この機構がないと何が困るか
- 新しい概念は何か
- 最小で正しい実装は何か
- 状態はどこに置かれるのか
- それがループにどう接続されるのか
- この章ではどこで一度止まり、何を後回しにしてよいのか
もし読んでいて:
- 「これは主線なのか、補足なのか」
- 「この状態は結局どこにあるのか」
と迷ったら、次を見直してください。
learn-claude-code/
├── agents/ # 章ごとの実行可能な Python 参考実装
├── docs/zh/ # 中国語の主線文書
├── docs/en/ # 英語文書
├── docs/ja/ # 日本語文書
├── skills/ # s05 で使う skill ファイル
├── web/ # Web 教学プラットフォーム
└── requirements.txt
中国語が正本であり、更新も最も速いです。
zh: 最も完全で、最もレビューされているen: 主線章と主要な橋渡し文書が利用できるja: 主線章と主要な橋渡し文書が利用できる
最も深く、最も更新の速い説明を追うなら、まず中国語版を優先してください。
読み終わるころには、次の問いに自分の言葉で答えられるようになるはずです。
- coding agent の最小状態は何か
tool_resultがなぜループの中心なのか- どういう時に subagent を使うべきか
- permissions、hooks、memory、prompt、task がそれぞれ何を解決するのか
- いつ単体 agent を tasks、teams、worktrees、MCP へ成長させるべきか
Skill & LSP 対応、Windows 対応、GLM / MiniMax / DeepSeek 等のオープンモデルに接続可能。インストールしてすぐ使える。
GitHub: shareAI-lab/Kode-cli
公式 Claude Code Agent SDK は内部で完全な CLI プロセスと通信する -- 同時ユーザーごとに独立のターミナルプロセスが必要。Kode SDK は独立ライブラリでユーザーごとのプロセスオーバーヘッドがなく、バックエンド、ブラウザ拡張、組み込みデバイス等に埋め込み可能。
GitHub: shareAI-lab/Kode-agent-sdk
本リポジトリが教える Harness は 使い捨て型 -- ターミナルを開き、Agent にタスクを与え、終わったら閉じる。次のセッションは白紙から始まる。Claude Code のモデル。
OpenClaw は別の可能性を証明した: 同じ agent core の上に 2 つの Harness メカニズムを追加するだけで、Agent は「突かないと動かない」から「30 秒ごとに自分で起きて仕事を探す」に変わる:
- ハートビート -- 30 秒ごとに Harness が Agent にメッセージを送り、やることがあるか確認させる。なければスリープ続行、あれば即座に行動。
- Cron -- Agent が自ら未来のタスクをスケジュールし、時間が来たら自動実行。
さらにマルチチャネル IM ルーティング (WhatsApp / Telegram / Slack / Discord 等 13+ プラットフォーム)、永続コンテキストメモリ、Soul パーソナリティシステムを加えると、Agent は使い捨てツールから常時稼働のパーソナル AI アシスタントへ変貌する。
claw0 はこれらの Harness メカニズムをゼロから分解する姉妹教材リポジトリ:
claw agent = agent core + heartbeat + cron + IM chat + memory + soul
learn-claude-code claw0
(agent harness コア: (能動的な常時稼働 harness:
ループ、ツール、計画、 ハートビート、cron、IM チャネル、
チーム、worktree 分離) メモリ、Soul パーソナリティ)
MIT
Agency はモデルから生まれる。Harness が Agency を現実にする。優れた Harness を作れ。モデルが残りをやる。
Bash is all you need. Real agents are all the universe needs.
4b95969a03f780e8aa17340a10ff0a6d9512a2c9