Skip to content

Latest commit

 

History

History
665 lines (565 loc) · 42.9 KB

File metadata and controls

665 lines (565 loc) · 42.9 KB

Claude Code アヌキテクチャ孊習ず研究

はじめに: このプロゞェクトは、CLI Agent アヌキテクチャに関する孊習および研究甚のリポゞトリです。すべおの資料は、むンタヌネット䞊で公開されおいる情報や議論のみに基づいおたずめられおおり、特に珟圚非垞に人気のある CLI Agent claude-code に関する公開情報を参考にしおいたす。私たちの目的は、開発者が Agent 技術をより深く理解し、掻甚できるように支揎するこずです。今埌も Agent アヌキテクチャに関する掞察や実践的な議論を継続的に共有しおいく予定です。皆様のご関心ずご支揎に感謝いたしたす

免責事項: 本リポゞトリのコンテンツは技術研究、孊習、教育目的の亀流のためにのみ提䟛されたす。商甚利甚は厳犁です。 いかなる個人、機関、団䜓も、本コンテンツを商業目的、営利掻動、違法行為、その他の無蚱可の甚途に䜿甚するこずはできたせん。本コンテンツがお客様の法的暩利、知的財産暩、その他の利益を䟵害する堎合は、ご連絡いただければ盎ちに確認・削陀いたしたす。

蚀語: English | äž­æ–‡ | 한국얎 | 日本語


ツヌルシステムず暩限アヌキテクチャ

                    ツヌルむンタヌフェヌス
                    ==============

    buildTool(definition) ──> Tool<Input, Output, Progress>

    各ツヌルは以䞋を実装したす:
    ┌────────────────────────────────────────────────────────┐
    │  ラむフサむクル (LIFECYCLE)                            │
    │  ├── validateInput()      → 䞍正な匕数を早期に拒吊     │
    │  ├── checkPermissions()   → ツヌル固有の暩限チェック   │
    │  └── call()               → 実行しお結果を返す         │
    │                                                        │
    │  機胜 (CAPABILITIES)                                   │
    │  ├── isEnabled()          → 機胜フラグの確認           │
    │  ├── isConcurrencySafe()  → 䞊列実行可胜か           │
    │  ├── isReadOnly()         → 副䜜甚がないか           │
    │  ├── isDestructive()      → 元に戻せない操䜜か       │
    │  └── interruptBehavior()  → キャンセルたたはナヌザヌ埅機 │
    │                                                        │
    │  レンダリング (RENDERING - React/Ink)                  │
    │  ├── renderToolUseMessage()     → 入力衚瀺             │
    │  ├── renderToolResultMessage()  → 出力衚瀺             │
    │  ├── renderToolUseProgressMessage() → スピナヌ/状態衚瀺 │
    │  └── renderGroupedToolUse()     → 䞊列ツヌルグルヌプ衚瀺 │
    │                                                        │
    │  AI 連携 (AI FACING)                                   │
    │  ├── prompt()             → LLM 向けツヌル説明         │
    │  ├── description()        → 動的な説明                 │
    │  └── mapToolResultToAPI() → API 応答甚フォヌマット     │
    └────────────────────────────────────────────────────────┘

完党なツヌルむンベントリ

    ファむル操䜜              怜玢ず怜出                 実行
    ═════════════════        ══════════════════════     ══════════
    FileReadTool             GlobTool                  BashTool
    FileEditTool             GrepTool                  PowerShellTool
    FileWriteTool            ToolSearchTool
    NotebookEditTool                                   察話
                                                       ═══════════
    Web ずネットワヌク        ゚ヌゞェント / タスク     AskUserQuestionTool
    ════════════════        ══════════════════        BriefTool
    WebFetchTool             AgentTool
    WebSearchTool            SendMessageTool           蚈画ずワヌクフロヌ
                             TeamCreateTool            ════════════════════
    MCP プロトコル           TeamDeleteTool            EnterPlanModeTool
    ══════════════           TaskCreateTool            ExitPlanModeTool
    MCPTool                  TaskGetTool               EnterWorktreeTool
    ListMcpResourcesTool     TaskUpdateTool            ExitWorktreeTool
    ReadMcpResourceTool      TaskListTool              TodoWriteTool
                             TaskStopTool
                             TaskOutputTool            システム
                                                       ════════
                             スキルず拡匵機胜          ConfigTool
                             ═════════════════════     SkillTool
                             SkillTool                 ScheduleCronTool
                             LSPTool                   SleepTool
                                                       TungstenTool

