mirror of
https://github.com/shareAI-lab/analysis_claude_code.git
synced 2026-09-20 12:13:38 +08:00
feat: consolidate course into 21 lessons
This commit is contained in:
86
README-ja.md
86
README-ja.md
@@ -106,7 +106,7 @@ Claude Code = 一つの agent loop
|
||||
|
||||
これがすべてだ。これが全アーキテクチャ。すべてのコンポーネントは Harness メカニズム -- Agent が住む世界の一部。Agent そのものは? Claude だ。モデル。Anthropic が人類の推論とコードの全幅で訓練した。Harness が Claude を賢くしたのではない。Claude は元々賢い。Harness が Claude に手と目とワークスペースを与えた。
|
||||
|
||||
これが Claude Code が理想的な教材である理由だ:**モデルを信頼し、工学的努力を Harness に集中させるとどうなるかを示している。** このリポジトリの各セッション(s01-s22)は Claude Code アーキテクチャの Harness メカニズムを段階的に分解し、最後に組み直す。終了時には、Claude Code の仕組みだけでなく、あらゆるドメインのあらゆる Agent に適用される Harness 工学の普遍的原則を理解している。
|
||||
これが Claude Code を教材として扱う理由だ:**モデルを信頼し、工学的努力を Harness に集中させるとどうなるかを示している。** このリポジトリの各セッション(s01-s21)は Harness メカニズムを段階的に分解し、最後に組み直す。終了時には、一つの coding agent の仕組みだけでなく、さまざまな領域に適用できる Harness 工学の原則を理解できる。
|
||||
|
||||
教訓は「Claude Code をコピーせよ」ではない。教訓は:**最高の Agent プロダクトは、自分の仕事が Harness であって Intelligence ではないと理解しているエンジニアが作る。**
|
||||
|
||||
@@ -159,7 +159,7 @@ Claude Code = 一つの agent loop
|
||||
Agent を特定ドメインで効果的にする Harness -- の作り方を教える。
|
||||
```
|
||||
|
||||
**22 の段階的セッション、シンプルなループから目標を閉じる Harness まで。**
|
||||
**21 の段階的セッション、シンプルなループから目標を閉じる Harness まで。**
|
||||
**各セッションは 1 つの Harness メカニズムを追加する。各メカニズムには 1 つのモットーがある。**
|
||||
|
||||
> **s01** *"One loop & Bash is all you need"* — 1つのツール + 1つのループ = エージェント
|
||||
@@ -190,21 +190,19 @@ Claude Code = 一つの agent loop
|
||||
>
|
||||
> **s14** *"スケジュールで発火、人間の起動は不要"* — 時間になったら自動でタスクを動かす
|
||||
>
|
||||
> **s15** *"一人で終わらないなら、チームメイトに任せる"* — Agent Teams ランタイム実験:永続チームメイト + 非同期メールボックス
|
||||
> **s15** *"一人で扱いきれないなら、チームメイトで分担する"* — 永続チームメイト、自動メッセージ配信、型付き協調プロトコル
|
||||
>
|
||||
> **s16** *"チームメイト間には統一の通信ルールが必要"* — Agent Teams プロトコル実験:型付きリクエスト-返信
|
||||
> **s16** *"待機中のチームメイトがボードを見て仕事を取る"* — 実行可能なタスクを発見し、原子的に認領する
|
||||
>
|
||||
> **s17** *"チームメイトが自らボードを見て、仕事を取る"* — リーダーが逐一割り振る必要はない
|
||||
> **s17** *"各自のディレクトリで作業し、互いに干渉しない"* — タスクは目標を管理、worktree はディレクトリを管理、IDで紐付け
|
||||
>
|
||||
> **s18** *"各自のディレクトリで作業し、互いに干渉しない"* — タスクは目標を管理、worktree はディレクトリを管理、IDで紐付け
|
||||
> **s18** *"能力不足? MCP でプラグイン"* — 外部ツールを同じツールプールに接続する
|
||||
>
|
||||
> **s19** *"能力不足? MCP でプラグイン"* — 外部ツールを同じツールプールに接続する
|
||||
> **s19** *"仕組みは多く、ループは一つ"* — すべての仕組みを 1 つの Harness に戻す
|
||||
>
|
||||
> **s20** *"仕組みは多く、ループは一つ"* — すべての仕組みを 1 つの Harness に戻す
|
||||
> **s20** *"編成の形が固定なら、コードにする"* — 再開可能なジャーナルを持つ決定的 Workflow
|
||||
>
|
||||
> **s21** *"編成の形が固定なら、コードにする"* — 再開可能なジャーナルを持つ決定的 Workflow
|
||||
>
|
||||
> **s22** *"本当に終われる時を目標が決める"* — 信頼できる証拠が目標を満たすまで継続する
|
||||
> **s21** *"本当に終われる時を目標が決める"* — 信頼できる証拠が目標を満たすまで継続する
|
||||
|
||||
---
|
||||
|
||||
@@ -241,16 +239,16 @@ def agent_loop(messages):
|
||||
|
||||
このリポジトリには現在、2 つのチュートリアルトラックが共存している:
|
||||
|
||||
- **現行トラック:ルート直下の `s01-s22`**
|
||||
ルート直下の `s01_*` から `s22_*` までが新しい正規版であり、現在推奨する読書経路。各セッションには既定の英語 README、中国語/日本語訳、実行可能な `code.py`、必要に応じた図が含まれる。
|
||||
- **現行トラック:ルート直下の `s01-s21`**
|
||||
ルート直下の `s01_*` から `s21_*` までが新しい正規版であり、現在推奨する読書経路。各セッションには既定の英語 README、中国語/日本語訳、実行可能な `code.py`、必要に応じた図が含まれる。
|
||||
- **旧版移行トラック:`docs/`、`agents/`**
|
||||
これらは旧 12 セッション版を保持している。既存読者と旧リンクのために移行期間中は一時的に残している。
|
||||
|
||||
新しく読む場合は、ルート直下の `s01_agent_loop/` から `s22_goal_loop/` までを読む。旧版と現行版のセッション番号は常に一致しないため、番号を混同しないこと。
|
||||
新しく読む場合は、ルート直下の `s01_agent_loop/` から `s21_goal_loop/` までを読む。旧版と現行版のセッション番号は常に一致しないため、番号を混同しないこと。
|
||||
|
||||
### 旧版から現行版への対応
|
||||
|
||||
| 旧 12 セッション版 | 現行 22 セッション版 | トピック |
|
||||
| 旧 12 セッション版 | 現行 21 セッション版 | トピック |
|
||||
|---|---|---|
|
||||
| 旧 s01 | 現行 s01 | Agent Loop |
|
||||
| 旧 s02 | 現行 s02 | Tool Use |
|
||||
@@ -261,27 +259,18 @@ def agent_loop(messages):
|
||||
| 旧 s07 | 現行 s12 | Task System |
|
||||
| 旧 s08 | 現行 s13 | Background Tasks |
|
||||
| 旧 s09 | 現行 s15 | Agent Teams |
|
||||
| 旧 s10 | 現行 s16 | Team Protocols |
|
||||
| 旧 s11 | 現行 s17 | Autonomous Agents |
|
||||
| 旧 s12 | 現行 s18 | Worktree Isolation |
|
||||
| 現行版のみ | s03、s04、s09、s10、s11、s14、s19、s20、s21、s22 | Permission、Hooks、Memory、Context Assembly、Error Recovery、Cron、MCP、Comprehensive Agent、Workflow Runtime、Goal Loop |
|
||||
| 旧 s10 | 現行 s15 | Team Protocols |
|
||||
| 旧 s11 | 現行 s16 | Autonomous Agents |
|
||||
| 旧 s12 | 現行 s17 | Worktree Isolation |
|
||||
| 現行版のみ | s03、s04、s09、s10、s11、s14、s18、s19、s20、s21 | Permission、Hooks、Memory、Context Assembly、Error Recovery、Cron、MCP、Comprehensive Agent、Workflow Runtime、Goal Loop |
|
||||
|
||||
## スコープ (重要)
|
||||
## コースの範囲
|
||||
|
||||
このリポジトリは Harness 工学の 0->1 学習プロジェクト -- Agent モデルを囲む環境の構築を学ぶ。
|
||||
学習を優先するため、以下の本番メカニズムは意図的に簡略化または省略している:
|
||||
|
||||
- 完全なイベント / Hook バス (例: PreToolUse, SessionStart/End, ConfigChange)。
|
||||
s12 では教材用に最小の追記型ライフサイクルイベントのみ実装。
|
||||
- ルールベースの権限ガバナンスと信頼フロー
|
||||
- セッションライフサイクル制御 (resume/fork) と高度な worktree ライフサイクル制御
|
||||
- MCP ランタイムの詳細 (transport/OAuth/リソース購読/ポーリング)
|
||||
|
||||
このリポジトリの JSONL メールボックス方式は教材用の実装であり、特定の本番内部実装を主張するものではない。
|
||||
これは Harness 工学を 0 から組み立てるコースである。各セッションで一つの仕組みを分けて扱い、s19 で一つの Agent loop に戻す。チームランタイムは JSONL メールボックスを使い、その後のセッションで Workflow 編成と目標による継続ループを追加する。
|
||||
|
||||
## クイックスタート
|
||||
|
||||
### 現行 22 セッション版
|
||||
### 現行 21 セッション版
|
||||
|
||||
```sh
|
||||
git clone https://github.com/shareAI-lab/learn-claude-code
|
||||
@@ -291,7 +280,7 @@ cp .env.example .env # .env を編集して ANTHROPIC_API_KEY を入力
|
||||
|
||||
python s01_agent_loop/code.py # ここから開始 — 1ループ + bash
|
||||
python s08_context_compact/code.py # コンテキスト圧縮(複雑章)
|
||||
python s22_goal_loop/code.py # 終点: 目標でループを閉じる
|
||||
python s21_goal_loop/code.py # 終点: 目標でループを閉じる
|
||||
```
|
||||
|
||||
### 旧 12 セッション移行版
|
||||
@@ -304,7 +293,7 @@ python agents/s_full.py
|
||||
|
||||
### Web プラットフォーム
|
||||
|
||||
Web プラットフォームはルート直下のコースから内容を生成する。s21 と s22 は読解、ソース、シミュレーター、アーキテクチャの各 view を提供し、専用 hero visualization だけを最小限に保つ。
|
||||
Web プラットフォームはルート直下のコースから内容を生成する。s20 と s21 は読解、ソース、シミュレーター、アーキテクチャの各 view を提供し、専用 hero visualization だけを最小限に保つ。
|
||||
|
||||
```sh
|
||||
cd web && npm install && npm run dev # http://localhost:3000
|
||||
@@ -344,9 +333,9 @@ flowchart TD
|
||||
direction LR
|
||||
S4["<b>第4段階:長く動くタスク</b><br/>━━━━━━━━━━━━━<br/><b>s12 Task System</b><br/>└─ タスクと依存関係を保存<br/><br/><b>s13 Background Tasks</b><br/>└─ 遅い作業をバックグラウンドへ<br/><br/><b>s14 Cron Scheduler</b><br/>└─ 時間で自動実行"]:::stage4
|
||||
|
||||
S5["<b>第5段階:複数 Agent の協作</b><br/>━━━━━━━━━━━━━<br/><b>Agent Teams モジュール</b><br/>├─ s15 ランタイム実験:チームメイト + メールボックス<br/>└─ s16 プロトコル実験:型付きリクエスト-返信<br/><br/><b>s17 Autonomous Agents</b><br/>└─ ボードを見て仕事を取る<br/><br/><b>s18 Worktree Isolation</b><br/>└─ 別ディレクトリで作業"]:::stage5
|
||||
S5["<b>第5段階:複数 Agent の協作</b><br/>━━━━━━━━━━━━━<br/><b>s15 Agent Teams</b><br/>└─ チームメイト + 配信 + プロトコル<br/><br/><b>s16 Autonomous Agents</b><br/>└─ 実行可能な仕事をボードから認領<br/><br/><b>s17 Worktree Isolation</b><br/>└─ 別ディレクトリで作業"]:::stage5
|
||||
|
||||
S6["<b>第6段階:外部能力と統合</b><br/>━━━━━━━━━━━━━<br/><b>s07 Skill Loading</b><br/>└─ スキルを必要時に展開<br/><br/><b>s19 MCP Plugin</b><br/>└─ 外部ツールを同じプールへ<br/><br/><b>s20 Comprehensive Agent</b><br/>└─ すべてを1つのループへ"]:::stage6
|
||||
S6["<b>第6段階:外部能力と統合</b><br/>━━━━━━━━━━━━━<br/><b>s07 Skill Loading</b><br/>└─ スキルを必要時に展開<br/><br/><b>s18 MCP Plugin</b><br/>└─ 外部ツールを同じプールへ<br/><br/><b>s19 Comprehensive Agent</b><br/>└─ すべてを1つのループへ"]:::stage6
|
||||
|
||||
S4 ==> S5 ==> S6
|
||||
end
|
||||
@@ -354,7 +343,7 @@ flowchart TD
|
||||
%% 第3層:編成と目標の完了
|
||||
subgraph Phase3 ["第7段階:編成と目標の完了"]
|
||||
direction LR
|
||||
S7["<b>第7段階:編成して完了する</b><br/>━━━━━━━━━━━━━<br/><b>s21 Workflow Runtime</b><br/>└─ 固定編成はスクリプトが担う<br/><br/><b>s22 Goal Loop</b><br/>└─ 信頼できる証拠で停止を決める"]:::stage1
|
||||
S7["<b>第7段階:編成して完了する</b><br/>━━━━━━━━━━━━━<br/><b>s20 Workflow Runtime</b><br/>└─ 固定編成はスクリプトが担う<br/><br/><b>s21 Goal Loop</b><br/>└─ 信頼できる証拠で停止を決める"]:::stage1
|
||||
S6 ==> S7
|
||||
end
|
||||
|
||||
@@ -382,14 +371,13 @@ flowchart TD
|
||||
| [s12](./s12_task_system/) | Task System | `TaskRecord` / `blockedBy` / ディスク永続化 |
|
||||
| [s13](./s13_background_tasks/) | Background Tasks | スレッド実行 / 通知キュー |
|
||||
| [s14](./s14_cron_scheduler/) | Cron Scheduler | 永続スケジューリング / セッション限定トリガー |
|
||||
| [s15](./s15_agent_teams/) | Agent Teams:ランタイム実験 | `MessageBus` / 受信箱 / 権限バブリング |
|
||||
| [s16](./s16_team_protocols/) | Agent Teams:プロトコル実験 | 型付きメッセージ / シャットダウンハンドシェイク / プラン承認 |
|
||||
| [s17](./s17_autonomous_agents/) | Autonomous Agents | アイドルサイクル / 自動クレーム |
|
||||
| [s18](./s18_worktree_isolation/) | Worktree Isolation | `WorktreeRecord` / タスク-ディレクトリ紐付け |
|
||||
| [s19](./s19_mcp_plugin/) | MCP Plugin | マルチトランスポート / チャネルルーティング / ツールプール組み立て |
|
||||
| [s20](./s20_comprehensive/) | Comprehensive Agent | すべての仕組みを 1 つのループへ |
|
||||
| [s21](./s21_workflow_runtime/) | Workflow Runtime | スクリプト編成 / バックグラウンド実行 / ジャーナル再開 |
|
||||
| [s22](./s22_goal_loop/) | Goal Loop | 目標ゲート / 信頼できる証拠 / 自動継続 |
|
||||
| [s15](./s15_agent_teams/) | Agent Teams | 永続チームメイト / 自動配信 / 型付きプロトコル / プランゲート |
|
||||
| [s16](./s16_autonomous_agents/) | Autonomous Agents | タスクボード走査 / 原子的認領 / 自己組織化 |
|
||||
| [s17](./s17_worktree_isolation/) | Worktree Isolation | `WorktreeRecord` / タスク-ディレクトリ紐付け |
|
||||
| [s18](./s18_mcp_plugin/) | MCP Plugin | ツール発見 / 名前空間 / ツールプール組み立て |
|
||||
| [s19](./s19_comprehensive/) | Comprehensive Agent | すべての仕組みを 1 つのループへ |
|
||||
| [s20](./s20_workflow_runtime/) | Workflow Runtime | スクリプト編成 / バックグラウンド実行 / ジャーナル再開 |
|
||||
| [s21](./s21_goal_loop/) | Goal Loop | 目標ゲート / 信頼できる証拠 / 自動継続 |
|
||||
|
||||
## プロジェクト構成
|
||||
|
||||
@@ -403,10 +391,10 @@ learn-claude-code/
|
||||
images/ # SVG ダイアグラム
|
||||
s02_tool_use/
|
||||
...
|
||||
s19_mcp_plugin/
|
||||
s20_comprehensive/
|
||||
s21_workflow_runtime/
|
||||
s22_goal_loop/ # 終点セッション
|
||||
s18_mcp_plugin/
|
||||
s19_comprehensive/
|
||||
s20_workflow_runtime/
|
||||
s21_goal_loop/ # 終点セッション
|
||||
agents/ # 旧 12 セッションの実行可能コピー + s_full.py
|
||||
skills/ # s07 で使用するスキルファイル
|
||||
docs/ # 旧 12 セッション文書、移行期間中は保持
|
||||
@@ -416,7 +404,7 @@ learn-claude-code/
|
||||
|
||||
## 次のステップ -- 理解から出荷へ
|
||||
|
||||
22 セッションを終えれば、Harness 工学の内部構造を完全に理解している。その知識を活かす 2 つの方法:
|
||||
21 セッションを終えれば、Harness 工学の内部構造を理解できる。その知識を活かす 2 つの方法:
|
||||
|
||||
### Kode Agent CLI -- オープンソース Coding Agent CLI
|
||||
|
||||
|
||||
Reference in New Issue
Block a user