add worktree & up task、teammate etc

This commit is contained in:
CrazyBoyM 2026-02-24 01:44:44 +08:00
parent c6a27ef1d7
commit aea8844bac
54 changed files with 2404 additions and 210 deletions

View file

@ -1,4 +1,4 @@
# Learn Claude Code -- AI Agent をゼロから構築する
# Learn Claude Code -- 0 から 1 へ構築する nano Claude Code-like agent
[English](./README.md) | [中文](./README-zh.md) | [日本語](./README-ja.md)
@ -17,16 +17,16 @@
loop back -----------------> messages[]
これだけだ。すべての AI コーディングエージェントはこのループ
他はすべて改良に過ぎない
これは最小ループだ。すべての AI コーディングエージェントに必要な土台になる
本番のエージェントには、ポリシー・権限・ライフサイクル層が追加される
```
**11 の段階的セッション、シンプルなループから完全な自律チームまで。**
**12 の段階的セッション、シンプルなループから分離された自律実行まで。**
**各セッションは1つのメカニズムを追加する。各メカニズムには1つのモットーがある。**
> **s01**   *"Bash があれば十分"* — 1つのツール + 1つのループ = エージェント
>
> **s02**   *"ループは変わらない"* — ツール追加はハンドラー追加であり、ロジック追加ではない
> **s02**   *"ループは変わらない"* — ツール追加はハンドラー追加であり、ループの作り直しではない
>
> **s03**   *"行動する前に計画せよ"* — 可視化された計画がタスク完了率を向上させる
>
@ -45,6 +45,8 @@
> **s10**   *"同じ request_id、2つのプロトコル"* — 1つの FSM パターンでシャットダウン + プラン承認
>
> **s11**   *"ポーリング、クレーム、作業、繰り返し"* — コーディネーター不要、エージェントが自己組織化
>
> **s12**   *"ディレクトリで分離し、タスクIDで調整する"* — タスクボード + 必要時の worktree レーン
---
@ -77,6 +79,19 @@ def agent_loop(messages):
各セッションはこのループの上に1つのメカニズムを重ねる -- ループ自体は変わらない。
## スコープ (重要)
このリポジトリは、nano Claude Code-like agent を 0->1 で構築・学習するための教材プロジェクトです。
学習を優先するため、以下の本番メカニズムは意図的に簡略化または省略しています。
- 完全なイベント / Hook バス (例: PreToolUse, SessionStart/End, ConfigChange)。
s12 では教材用に最小の追記型ライフサイクルイベントのみ実装している。
- ルールベースの権限ガバナンスと信頼フロー
- セッションライフサイクル制御 (resume/fork) と高度な worktree ライフサイクル制御
- MCP ランタイムの詳細 (transport/OAuth/リソース購読/ポーリング)
このリポジトリの JSONL メールボックス方式は教材用の実装であり、特定の本番内部実装を主張するものではありません。
## クイックスタート
```sh
@ -87,6 +102,7 @@ cp .env.example .env # .env を編集して ANTHROPIC_API_KEY を入力
python agents/s01_agent_loop.py # ここから開始
python agents/s11_autonomous_agents.py # 完全自律チーム
python agents/s12_worktree_task_isolation.py # Task 対応の worktree 分離
```
### Web プラットフォーム
@ -124,6 +140,9 @@ s08 バックグラウンドタスク [6] s10 チームプロトコル
|
s11 自律エージェント [14]
アイドルサイクル + 自動クレーム
|
s12 Worktree 分離 [16]
タスク調整 + 必要時の分離実行レーン
[N] = ツール数
```
@ -133,7 +152,7 @@ s08 バックグラウンドタスク [6] s10 チームプロトコル
```
learn-claude-code/
|
|-- agents/ # Python リファレンス実装 (s01-s11 + 完全版)
|-- agents/ # Python リファレンス実装 (s01-s12 + 完全版)
|-- docs/{en,zh,ja}/ # メンタルモデル優先のドキュメント (3言語)
|-- web/ # インタラクティブ学習プラットフォーム (Next.js)
|-- skills/ # s05 の Skill ファイル
@ -158,6 +177,7 @@ learn-claude-code/
| [s09](./docs/ja/s09-agent-teams.md) | エージェントチーム | *追記で送信、排出で読取* |
| [s10](./docs/ja/s10-team-protocols.md) | チームプロトコル | *同じ request_id、2つのプロトコル* |
| [s11](./docs/ja/s11-autonomous-agents.md) | 自律エージェント | *ポーリング、クレーム、作業、繰り返し* |
| [s12](./docs/ja/s12-worktree-task-isolation.md) | Worktree + タスク分離 | *ディレクトリで分離し、タスクIDで調整する* |
## ライセンス
@ -165,4 +185,4 @@ MIT
---
**モデルがエージェントだ。私たちの仕事はツールを渡して、邪魔をしないこと。**
**モデルがエージェントだ。私たちの仕事はツールを与えて邪魔しないこと。**