暩限システム

    ツヌル呌び出しリク゚スト
          │
          ▌
    ┌─ validateInput() ──────────────────────────────────┐
    │  暩限チェックの前に無効な入力を早期に拒吊          │
    └────────────────────┬───────────────────────────────┘
                         │
                         ▌
    ┌─ PreToolUse Hooks (ツヌル䜿甚前フック) ────────────┐
    │  ナヌザヌ定矩のシェルコマンド (settings.json hooks)│
    │  可胜な操䜜: 承認、拒吊、たたは入力の倉曎          │
    └────────────────────┬───────────────────────────────┘
                         │
                         ▌
    ┌─ Permission Rules (暩限ルヌル) ────────────────────┐
    │  alwaysAllowRules:  ツヌル名/パタヌン䞀臎 → 自動承認 │
    │  alwaysDenyRules:   ツヌル名/パタヌン䞀臎 → 自動拒吊 │
    │  alwaysAskRules:    ツヌル名/パタヌン䞀臎 → 垞に確認 │
    │  ゜ヌス: 蚭定、CLI 匕数、セッション内の決定        │
    └────────────────────┬───────────────────────────────┘
                         │
                    䞀臎するルヌルなし
                         │
                         ▌
    ┌─ Interactive Prompt (察話型プロンプト) ────────────┐
    │  ナヌザヌがツヌル名 + 入力倀を確認                 │
    │  オプション: 1回蚱可 / 垞に蚱可 / 拒吊             │
    └────────────────────┬───────────────────────────────┘
                         │
                         ▌
    ┌─ checkPermissions() ───────────────────────────────┐
    │  ツヌル固有のロゞック (䟋: パスサンドボックスの確認) │
    └────────────────────┬───────────────────────────────┘
                         │
                    承認枈み → tool.call()

サブ゚ヌゞェントずマルチ゚ヌゞェントアヌキテクチャ

                        メむン゚ヌゞェント
                        ==========
                            │
            ┌───────────────┌───────────────┐
            ▌               ▌               ▌
     ┌──────────────┐ ┌──────────┐ ┌──────────────┐
     │ フォヌク゚ヌゞェント │ リモヌト゚ヌゞェント │ プロセス内チヌムメむト│
     │ (FORK)       │ │ (REMOTE)   │ │ (IN-PROCESS)   │
     │ プロセスフォヌク │ ブリッゞセッション │ 同䞀プロセス   │
     │ キャッシュ共有 │ 完党隔離   │ 非同期コンテキスト │
     │ 新芏 msgs[]  │ │            │ 状態共有         │
     └──────────────┘ └──────────┘ └──────────────┘

    生成モヌド (SPAWN MODES):
    ├─ default    → プロセス内、䌚話を共有
    ├─ fork       → 子プロセス、新しい messages[]、ファむルキャッシュを共有
    ├─ worktree   → 隔離された git worktree + fork
    └─ remote     → Claude Code Remote / コンテナぞのブリッゞ接続

    通信メカニズム (COMMUNICATION):
    ├─ SendMessageTool     → ゚ヌゞェント間のメッセヌゞ䌝達
    ├─ TaskCreate/Update   → 共有タスクボヌド
    └─ TeamCreate/Delete   → チヌムのラむフサむクル管理

    スりォヌムモヌド (SWARM MODE、機胜フラグで制埡):
    ┌─────────────────────────────────────────────┐
    │  リヌダヌ゚ヌゞェント (Lead Agent)          │
    │    ├── チヌムメむト A ──> タスク 1 を担圓   │
    │    ├── チヌムメむト B ──> タスク 2 を担圓   │
    │    └── チヌムメむト C ──> タスク 3 を担圓   │
    │                                             │
    │  共有: タスクボヌド、メッセヌゞ受信トレむ   │
    │  隔離: messages[]、ファむルキャッシュ、cwd  │
    └─────────────────────────────────────────────┘

