mirror of
https://github.com/sanbuphy/claude-code-source-code.git
synced 2026-04-03 19:44:58 +08:00
188 lines
14 KiB
Markdown
188 lines
14 KiB
Markdown
# Claude Code アーキテクチャ学習と研究
|
||
|
||
> **はじめに**: このプロジェクトは、CLI Agent アーキテクチャに関する学習および研究用のリポジトリです。すべての資料は、インターネット上で公開されている情報や議論のみに基づいてまとめられており、特に現在非常に人気のある CLI Agent `claude-code` に関する公開情報を参考にしています。私たちの目的は、開発者が Agent 技術をより深く理解し、活用できるように支援することです。今後も Agent アーキテクチャに関する洞察や実践的な議論を継続的に共有していく予定です。皆様のご関心とご支援に感謝いたします!
|
||
|
||
> **免責事項**: 本リポジトリのコンテンツは技術研究、学習、教育目的の交流のためにのみ提供されます。**商用利用は厳禁です。** いかなる個人、機関、団体も、本コンテンツを商業目的、営利活動、違法行為、その他の無許可の用途に使用することはできません。本コンテンツがお客様の法的権利、知的財産権、その他の利益を侵害する場合は、ご連絡いただければ直ちに確認・削除いたします。
|
||
|
||
|
||
**言語**: [English](README.md) | [中文](README_CN.md) | [한국어](README_KR.md) | **日本語**
|
||
|
||
---
|
||
|
||
## 目次
|
||
|
||
- [詳細分析レポート (`docs/`)](#詳細分析レポート-docs) — テレメトリ、コードネーム、アンダーカバーモード、リモート制御、今後のロードマップ
|
||
- [ディレクトリ参照](#ディレクトリ参照) — コード構造ツリー
|
||
- [アーキテクチャ概要](#アーキテクチャ概要) — エントリポイント → クエリエンジン → ツール/サービス/状態
|
||
|
||
---
|
||
|
||
## 詳細分析レポート (`docs/`)
|
||
|
||
インターネット上で公開されている資料やコミュニティの議論をもとに整理した Claude Code v2.1.88 分析レポート。英語/中国語/韓国語/日本語の4言語で提供。
|
||
|
||
```
|
||
docs/
|
||
├── en/ # English
|
||
│ ├── [01-telemetry-and-privacy.md] # Telemetry & Privacy — what's collected, why you can't opt out
|
||
│ ├── [02-hidden-features-and-codenames.md] # Codenames (Capybara/Tengu/Numbat), feature flags, internal vs external
|
||
│ ├── [03-undercover-mode.md] # Undercover Mode — hiding AI authorship in open-source repos
|
||
│ ├── [04-remote-control-and-killswitches.md]# Remote Control — managed settings, killswitches, model overrides
|
||
│ └── [05-future-roadmap.md] # Future Roadmap — Numbat, KAIROS, voice mode, unreleased tools
|
||
│
|
||
├── ja/ # 日本語
|
||
│ ├── [01-テレメトリとプライバシー.md] # テレメトリとプライバシー — 収集項目、無効化不可の理由
|
||
│ ├── [02-隠し機能とコードネーム.md] # 隠し機能 — モデルコードネーム、feature flag、内部/外部ユーザーの違い
|
||
│ ├── [03-アンダーカバーモード.md] # アンダーカバーモード — オープンソースでのAI著作隠匿
|
||
│ ├── [04-リモート制御とキルスイッチ.md] # リモート制御 — 管理設定、キルスイッチ、モデルオーバーライド
|
||
│ └── [05-今後のロードマップ.md] # 今後のロードマップ — Numbat、KAIROS、音声モード、未公開ツール
|
||
│
|
||
├── ko/ # 한국어
|
||
│ ├── [01-텔레메트리와-프라이버시.md] # 텔레메트리 및 프라이버시 — 수집 항목, 비활성화 불가 이유
|
||
│ ├── [02-숨겨진-기능과-코드네임.md] # 숨겨진 기능 — 모델 코드네임, feature flag, 내부/외부 사용자 차이
|
||
│ ├── [03-언더커버-모드.md] # 언더커버 모드 — 오픈소스에서 AI 저작 은폐
|
||
│ ├── [04-원격-제어와-킬스위치.md] # 원격 제어 — 관리 설정, 킬스위치, 모델 오버라이드
|
||
│ └── [05-향후-로드맵.md] # 향후 로드맵 — Numbat, KAIROS, 음성 모드, 미공개 도구
|
||
│
|
||
└── zh/ # 中文
|
||
├── [01-遥测与隐私分析.md] # 遥测与隐私 — 收集了什么,为什么无法退出
|
||
├── [02-隐藏功能与模型代号.md] # 隐藏功能 — 模型代号,feature flag,内外用户差异
|
||
├── [03-卧底模式分析.md] # 卧底模式 — 在开源项目中隐藏 AI 身份
|
||
├── [04-远程控制与紧急开关.md] # 远程控制 — 托管设置,紧急开关,模型覆盖
|
||
└── [05-未来路线图.md] # 未来路线图 — Numbat,KAIROS,语音模式,未上线工具
|
||
```
|
||
|
||
> ファイル名をクリックすると該当レポートに移動します。
|
||
|
||
| # | テーマ | 主要発見 | リンク |
|
||
|---|--------|---------|------|
|
||
| 01 | **テレメトリとプライバシー** | 二層分析パイプライン(1P→Anthropic、Datadog)。環境フィンガープリント、プロセスメトリクス、全イベントにセッション/ユーザーID。**ユーザー向け無効化設定なし。** `OTEL_LOG_TOOL_DETAILS=1` で全ツール入力記録可能。 | [EN](docs/en/01-telemetry-and-privacy.md) · [日本語](docs/ja/01-テレメトリとプライバシー.md) |
|
||
| 02 | **隠し機能とコードネーム** | 動物コードネーム体系(Capybara v8、Tengu、Fennec→Opus 4.6、**Numbat** 次期)。Feature flagにランダム単語ペアで目的を難読化。内部ユーザーは優遇プロンプトと検証エージェントを利用可能。隠しコマンド: `/btw`、`/stickers`。 | [EN](docs/en/02-hidden-features-and-codenames.md) · [日本語](docs/ja/02-隠し機能とコードネーム.md) |
|
||
| 03 | **アンダーカバーモード** | Anthropic社員は公開リポジトリで自動的にアンダーカバーモードに突入。モデルへの指示: **「正体を明かすな」** — 全AI帰属表示を除去し、人間が書いたようにコミット。**強制無効化オプションなし。** | [EN](docs/en/03-undercover-mode.md) · [日本語](docs/ja/03-アンダーカバーモード.md) |
|
||
| 04 | **リモート制御とキルスイッチ** | 1時間ごとに `/api/claude_code/settings` をポーリング。危険な変更時にブロッキングダイアログ — **拒否=アプリ終了**。6以上のキルスイッチ(パーミッションバイパス、Fastモード、音声モード、分析シンク)。GrowthBookで同意なくユーザー動作変更可能。 | [EN](docs/en/04-remote-control-and-killswitches.md) · [日本語](docs/ja/04-リモート制御とキルスイッチ.md) |
|
||
| 05 | **今後のロードマップ** | **Numbat** コードネーム確認。Opus 4.7 / Sonnet 4.8開発中。**KAIROS** = 完全自律エージェントモード、`<tick>`ハートビート、プッシュ通知、PR購読。音声モード(push-to-talk)準備完了。未公開ツール17個発見。 | [EN](docs/en/05-future-roadmap.md) · [日本語](docs/ja/05-今後のロードマップ.md) |
|
||
|
||
---
|
||
|
||
## 著作権および免責事項
|
||
|
||
```text
|
||
本リポジトリは技術研究および教育目的でのみ提供されます。商用利用は禁止です。
|
||
|
||
著作権者として本リポジトリのコンテンツがお客様の権利を侵害すると判断される場合は、
|
||
リポジトリ所有者にご連絡いただければ直ちに削除いたします。
|
||
```
|
||
|
||
---
|
||
|
||
## 統計
|
||
|
||
| 項目 | 数量 |
|
||
|------|------|
|
||
| ファイル (.ts/.tsx) | 約1,884 |
|
||
| 行数 | 約512,664 |
|
||
| 最大単一ファイル | `query.ts`(約785KB) |
|
||
| 組込ツール | 約40以上 |
|
||
| スラッシュコマンド | 約80以上 |
|
||
| 依存関係 (node_modules) | 約192パッケージ |
|
||
| ランタイム | Bun(Node.js >= 18バンドルにコンパイル) |
|
||
|
||
---
|
||
|
||
## エージェントモード
|
||
|
||
```
|
||
コアループ
|
||
========
|
||
|
||
ユーザー --> messages[] --> Claude API --> レスポンス
|
||
|
|
||
stop_reason == "tool_use"?
|
||
/ \
|
||
はい いいえ
|
||
| |
|
||
ツール実行 テキスト返却
|
||
tool_result追加
|
||
ループ再突入 -----------------> messages[]
|
||
|
||
|
||
これが最小のエージェントループである。Claude Codeはこのループの上に
|
||
プロダクショングレードのハーネスをラップする: 権限、ストリーミング、
|
||
並行性、圧縮、サブエージェント、永続化、MCP。
|
||
```
|
||
|
||
---
|
||
|
||
## ディレクトリ参照
|
||
|
||
```
|
||
src/
|
||
├── main.tsx # REPLブートストラップ、4,683行
|
||
├── QueryEngine.ts # SDK/headlessクエリライフサイクルエンジン
|
||
├── query.ts # メインエージェントループ(785KB、最大ファイル)
|
||
├── Tool.ts # ツールインターフェース + buildToolファクトリ
|
||
├── Task.ts # タスクタイプ、ID、状態ベースクラス
|
||
├── tools.ts # ツール登録、プリセット、フィルタリング
|
||
├── commands.ts # スラッシュコマンド定義
|
||
├── context.ts # ユーザー入力コンテキスト
|
||
├── cost-tracker.ts # APIコスト累積
|
||
├── setup.ts # 初回実行セットアップフロー
|
||
│
|
||
├── bridge/ # Claude Desktop / リモートブリッジ
|
||
│ ├── bridgeMain.ts # セッションライフサイクルマネージャ
|
||
│ ├── bridgeApi.ts # HTTPクライアント
|
||
│ ├── bridgeConfig.ts # 接続設定
|
||
│ ├── bridgeMessaging.ts # メッセージリレー
|
||
│ ├── sessionRunner.ts # プロセススポーン
|
||
│ ├── jwtUtils.ts # JWTリフレッシュ
|
||
│ ├── workSecret.ts # 認証トークン
|
||
│ └── capacityWake.ts # 容量ベースウェイク
|
||
│
|
||
├── cli/ # CLIインフラ
|
||
│ ├── handlers/ # コマンドハンドラ
|
||
│ └── transports/ # I/Oトランスポート(stdio, structured)
|
||
│
|
||
├── commands/ # 約80スラッシュコマンド
|
||
├── components/ # React/InkターミナルUI
|
||
├── entrypoints/ # アプリエントリポイント
|
||
├── hooks/ # React hooks
|
||
├── services/ # ビジネスロジック層
|
||
├── state/ # アプリ状態
|
||
├── tasks/ # タスク実装
|
||
├── tools/ # 40以上のツール実装
|
||
├── types/ # 型定義
|
||
├── utils/ # ユーティリティ(最大ディレクトリ)
|
||
└── vendor/ # ネイティブモジュールスタブ
|
||
```
|
||
|
||
---
|
||
|
||
## アーキテクチャ概要
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────────┐
|
||
│ エントリ層 │
|
||
│ cli.tsx ──> main.tsx ──> REPL.tsx(インタラクティブ) │
|
||
│ └──> QueryEngine.ts(headless/SDK) │
|
||
└──────────────────────────────┬──────────────────────────────────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────────────────────────────────────────────────────┐
|
||
│ クエリエンジン │
|
||
│ submitMessage(prompt) ──> AsyncGenerator<SDKMessage> │
|
||
│ ├── fetchSystemPromptParts() ──> システムプロンプト組立 │
|
||
│ ├── processUserInput() ──> /コマンド処理 │
|
||
│ ├── query() ──> メインエージェントループ │
|
||
│ │ ├── StreamingToolExecutor ──> 並列ツール実行 │
|
||
│ │ ├── autoCompact() ──> コンテキスト圧縮 │
|
||
│ │ └── runTools() ──> ツールオーケストレーション │
|
||
│ └── yield SDKMessage ──> コンシューマにストリーミング │
|
||
└──────────────────────────────┬──────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## ライセンス
|
||
|
||
本リポジトリのコンテンツは技術研究および教育目的でのみ提供されます。Claude Code に関連する知的財産権は **AnthropicおよびClaude** に帰属します。
|