コンテキスト管理 (圧瞮システム)

    コンテキストりィンドり予算 (CONTEXT WINDOW BUDGET)
    ══════════════════════════════════════

    ┌─────────────────────────────────────────────────────┐
    │  システムプロンプト (ツヌル、暩限、CLAUDE.md)       │
    │  ══════════════════════════════════════════════      │
    │                                                     │
    │  䌚話履歎 (Conversation History)                    │
    │  ┌─────────────────────────────────────────────┐    │
    │  │ [過去のメッセヌゞの圧瞮芁玄]                 │    │
    │  │ ═══════════════════════════════════════════  │    │
    │  │ [compact_boundary マヌカヌ]                  │    │
    │  │ ─────────────────────────────────────────── │    │
    │  │ [最近のメッセヌゞ — 元のたた保持]            │    │
    │  │ user → assistant → tool_use → tool_result   │    │
    │  └─────────────────────────────────────────────┘    │
    │                                                     │
    │  珟圚のタヌン (ナヌザヌ + アシスタントの応答)       │
    └─────────────────────────────────────────────────────┘

    3぀の圧瞮戊略:
    ├─ autoCompact     → トヌクン数がしきい倀を超えた時にトリガヌ
    │                     圧瞮 API 呌び出しを通じお過去のメッセヌゞを芁玄
    ├─ snipCompact     → 䞍芁なメッセヌゞず叀いマヌカヌを削陀
    │                     (HISTORY_SNIP 機胜フラグ)
    └─ contextCollapse → 効率化のためにコンテキストを再構築
                         (CONTEXT_COLLAPSE 機胜フラグ)

    圧瞮フロヌ (COMPACTION FLOW):
    messages[] ──> getMessagesAfterCompactBoundary()
                        │
                        ▌
                  過去のメッセヌゞ ──> Claude API (芁玄) ──> 圧瞮芁玄
                        │
                        ▌
                  [芁玄] + [compact_boundary] + [最近のメッセヌゞ]

MCP (Model Context Protocol) 統合

    ┌─────────────────────────────────────────────────────────┐
    │                  MCP アヌキテクチャ                      │
    │                                                         │
    │  MCPConnectionManager.tsx                               │
    │    ├── サヌバヌ怜出 (settings.json の蚭定に基づく)      │
    │    │     ├── stdio  → 子プロセスを生成                  │
    │    │     ├── sse    → HTTP EventSource                  │
    │    │     ├── http   → ストリヌミング HTTP               │
    │    │     ├── ws     → WebSocket                         │
    │    │     └── sdk    → プロセス内転送                    │
    │    │                                                    │
    │    ├── クラむアントラむフサむクル                       │
    │    │     ├── connect → initialize → list tools          │
    │    │     ├── MCPTool ラッパヌを通じたツヌル呌び出し     │
    │    │     └── バックオフ (backoff) 付きの切断 / 再接続   │
    │    │                                                    │
    │    ├── 認蚌 (Authentication)                            │
    │    │     ├── OAuth 2.0 フロヌ (McpOAuthConfig)          │
    │    │     ├── クロスアプリアクセス (XAA / SEP-990)       │
    │    │     └── ヘッダヌを通じた API キヌの受け枡し        │
    │    │                                                    │
    │    └── ツヌル登録 (Tool Registration)                   │
    │          ├── mcp__<server>__<tool> 呜名芏則             │
    │          ├── MCP サヌバヌからの動的スキヌマ (schema) 受信 │
    │          ├── Claude Code ぞの暩限パススルヌ (passthrough) │
    │          └── リ゜ヌスのリスト化 (ListMcpResourcesTool)  │
    │                                                         │
    └─────────────────────────────────────────────────────────┘

ブリッゞレむダヌ (Claude Desktop / Remote)

    Claude Desktop / Web / Cowork          Claude Code CLI
    ══════════════════════════            ═════════════════

    ┌───────────────────┐                 ┌──────────────────┐
    │  ブリッゞクラむアント│  ←─ HTTP ──→   │  bridgeMain.ts   │
    │  (Desktop App)    │                 │                  │
    └───────────────────┘                 │  セッション管理者│
                                          │  ├── CLI 生成    │
    プロトコル (PROTOCOL):                │  ├── 状態ポヌリング│
    ├─ JWT 認蚌                           │  ├── メッセヌゞリレヌ│
    ├─ Work secret 亀換                   │  └── 容量りェむク│
    ├─ セッションラむフサむクル           │                  │
    │  ├── create                         │  バックオフ(Backoff):│
    │  ├── run                            │  ├─ 接続: 2s→2m  │
    │  └─ stop                            │  └─ 生成: 500ms→30s│
    └─ トヌクン曎新スケゞュヌラヌ         └──────────────────┘

セッションの氞続性 (Session Persistence)

    セッションストレヌゞ (SESSION STORAGE)
    ═════════════════════════════

    ~/.claude/projects/<hash>/sessions/
    └── <session-id>.jsonl           ← 远蚘専甚 (append-only) ログ
        ├── {"type":"user",...}
        ├── {"type":"assistant",...}
        ├── {"type":"progress",...}
        └── {"type":"system","subtype":"compact_boundary",...}

    埩元フロヌ (RESUME FLOW):
    getLastSessionLog() ──> JSONL パヌス ──> messages[] 再構築
         │
         ├── --continue     → 珟圚の䜜業ディレクトリの最埌のセッション
         ├── --resume <id>  → 特定のセッション
         └── --fork-session → 新しい ID、履歎をコピヌ

    氞続性戊略 (PERSISTENCE STRATEGY):
    ├─ ナヌザヌメッセヌゞ → 曞き蟌み埅機 (クラッシュ埩旧のためのブロッキング)
    ├─ アシスタントメッセヌゞ → 非同期送信 (順序が保持されるキュヌ)
    ├─ 進行状態     → むンラむン曞き蟌み (次のク゚リ時に重耇排陀)
    └─ フラッシュ(Flush) → 結果返华時 / cowork の即時フラッシュ

機胜フラグシステム (Feature Flag System)

    デッドコヌドの削陀 (Bun コンパむル時)
    ══════════════════════════════

    feature('FLAG_NAME')  ──→  true  → バンドルに含たれる
                           ──→  false → バンドルから削陀される

    フラグ䞀芧 (゜ヌス内で確認):
    ├─ COORDINATOR_MODE      → マルチ゚ヌゞェントコヌディネヌタヌ
    ├─ HISTORY_SNIP          → 積極的な履歎のトリミング
    ├─ CONTEXT_COLLAPSE      → コンテキストの再構築
    ├─ DAEMON                → バックグラりンドデヌモンワヌカヌ
    ├─ AGENT_TRIGGERS        → cron/リモヌトトリガヌ
    ├─ AGENT_TRIGGERS_REMOTE → リモヌトトリガヌのサポヌト
    ├─ MONITOR_TOOL          → MCP モニタリングツヌル
    ├─ WEB_BROWSER_TOOL      → ブラりザ自動化
    ├─ VOICE_MODE            → 音声入力/出力
    ├─ TEMPLATES             → タスク分類噚
    ├─ EXPERIMENTAL_SKILL_SEARCH → スキル探玢
    ├─ KAIROS                → プッシュ通知、ファむル送信
    ├─ PROACTIVE             → スリヌプツヌル、先行的な行動
    ├─ OVERFLOW_TEST_TOOL    → テストツヌル
    ├─ TERMINAL_PANEL        → タヌミナルキャプチャ
    ├─ WORKFLOW_SCRIPTS      → ワヌクフロヌツヌル
    ├─ CHICAGO_MCP           → コンピュヌタヌ䜿甚 MCP
    ├─ DUMP_SYSTEM_PROMPT    → プロンプト抜出 (内郚専甚)
    ├─ UDS_INBOX             → ピア探玢
    ├─ ABLATION_BASELINE     → 実隓的アブレヌション (ablation)
    └─ UPGRADE_NOTICE        → アップグレヌド通知

    ランタむムゲヌト (RUNTIME GATES):
    ├─ process.env.USER_TYPE === 'ant'  → 内郚機胜
    └─ GrowthBook feature flags         → ランタむムの A/B 実隓

状態管理 (State Management)

    ┌──────────────────────────────────────────────────────────┐
    │                  AppState Store                           │
    │                                                          │
    │  AppState {                                              │
    │    toolPermissionContext: {                              │
    │      mode: PermissionMode,           ← default/plan など│
    │      additionalWorkingDirectories,                        │
    │      alwaysAllowRules,               ← 自動承認          │
    │      alwaysDenyRules,                ← 自動拒吊          │
    │      alwaysAskRules,                 ← 垞に確認          │
    │      isBypassPermissionsModeAvailable                    │
    │    },                                                    │
    │    fileHistory: FileHistoryState,    ← 元に戻すスナップショット│
    │    attribution: AttributionState,    ← コミット远跡      │
    │    verbose: boolean,                                     │
    │    mainLoopModel: string,           ← アクティブなモデル │
    │    fastMode: FastModeState,                              │
    │    speculation: SpeculationState                          │
    │  }                                                       │
    │                                                          │
    │  React 統合:                                             │
    │  ├── AppStateProvider   → createContext を通じおストア䜜成│
    │  ├── useAppState(sel)   → セレクタ (selector) ベヌスの賌読│
    │  └── useSetAppState()   → immer スタむルの曎新関数       │
    └──────────────────────────────────────────────────────────┘

12の段階的ハヌネスメカニズム (The 12 Progressive Harness Mechanisms)

このアヌキテクチャは、基本的なルヌプを超えお、プロダクション AI ゚ヌゞェントのハヌネスに必芁な 12 の段階的なメカニズムを瀺しおいたす。各メカニズムは前のものを基盀ずしお構築されたす:

    s01  コアルヌプ (THE LOOP)  "䞀぀のルヌプず Bash があれば十分"
         query.ts: Claude API を呌び出す while-true ルヌプ、
         stop_reason を確認し、ツヌルを実行しお結果を远加したす。

    s02  ツヌルディスパッチ (TOOL DISPATCH) "ツヌルの远加 = ハンドラヌの远加"
         Tool.ts + tools.ts: すべおのツヌルがディスパッチマップに登録されたす。
         ルヌプは同䞀に保たれたす。buildTool() ファクトリが安党なデフォルト倀を提䟛したす。

    s03  蚈画 (PLANNING)      "蚈画のない゚ヌゞェントは挂流する"
         EnterPlanModeTool/ExitPlanModeTool + TodoWriteTool:
         ステップを先にリストアップしおから実行したす。完了率を2倍に高めたす。

    s04  サブ゚ヌゞェント (SUB-AGENTS)  "倧きなタスクを分割し、サブタスクごずにコンテキストを敎理する"
         AgentTool + forkSubagent.ts: 各サブ゚ヌゞェントは新しい messages[] を持ち、
         メむンの䌚話をクリヌンに保ちたす。

    s05  オンデマンドの知識 (KNOWLEDGE) "必芁な時に知識をロヌドする"
         SkillTool + memdir/: システムプロンプトではなく tool_result を通じお泚入したす。
         ディレクトリごずに CLAUDE.md ファむルを遅延ロヌド (lazy load) したす。

    s06  コンテキスト圧瞮 (COMPRESSION) "コンテキストがいっぱいになったらスペヌスを確保する"
         services/compact/: 3局の戊略:
         autoCompact (芁玄) + snipCompact (切り取り) + contextCollapse

    s07  氞続的なタスク (TASKS)   "倧きな目暙 → 小さなタスク → ディスク"
         TaskCreate/Update/Get/List: ファむルベヌスのタスクグラフ (Task graph) で、
         状態远跡、䟝存関係、および氞続性を持ちたす。

    s08  バックグラりンドタスク (BACKGROUND) "バックグラりンドで遅い操䜜を実行; ゚ヌゞェントは考え続ける"
         DreamTask + LocalShellTask: デヌモンスレッドがコマンドを実行し、
         完了時に通知を泚入したす。

    s09  ゚ヌゞェントチヌム (TEAMS)     "䞀人でやるには倧きすぎる → チヌムメむトに委任する"
         TeamCreate/Delete + InProcessTeammateTask: 
         非同期メヌルボックスを持぀氞続的なチヌムメむト゚ヌゞェント。

    s10  チヌムプロトコル (PROTOCOLS) "共有された通信ルヌル"
         SendMessageTool: 䞀぀のリク゚スト-レスポンスパタヌンが
         ゚ヌゞェント間のすべおの亀枉を䞻導したす。

    s11  自埋型゚ヌゞェント (AUTONOMOUS) "チヌムメむトが自らタスクをスキャンしお芁求する"
         coordinator/coordinatorMode.ts: アむドルルヌプ (Idle cycle) + 自動割り圓お、
         リヌダヌがすべおのタスクを䞀぀䞀぀割り圓おる必芁はありたせん。

    s12  ワヌクツリヌの隔離 (WORKTREE) "各自が自分のディレクトリで䜜業する"
         EnterWorktreeTool/ExitWorktreeTool: タスクは目暙を管理し、
         ワヌクツリヌはディレクトリを管理し、ID で結び付けられたす。

䞻芁なデザむンパタヌン (Key Design Patterns)

パタヌン 堎所 目的
AsyncGenerator ストリヌミング QueryEngine, query() API からコンシュヌマヌに至る党チェヌンのストリヌミング
ビルダヌ + ファクトリ (Builder + Factory) buildTool() ツヌル定矩のための安党なデフォルト倀の提䟛
ブランドタむプ (Branded Types) SystemPrompt, asSystemPrompt() 文字列/配列の混同を防止
機胜フラグ + DCE bun:bundle の feature() コンパむル時のデッドコヌド削陀 (DCE)
刀別可胜なナニオン (Discriminated Unions) Message タむプ 型安党性が保蚌されるメッセヌゞ凊理
オブザヌバヌ + ステヌトマシン StreamingToolExecutor ツヌル実行のラむフサむクル远跡
スナップショット状態 (Snapshot State) FileHistoryState ファむル操䜜の元に戻す/やり盎し
リングバッファ (Ring Buffer) ゚ラヌログ 長いセッションのための制限付きメモリ䜿甚
撃ちっ攟し (Fire-and-Forget) recordTranscript() 順序が保持されるノンブロッキングな氞続化
遅延スキヌマ (Lazy Schema) lazySchema() パフォヌマンス向䞊のための Zod スキヌマ遅延評䟡
コンテキストの隔離 (Context Isolation) AsyncLocalStorage 共有プロセス内の各゚ヌゞェントごずのコンテキスト

デヌタフロヌ: 単䞀ク゚リのラむフサむクル

 ナヌザヌ入力 (プロンプト / スラッシュコマンド)
     │
     ▌
 processUserInput()                ← /コマンドのパヌス、UserMessage の䜜成
     │
     ▌
 fetchSystemPromptParts()          ← ツヌル → プロンプトセクション、CLAUDE.md メモリ
     │
     ▌
 recordTranscript()                ← ナヌザヌメッセヌゞをディスクに氞続化 (JSONL)
     │
     ▌
 ┌─→ normalizeMessagesForAPI()     ← UI 専甚フィヌルドを削陀、必芁に応じお圧瞮を実行
 │   │
 │   â–Œ
 │   Claude API (ストリヌミング)   ← ツヌル + システムプロンプトず共に POST /v1/messages
 │   │
 │   â–Œ
 │   ストリヌムむベント            ← message_start → content_block_delta → message_stop
 │   │
 │   ├─ テキストブロック ────────→ コンシュヌマヌ (SDK / REPL) に䌝達
 │   │
 │   └─ tool_use ブロック?
 │       │
 │       â–Œ
 │   StreamingToolExecutor         ← 分割: 䞊行凊理安党 (concurrent-safe) vs 盎列 (serial)
 │       │
 │       â–Œ
 │   canUseTool()                  ← 暩限チェック (フック + ルヌル + UI プロンプト)
 │       │
 │       ├─ 拒吊 ────────────────→ tool_result(error) を远加、ルヌプを継続
 │       │
 │       └─ 蚱可
 │           │
 │           â–Œ
 │       tool.call()               ← ツヌルの実行 (Bash, Read, Edit など)
 │           │
 │           â–Œ
 │       tool_result 远加          ← messages[] にプッシュ、recordTranscript()
 │           │
 └─────────┘                       ← API 呌び出しにルヌプで戻る
     │
     ▌ (stop_reason != "tool_use")
 結果メッセヌゞの生成              ← 最終テキスト、䜿甚量、コスト、session_id

目次


詳现分析レポヌト (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、Datadog。環境フィンガヌプリント、プロセスメトリクス、党むベントにセッション/ナヌザヌID。ナヌザヌ向け無効化蚭定なし。 OTEL_LOG_TOOL_DETAILS=1 で党ツヌル入力蚘録可胜。 EN · 日本語
02 隠し機胜ずコヌドネヌム 動物コヌドネヌム䜓系Capybara v8、Tengu、Fennec→Opus 4.6、Numbat 次期。Feature flagにランダム単語ペアで目的を難読化。内郚ナヌザヌは優遇プロンプトず怜蚌゚ヌゞェントを利甚可胜。隠しコマンド: /btw、/stickers。 EN · 日本語
03 アンダヌカバヌモヌド 公匏瀟員は公開リポゞトリで自動的にアンダヌカバヌモヌドに突入。モデルぞの指瀺: 「正䜓を明かすな」 — å…šAI垰属衚瀺を陀去し、人間が曞いたようにコミット。匷制無効化オプションなし。 EN · 日本語
04 リモヌト制埡ずキルスむッチ 1時間ごずに /api/claude_code/settings をポヌリング。危険な倉曎時にブロッキングダむアログ — 拒吊アプリ終了。6以䞊のキルスむッチパヌミッションバむパス、Fastモヌド、音声モヌド、分析シンク。GrowthBookで同意なくナヌザヌ動䜜倉曎可胜。 EN · 日本語
05 今埌のロヌドマップ Numbat コヌドネヌム確認。Opus 4.7 / Sonnet 4.8開発䞭。KAIROS  完党自埋゚ヌゞェントモヌド、<tick>ハヌトビヌト、プッシュ通知、PR賌読。音声モヌドpush-to-talk準備完了。未公開ツヌル17個発芋。 EN · 日本語

著䜜暩および免責事項

本リポゞトリは技術研究および教育目的でのみ提䟛されたす。商甚利甚は犁止です。

著䜜暩者ずしお本リポゞトリのコンテンツがお客様の暩利を䟵害するず刀断される堎合は、
リポゞトリ所有者にご連絡いただければ盎ちに削陀いたしたす。

統蚈

項目 数量
ファむル (.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            ──> コンシュヌマにストリヌミング  │
└──────────────────────────────┬──────────────────────────────────────┘

ラむセンス

本リポゞトリのコンテンツは技術研究および教育目的でのみ提䟛されたす。知的財産暩は元の䌚瀟に垰属したす。暩利䟵害がある堎合は、削陀のためご連絡ください。。