mirror of
https://github.com/sanbuphy/claude-code-source-code.git
synced 2026-04-03 11:34:54 +08:00
init repo
This commit is contained in:
124
docs/ja/01-テレメトリとプライバシー.md
Normal file
124
docs/ja/01-テレメトリとプライバシー.md
Normal file
@@ -0,0 +1,124 @@
|
||||
# テレメトリおよびプライバシー分析
|
||||
|
||||
> インターネット上で公開されている資料やコミュニティの議論をもとに整理した Claude Code v2.1.88 分析レポート。
|
||||
|
||||
## 概要
|
||||
|
||||
Claude Codeは二層の分析パイプラインを実装し、広範な環境情報と使用メタデータを収集している。キーロギングやユーザーコード流出の証拠はないが、収集範囲の広さと完全な無効化が不可能な点にプライバシー上の懸念がある。
|
||||
|
||||
## データパイプライン構成
|
||||
|
||||
### ファーストパーティロギング(1P)
|
||||
|
||||
- **エンドポイント**: `https://api.anthropic.com/api/event_logging/batch`
|
||||
- **プロトコル**: OpenTelemetry + Protocol Buffers
|
||||
- **バッチサイズ**: 最大200イベント、10秒間隔で送信
|
||||
- **リトライ**: 二次バックオフ、最大8回、ディスク永続化
|
||||
- **ストレージ**: 送信失敗時 `~/.claude/telemetry/` に保存
|
||||
|
||||
出典: `src/services/analytics/firstPartyEventLoggingExporter.ts`
|
||||
|
||||
### サードパーティロギング(Datadog)
|
||||
|
||||
- **エンドポイント**: `https://http-intake.logs.us5.datadoghq.com/api/v2/logs`
|
||||
- **対象**: 事前承認済みの64種類のイベントに限定
|
||||
- **トークン**: `pubbbf48e6d78dae54bceaa4acf463299bf`
|
||||
|
||||
出典: `src/services/analytics/datadog.ts`
|
||||
|
||||
## 収集項目
|
||||
|
||||
### 環境フィンガープリント
|
||||
|
||||
すべてのイベントに以下のメタデータが含まれる(`src/services/analytics/metadata.ts:417-452`):
|
||||
|
||||
```
|
||||
- platform, platformRaw, arch, nodeVersion
|
||||
- ターミナル種別
|
||||
- インストール済みパッケージマネージャとランタイム
|
||||
- CI/CD検出、GitHub Actionsメタデータ
|
||||
- WSLバージョン、Linuxディストリビューション、カーネルバージョン
|
||||
- VCS(バージョン管理システム)種別
|
||||
- Claude Codeバージョンとビルド日時
|
||||
- デプロイ環境
|
||||
```
|
||||
|
||||
### プロセスメトリクス(`metadata.ts:457-467`)
|
||||
|
||||
```
|
||||
- uptime, rss, heapTotal, heapUsed
|
||||
- CPU使用量と使用率
|
||||
- memory arraysとexternal allocations
|
||||
```
|
||||
|
||||
### ユーザー追跡(`metadata.ts:472-496`)
|
||||
|
||||
```
|
||||
- 使用中のモデル
|
||||
- セッションID、ユーザーID、デバイスID
|
||||
- アカウントUUID、組織UUID
|
||||
- サブスクリプション等級(max, pro, enterprise, team)
|
||||
- リポジトリリモートURLハッシュ(SHA256、先頭16文字)
|
||||
- エージェント種別、チーム名、親セッションID
|
||||
```
|
||||
|
||||
### ツール入力ロギング
|
||||
|
||||
ツール入力はデフォルトで切り詰められる:
|
||||
|
||||
```
|
||||
- 文字列: 512文字で切り詰め、128文字+省略記号で表示
|
||||
- JSON: 4,096文字制限
|
||||
- 配列: 最大20要素
|
||||
- ネストオブジェクト: 最大2階層
|
||||
```
|
||||
|
||||
出典: `metadata.ts:236-241`
|
||||
|
||||
ただし、`OTEL_LOG_TOOL_DETAILS=1` 設定時は**ツール入力がすべて記録される**。
|
||||
|
||||
出典: `metadata.ts:86-88`
|
||||
|
||||
### ファイル拡張子追跡
|
||||
|
||||
`rm, mv, cp, touch, mkdir, chmod, chown, cat, head, tail, sort, stat, diff, wc, grep, rg, sed` 関連のBashコマンドで、ファイル引数の拡張子が抽出・記録される。
|
||||
|
||||
出典: `metadata.ts:340-412`
|
||||
|
||||
## 無効化の問題
|
||||
|
||||
ファーストパーティロギングパイプラインは、直接Anthropic APIユーザーの場合**無効化できない**。
|
||||
|
||||
```typescript
|
||||
// src/services/analytics/firstPartyEventLogger.ts:141-144
|
||||
export function is1PEventLoggingEnabled(): boolean {
|
||||
return !isAnalyticsDisabled()
|
||||
}
|
||||
```
|
||||
|
||||
`isAnalyticsDisabled()` がtrueを返すケース:
|
||||
- テスト環境
|
||||
- サードパーティクラウドプロバイダ(Bedrock, Vertex)
|
||||
- グローバルテレメトリ無効化(設定UIに非公開)
|
||||
|
||||
ファーストパーティイベントロギングを無効化する**ユーザー向け設定は存在しない**。
|
||||
|
||||
## GrowthBook A/Bテスト
|
||||
|
||||
ユーザーは明示的な同意なくGrowthBookを通じて実験グループに割り当てられる。送信されるユーザー属性:
|
||||
|
||||
```
|
||||
- id, sessionId, deviceID
|
||||
- platform, organizationUUID, subscriptionType
|
||||
```
|
||||
|
||||
出典: `src/services/analytics/growthbook.ts`
|
||||
|
||||
## 要点
|
||||
|
||||
1. **収集量**: セッションあたり数百件のイベントが収集される
|
||||
2. **無効化不可**: 直接APIユーザーはファーストパーティロギングを停止できない
|
||||
3. **永続性**: 送信失敗イベントはディスクに保存され積極的にリトライされる
|
||||
4. **サードパーティ共有**: データがDatadogに送信される
|
||||
5. **ツール詳細バックドア**: `OTEL_LOG_TOOL_DETAILS=1` で全入力ロギングが有効化される
|
||||
6. **リポジトリフィンガープリント**: リポジトリURLがハッシュ化されサーバー側の相関分析に使用される
|
||||
112
docs/ja/02-隠し機能とコードネーム.md
Normal file
112
docs/ja/02-隠し機能とコードネーム.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# 隠し機能とモデルコードネーム
|
||||
|
||||
> インターネット上で公開されている資料やコミュニティの議論をもとに整理した Claude Code v2.1.88 分析レポート。
|
||||
|
||||
## モデルコードネーム体系
|
||||
|
||||
Anthropicは内部モデルコードネームに**動物名**を使用している。外部ビルドへの漏洩を積極的に防止している。
|
||||
|
||||
### 既知のコードネーム
|
||||
|
||||
| コードネーム | 役割 | 根拠 |
|
||||
|-------------|------|------|
|
||||
| **Tengu**(天狗) | 製品/テレメトリ接頭辞、モデルの可能性あり | 250以上の分析イベントとfeature flagに `tengu_*` 接頭辞で使用 |
|
||||
| **Capybara**(カピバラ) | Sonnet系モデル、現在v8 | `capybara-v2-fast[1m]`、v8動作問題のパッチあり |
|
||||
| **Fennec**(フェネック) | Opus 4.6の前身モデル | マイグレーション: `fennec-latest` → `opus` |
|
||||
| **Numbat**(ナンバット) | 次期モデル | コメント: "Remove this section when we launch numbat" |
|
||||
|
||||
### コードネーム保護
|
||||
|
||||
`undercover` モードで保護対象コードネームが明示されている:
|
||||
|
||||
```typescript
|
||||
// src/utils/undercover.ts:48-49
|
||||
NEVER include in commit messages or PR descriptions:
|
||||
- Internal model codenames (animal names like Capybara, Tengu, etc.)
|
||||
- Unreleased model version numbers (e.g., opus-4-7, sonnet-4-8)
|
||||
```
|
||||
|
||||
ビルドシステムは `scripts/excluded-strings.txt` を使用してコードネームの漏洩を検出する。Buddyシステムの種(species)は `String.fromCharCode()` でエンコードし、カナリア検出を回避している:
|
||||
|
||||
```typescript
|
||||
// src/buddy/types.ts:10-13
|
||||
// One species name collides with a model-codename canary in excluded-strings.txt.
|
||||
// The check greps build output (not source), so runtime-constructing the value keeps
|
||||
// the literal out of the bundle while the check stays armed for the actual codename.
|
||||
```
|
||||
|
||||
衝突する種は **capybara** — ペットの種でありモデルコードネームでもある。
|
||||
|
||||
### Capybara動作問題(v8)
|
||||
|
||||
アーキテクチャからCapybara v8の具体的な動作問題が確認される:
|
||||
|
||||
1. **Stop sequenceの誤発動**(プロンプト末尾に `<functions>` がある場合、約10%の発生率)
|
||||
- 出典: `src/utils/messages.ts:2141`
|
||||
|
||||
2. **空のtool_resultで出力ゼロ**
|
||||
- 出典: `src/utils/toolResultStorage.ts:281`
|
||||
|
||||
3. **コメント過剰挿入** — 専用コメント抑制プロンプトパッチが必要
|
||||
- 出典: `src/constants/prompts.ts:204`
|
||||
|
||||
4. **高い虚偽主張率**: v8は29-30%、v4は16.7%
|
||||
- 出典: `src/constants/prompts.ts:237`
|
||||
|
||||
5. **不十分な検証** — "徹底度カウンターウェイト(thoroughness counterweight)"が必要
|
||||
- 出典: `src/constants/prompts.ts:210`
|
||||
|
||||
## Feature Flag命名規則
|
||||
|
||||
すべてのfeature flagは `tengu_` 接頭辞に**ランダムな単語ペア**を使用し、目的を難読化している:
|
||||
|
||||
| Flag | 用途 |
|
||||
|------|------|
|
||||
| `tengu_onyx_plover` | Auto Dream(バックグラウンド記憶統合) |
|
||||
| `tengu_coral_fern` | memdir機能 |
|
||||
| `tengu_moth_copse` | memdir追加スイッチ |
|
||||
| `tengu_herring_clock` | Team memory |
|
||||
| `tengu_passport_quail` | Path機能 |
|
||||
| `tengu_slate_thimble` | memdir追加スイッチ |
|
||||
| `tengu_sedge_lantern` | Away Summary |
|
||||
| `tengu_frond_boric` | 分析キルスイッチ |
|
||||
| `tengu_amber_quartz_disabled` | 音声モードキルスイッチ |
|
||||
| `tengu_amber_flint` | Agent teams |
|
||||
| `tengu_hive_evidence` | 検証エージェント |
|
||||
|
||||
ランダムな単語パターン(形容詞/素材 + 自然/物体)により、外部の観察者がflag名から機能の目的を推測することを防ぐ。
|
||||
|
||||
## 内部ユーザーと外部ユーザーの違い
|
||||
|
||||
Anthropic社員(`USER_TYPE === 'ant'`)は大幅に優遇されている:
|
||||
|
||||
### プロンプトの違い(`src/constants/prompts.ts`)
|
||||
|
||||
| 項目 | 外部ユーザー | 内部ユーザー(ant) |
|
||||
|------|------------|-------------------|
|
||||
| 出力スタイル | "Be extra concise"(極めて簡潔に) | "Err on the side of more explanation"(説明を多めに) |
|
||||
| 虚偽主張対策 | なし | 専用Capybara v8パッチ適用 |
|
||||
| 数値的長さ基準 | なし | "ツール間≤25単語、最終回答≤100単語" |
|
||||
| 検証エージェント | なし | 非自明な変更に必須 |
|
||||
| コメントガイド | 一般的 | 専用コメント過剰防止プロンプト |
|
||||
| 先制的修正 | なし | "ユーザーに誤解があれば指摘する" |
|
||||
|
||||
### ツールアクセス
|
||||
|
||||
内部ユーザーのみアクセス可能なツール:
|
||||
- `REPLTool` — REPLモード
|
||||
- `SuggestBackgroundPRTool` — バックグラウンドPR提案
|
||||
- `TungstenTool` — パフォーマンス監視パネル
|
||||
- `VerifyPlanExecutionTool` — 計画実行検証
|
||||
- Agent入れ子(エージェントがエージェントを生成)
|
||||
|
||||
## 隠しコマンド
|
||||
|
||||
| コマンド | 状態 | 説明 |
|
||||
|---------|------|------|
|
||||
| `/btw` | 有効 | 作業中断なしで余談質問 |
|
||||
| `/stickers` | 有効 | Claude Codeステッカー注文(ブラウザが開く) |
|
||||
| `/thinkback` | 有効 | 2025年振り返り |
|
||||
| `/effort` | 有効 | モデル努力レベル設定 |
|
||||
| `/good-claude` | スタブ | 隠しプレースホルダー |
|
||||
| `/bughunter` | スタブ | 隠しプレースホルダー |
|
||||
110
docs/ja/03-アンダーカバーモード.md
Normal file
110
docs/ja/03-アンダーカバーモード.md
Normal file
@@ -0,0 +1,110 @@
|
||||
# アンダーカバーモード分析
|
||||
|
||||
> インターネット上で公開されている資料やコミュニティの議論をもとに整理した Claude Code v2.1.88 分析レポート。
|
||||
|
||||
## アンダーカバーモードとは
|
||||
|
||||
アンダーカバーモードは、公式社員が外部/オープンソースリポジトリで作業する際に使用する安全保護メカニズムです。有効化すると、内部固有の AI モデル情報や帰属表示が隠され、コミットされたコードが人間の開発者の貢献と同じように見えるようになります。これは主に、内部の機密情報や未公開モデルの名称がオープンソースコミュニティに漏洩するのを防ぐためのものです。
|
||||
|
||||
出典: `src/utils/undercover.ts`
|
||||
|
||||
## 有効化条件
|
||||
|
||||
```typescript
|
||||
// src/utils/undercover.ts:28-37
|
||||
export function isUndercover(): boolean {
|
||||
if (process.env.USER_TYPE === 'ant') {
|
||||
if (isEnvTruthy(process.env.CLAUDE_CODE_UNDERCOVER)) return true
|
||||
// Auto: 内部リポジトリと確認されない限り自動有効化
|
||||
return getRepoClassCached() !== 'internal'
|
||||
}
|
||||
return false
|
||||
}
|
||||
```
|
||||
|
||||
主な特性:
|
||||
- **内部専用**: 公式社員(`USER_TYPE === 'ant'`)のみ対象
|
||||
- **デフォルト有効**: 内部許可リストにないすべてのリポジトリで自動有効化
|
||||
- **強制無効化不可**: "There is NO force-OFF. This guards against model codename leaks"
|
||||
- **外部ビルド**: バンドラーによりデッドコード除去され、実行されない
|
||||
|
||||
## モデルに渡されるプロンプト
|
||||
|
||||
```typescript
|
||||
// src/utils/undercover.ts:39-69
|
||||
export function getUndercoverInstructions(): string {
|
||||
return `## UNDERCOVER MODE — CRITICAL
|
||||
|
||||
You are operating UNDERCOVER in a PUBLIC/OPEN-SOURCE repository. Your commit
|
||||
messages, PR titles, and PR bodies MUST NOT contain ANY Anthropic-internal
|
||||
information. Do not blow your cover.
|
||||
|
||||
NEVER include in commit messages or PR descriptions:
|
||||
- Internal model codenames (animal names like Capybara, Tengu, etc.)
|
||||
- Unreleased model version numbers (e.g., opus-4-7, sonnet-4-8)
|
||||
- Internal repo or project names (e.g., claude-cli-internal, anthropics/…)
|
||||
- Internal tooling, Slack channels, or short links (e.g., go/cc, #claude-code-…)
|
||||
- The phrase "Claude Code" or any mention that you are an AI
|
||||
- Any hint of what model or version you are
|
||||
- Co-Authored-By lines or any other attribution
|
||||
|
||||
Write commit messages as a human developer would — describe only what the code
|
||||
change does.
|
||||
|
||||
GOOD:
|
||||
- "Fix race condition in file watcher initialization"
|
||||
- "Add support for custom key bindings"
|
||||
|
||||
BAD (never write these):
|
||||
- "Fix bug found while testing with Claude Capybara"
|
||||
- "1-shotted by claude-opus-4-6"
|
||||
- "Generated with Claude Code"
|
||||
- "Co-Authored-By: Claude Opus 4.6 <…>"`
|
||||
}
|
||||
```
|
||||
|
||||
## 帰属表示システム
|
||||
|
||||
帰属表示システム(`src/utils/attribution.ts`、`src/utils/commitAttribution.ts`)はアンダーカバーモードを補完する:
|
||||
|
||||
```typescript
|
||||
// src/utils/attribution.ts:70-72
|
||||
// @[MODEL LAUNCH]: 以下のハードコードされたフォールバックモデル名を更新
|
||||
// (コードネーム漏洩防止用)。
|
||||
// 外部リポジトリでは、認識されないモデルは "Claude Opus 4.6" にフォールバック。
|
||||
```
|
||||
|
||||
```typescript
|
||||
// src/utils/model/model.ts:386-392
|
||||
function maskModelCodename(baseName: string): string {
|
||||
// e.g. capybara-v2-fast → cap*****-v2-fast
|
||||
const [codename = '', ...rest] = baseName.split('-')
|
||||
const masked = codename.slice(0, 3) + '*'.repeat(Math.max(0, codename.length - 3))
|
||||
return [masked, ...rest].join('-')
|
||||
}
|
||||
```
|
||||
|
||||
## 示唆
|
||||
|
||||
### オープンソースへの影響
|
||||
|
||||
公式社員がClaude Codeでオープンソースプロジェクトにコントリビュートする場合:
|
||||
1. AIがコードを書くが、コミットは人間が書いたものとして表示される
|
||||
2. "Co-Authored-By: Claude"の帰属表示がない
|
||||
3. "Generated with Claude Code"のマーカーがない
|
||||
4. プロジェクトメンテナーやコミュニティはAI生成のコントリビュートを識別できない
|
||||
5. AIコントリビュートに関するオープンソースの透明性規範に抵触する可能性がある
|
||||
|
||||
### 公式保護目的
|
||||
|
||||
主な目的は以下の偶発的漏洩の防止:
|
||||
- 内部モデルコードネーム(競争情報)
|
||||
- 未公開バージョン番号(市場タイミング)
|
||||
- 内部インフラの詳細(セキュリティ)
|
||||
|
||||
### 倫理的考察
|
||||
|
||||
"Do not blow your cover(正体を明かすな)"という表現はAIを潜入工作員として位置づけている。公開コードコントリビュートにおけるAI著作の意図的な隠匿は以下の問題を提起する:
|
||||
- オープンソースコミュニティにおける透明性
|
||||
- プロジェクトコントリビュートガイドラインの遵守
|
||||
- 営業秘密保護と欺瞞の境界線
|
||||
161
docs/ja/04-リモート制御とキルスイッチ.md
Normal file
161
docs/ja/04-リモート制御とキルスイッチ.md
Normal file
@@ -0,0 +1,161 @@
|
||||
# リモート制御およびキルスイッチ
|
||||
|
||||
> インターネット上で公開されている資料やコミュニティの議論をもとに整理した Claude Code v2.1.88 分析レポート。
|
||||
|
||||
## 概要
|
||||
|
||||
Claude Codeは、公式管理者(および企業管理者)がシステムセキュリティと企業のコンプライアンスを確保するために、リモート構成を通じて特定のクライアントの動作を管理および更新できるリモート管理メカニズムを実装しています。
|
||||
|
||||
## 1. リモート管理設定
|
||||
|
||||
### 構成
|
||||
|
||||
対象セッションは以下から設定を取得する:
|
||||
```
|
||||
GET /api/claude_code/settings
|
||||
```
|
||||
|
||||
出典: `src/services/remoteManagedSettings/index.ts:105-107`
|
||||
|
||||
### ポーリング動作
|
||||
|
||||
```typescript
|
||||
// src/services/remoteManagedSettings/index.ts:52-54
|
||||
const SETTINGS_TIMEOUT_MS = 10000
|
||||
const DEFAULT_MAX_RETRIES = 5
|
||||
const POLLING_INTERVAL_MS = 60 * 60 * 1000 // 1時間
|
||||
```
|
||||
|
||||
設定は1時間ごとにポーリングされ、失敗時は最大5回リトライする。
|
||||
|
||||
### 対象資格
|
||||
|
||||
- Consoleユーザー(APIキー): 全員対象
|
||||
- OAuthユーザー: Enterprise/C4EおよびTeamサブスクライバーのみ
|
||||
|
||||
### 強制承認ダイアログ
|
||||
|
||||
リモート設定に「危険な」変更が含まれる場合、ブロッキングダイアログが表示される:
|
||||
|
||||
```typescript
|
||||
// src/services/remoteManagedSettings/securityCheck.tsx:67-73
|
||||
export function handleSecurityCheckResult(result: SecurityCheckResult): boolean {
|
||||
if (result === 'rejected') {
|
||||
gracefulShutdownSync(1) // 終了コード1で終了
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
```
|
||||
|
||||
リモート設定を拒否するとアプリケーションが**強制終了される**。選択肢はリモート設定の承認またはClaude Codeの終了のみである。
|
||||
|
||||
### 障害時の動作
|
||||
|
||||
リモートサーバーに接続できない場合、ディスクキャッシュ設定が使用される:
|
||||
|
||||
```typescript
|
||||
// src/services/remoteManagedSettings/index.ts:433-436
|
||||
if (cachedSettings) {
|
||||
logForDebugging('Remote settings: Using stale cache after fetch failure')
|
||||
setSessionCache(cachedSettings)
|
||||
return cachedSettings
|
||||
}
|
||||
```
|
||||
|
||||
リモート設定が一度適用されると、サーバー障害時もキャッシュが維持される。
|
||||
|
||||
## 2. Feature Flagキルスイッチ
|
||||
|
||||
GrowthBook feature flagにより複数の機能をリモート無効化できる:
|
||||
|
||||
### パーミッションバイパスキルスイッチ
|
||||
|
||||
```typescript
|
||||
// src/utils/permissions/bypassPermissionsKillswitch.ts
|
||||
// Statsigゲートを確認してパーミッションバイパスを無効化
|
||||
```
|
||||
|
||||
ユーザーの同意なくパーミッションバイパス機能を無効化できる。
|
||||
|
||||
### Autoモードサーキットブレーカー
|
||||
|
||||
```typescript
|
||||
// src/utils/permissions/autoModeState.ts
|
||||
// autoModeCircuitBroken状態でautoモードへの再突入を阻止
|
||||
```
|
||||
|
||||
Autoモードをリモートで無効化できる。
|
||||
|
||||
### Fastモードキルスイッチ
|
||||
|
||||
```typescript
|
||||
// src/utils/fastMode.ts
|
||||
// /api/claude_code_penguin_mode から取得
|
||||
// 特定ユーザーのfastモードを永久に無効化可能
|
||||
```
|
||||
|
||||
### 分析シンクキルスイッチ
|
||||
|
||||
```typescript
|
||||
// src/services/analytics/sinkKillswitch.ts:4
|
||||
const SINK_KILLSWITCH_CONFIG_NAME = 'tengu_frond_boric'
|
||||
```
|
||||
|
||||
すべての分析出力をリモートで停止できる。
|
||||
|
||||
### Agent Teamsキルスイッチ
|
||||
|
||||
```typescript
|
||||
// src/utils/agentSwarmsEnabled.ts
|
||||
// 環境変数とGrowthBookゲート 'tengu_amber_flint' の両方が必要
|
||||
```
|
||||
|
||||
### 音声モードキルスイッチ
|
||||
|
||||
```typescript
|
||||
// src/voice/voiceModeEnabled.ts:21
|
||||
// 'tengu_amber_quartz_disabled' — 音声モードの緊急停止
|
||||
```
|
||||
|
||||
## 3. モデルオーバーライドシステム
|
||||
|
||||
カナリアテストを実施したり、予期せぬオンラインの状況に対応するために、システムは内部社員などの特定のグループに対してモデルバージョンを動的に切り替えることをサポートしています:
|
||||
|
||||
```typescript
|
||||
// src/utils/model/antModels.ts:32-33
|
||||
// @[MODEL LAUNCH]: tengu_ant_model_overrideに新しいant専用モデルを更新
|
||||
// @[MODEL LAUNCH]: コードネームをscripts/excluded-strings.txtに追加
|
||||
```
|
||||
|
||||
`tengu_ant_model_override` GrowthBook flagで可能な操作:
|
||||
- デフォルトモデルの設定
|
||||
- デフォルト努力レベルの設定
|
||||
- システムプロンプトへの内容追加
|
||||
- カスタムモデルエイリアスの定義
|
||||
|
||||
## 4. Penguinモード
|
||||
|
||||
Fastモードの状態は専用エンドポイントから取得される:
|
||||
|
||||
```typescript
|
||||
// src/utils/fastMode.ts
|
||||
// GET /api/claude_code_penguin_mode
|
||||
// APIが無効を返した場合、該当ユーザーで永久無効化
|
||||
```
|
||||
|
||||
Fastモードの可用性を制御するfeature flag:
|
||||
- `tengu_penguins_off`
|
||||
- `tengu_marble_sandcastle`
|
||||
|
||||
## まとめ
|
||||
|
||||
| メカニズム | 対象範囲 | ユーザー同意 |
|
||||
|-----------|---------|------------|
|
||||
| リモート管理設定 | Enterprise/Team | 承認または終了 |
|
||||
| GrowthBook feature flag | 全ユーザー | なし |
|
||||
| キルスイッチ | 全ユーザー | なし |
|
||||
| モデルオーバーライド | 内部(ant) | なし |
|
||||
| Fastモード制御 | 全ユーザー | なし |
|
||||
|
||||
リモート制御インフラは広範にわたります。企業管理者はユーザーが上書きできないポリシーを強制することができ、システムは重大な問題に対処するために、機能フラグ(feature flags)を通じてすべてのユーザーの動作をリモートで変更できます。
|
||||
167
docs/ja/05-今後のロードマップ.md
Normal file
167
docs/ja/05-今後のロードマップ.md
Normal file
@@ -0,0 +1,167 @@
|
||||
# 今後のロードマップ — アーキテクチャが示すもの
|
||||
|
||||
> インターネット上で公開されている資料やコミュニティの議論をもとに整理した Claude Code v2.1.88 分析レポート。
|
||||
|
||||
## 1. 次期モデル: Numbat
|
||||
|
||||
次期モデルリリースの最も具体的な根拠:
|
||||
|
||||
```typescript
|
||||
// src/constants/prompts.ts:402
|
||||
// @[MODEL LAUNCH]: Remove this section when we launch numbat.
|
||||
```
|
||||
|
||||
**Numbat**(ナンバット)は次期モデルのコードネームである。このコメントはNumbatリリース時に出力効率セクションが改訂されることを示しており、より優れたネイティブ出力制御を備える可能性を示唆している。
|
||||
|
||||
### 今後のバージョン番号
|
||||
|
||||
```typescript
|
||||
// src/utils/undercover.ts:49
|
||||
- Unreleased model version numbers (e.g., opus-4-7, sonnet-4-8)
|
||||
```
|
||||
|
||||
**Opus 4.7** と **Sonnet 4.8** が開発中である。
|
||||
|
||||
### コードネームの変遷
|
||||
|
||||
```
|
||||
Fennec(フェネック) → Opus 4.6 → [Numbat?]
|
||||
Capybara(カピバラ) → Sonnet v8 → [?]
|
||||
Tengu(天狗) → テレメトリ/製品接頭辞
|
||||
```
|
||||
|
||||
FennecからOpusへのマイグレーションが文書化されている:
|
||||
|
||||
```typescript
|
||||
// src/migrations/migrateFennecToOpus.ts:7-11
|
||||
// fennec-latest → opus
|
||||
// fennec-latest[1m] → opus[1m]
|
||||
// fennec-fast-latest → opus[1m] + fast mode
|
||||
```
|
||||
|
||||
### MODEL LAUNCHチェックリスト
|
||||
|
||||
コードベースには更新項目を列挙した20以上の `@[MODEL LAUNCH]` マーカーがある:
|
||||
|
||||
- デフォルトモデル名(`FRONTIER_MODEL_NAME`)
|
||||
- モデルファミリーID
|
||||
- ナレッジカットオフ日
|
||||
- 料金表
|
||||
- コンテキストウィンドウ設定
|
||||
- Thinkingモードサポートフラグ
|
||||
- 表示名マッピング
|
||||
- マイグレーションスクリプト
|
||||
|
||||
## 2. KAIROS — 自律エージェントモード
|
||||
|
||||
最大規模の未公開機能であり、KAIROSはClaude Codeを受動的アシスタントから能動的自律エージェントに変換する。
|
||||
|
||||
### システムプロンプト(抜粋)
|
||||
|
||||
```
|
||||
// src/constants/prompts.ts:860-913
|
||||
|
||||
You are running autonomously.
|
||||
You will receive <tick> prompts that keep you alive between turns.
|
||||
If you have nothing useful to do, call SleepTool.
|
||||
Bias toward action — read files, make changes, commit without asking.
|
||||
|
||||
## Terminal focus
|
||||
- Unfocused: The user is away. Lean heavily into autonomous action.
|
||||
- Focused: The user is watching. Be more collaborative.
|
||||
```
|
||||
|
||||
### 関連ツール
|
||||
|
||||
| ツール | Feature Flag | 用途 |
|
||||
|-------|-------------|------|
|
||||
| SleepTool | KAIROS / PROACTIVE | 自律動作間のペーシング制御 |
|
||||
| SendUserFileTool | KAIROS | ユーザーへのファイル先行送信 |
|
||||
| PushNotificationTool | KAIROS / KAIROS_PUSH_NOTIFICATION | ユーザーデバイスへのプッシュ通知 |
|
||||
| SubscribePRTool | KAIROS_GITHUB_WEBHOOKS | GitHub PRウェブフック購読 |
|
||||
| BriefTool | KAIROS_BRIEF | 先行ステータス更新 |
|
||||
|
||||
### 動作方式
|
||||
|
||||
- `<tick>` ハートビートプロンプトで稼働
|
||||
- ターミナルフォーカス状態に応じて自律レベルを調整
|
||||
- 独立してコミット、プッシュ、意思決定が可能
|
||||
- 先行的に通知とステータス更新を送信
|
||||
- GitHub PRの変更を監視
|
||||
|
||||
## 3. 音声モード
|
||||
|
||||
Push-to-talk音声入力が完全実装されているが `VOICE_MODE` feature flagでゲートされている。
|
||||
|
||||
```typescript
|
||||
// src/voice/voiceModeEnabled.ts
|
||||
// Anthropicのvoice_stream WebSocketエンドポイントに接続
|
||||
// conversation_engineベースのモデルで音声テキスト変換
|
||||
// キーバインドを長押しで録音、離すと送信
|
||||
```
|
||||
|
||||
- OAuth専用(APIキー / Bedrock / Vertex非対応)
|
||||
- WebSocket接続にmTLSを使用
|
||||
- キルスイッチ: `tengu_amber_quartz_disabled`
|
||||
|
||||
## 4. 未公開ツール
|
||||
|
||||
アーキテクチャに存在するが外部ユーザーにはまだ有効化されていないツール:
|
||||
|
||||
| ツール | Feature Flag | 説明 |
|
||||
|-------|-------------|------|
|
||||
| **WebBrowserTool** | `WEB_BROWSER_TOOL` | 内蔵ブラウザ自動化(コードネーム: bagel) |
|
||||
| **TerminalCaptureTool** | `TERMINAL_PANEL` | ターミナルパネルキャプチャと監視 |
|
||||
| **WorkflowTool** | `WORKFLOW_SCRIPTS` | 定義済みワークフロースクリプト実行 |
|
||||
| **MonitorTool** | `MONITOR_TOOL` | システム/プロセス監視 |
|
||||
| **SnipTool** | `HISTORY_SNIP` | 会話履歴のスニッピング/縮小 |
|
||||
| **ListPeersTool** | `UDS_INBOX` | Unixドメインソケットピア探索 |
|
||||
| **RemoteTriggerTool** | `AGENT_TRIGGERS_REMOTE` | リモートエージェントトリガー |
|
||||
| **TungstenTool** | ant専用 | 内部パフォーマンス監視パネル |
|
||||
| **VerifyPlanExecutionTool** | VERIFY_PLAN env | 計画実行検証 |
|
||||
| **OverflowTestTool** | `OVERFLOW_TEST_TOOL` | コンテキストオーバーフローテスト |
|
||||
| **SubscribePRTool** | `KAIROS_GITHUB_WEBHOOKS` | GitHub PRウェブフック購読 |
|
||||
|
||||
## 5. Coordinatorモード
|
||||
|
||||
マルチエージェント連携システム:
|
||||
|
||||
```typescript
|
||||
// src/coordinator/coordinatorMode.ts
|
||||
// Feature flag: COORDINATOR_MODE
|
||||
```
|
||||
|
||||
共有状態とメッセージングによる複数エージェント間の連携タスク実行を実現する。
|
||||
|
||||
## 6. Buddyシステム(バーチャルペット)
|
||||
|
||||
完全なペットコンパニオンシステムが実装されているが未リリース:
|
||||
|
||||
- **18種**: duck, goose, blob, cat, dragon, octopus, owl, penguin, turtle, snail, ghost, axolotl, capybara, cactus, robot, rabbit, mushroom, chonk
|
||||
- **5段階レアリティ**: Common (60%), Uncommon (25%), Rare (10%), Epic (4%), Legendary (1%)
|
||||
- **7種の帽子**: crown, tophat, propeller, halo, wizard, beanie, tinyduck
|
||||
- **5つのステータス**: DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK
|
||||
- **1%のシャイニー確率**: 全種のSparkleバリアント
|
||||
- **決定論的生成**: ユーザーIDハッシュに基づく
|
||||
|
||||
出典: `src/buddy/`
|
||||
|
||||
## 7. Dream Task
|
||||
|
||||
バックグラウンド記憶統合サブエージェント:
|
||||
|
||||
```
|
||||
// src/tasks/DreamTask/
|
||||
// バックグラウンドで動作するオートドリーミング機能
|
||||
// 'tengu_onyx_plover' feature flagで制御
|
||||
```
|
||||
|
||||
アイドル時間中にAIが自律的に記憶を処理・統合できるようにする。
|
||||
|
||||
## まとめ: 3つの方向性
|
||||
|
||||
1. **新モデル**: Numbat(次期)、Opus 4.7、Sonnet 4.8が開発中
|
||||
2. **自律エージェント**: KAIROSモード — 無人運用、先行アクション、プッシュ通知
|
||||
3. **マルチモーダル**: 音声入力準備完了、ブラウザツール待機中、ワークフロー自動化予定
|
||||
|
||||
Claude Codeは**コーディングアシスタント**から**常時稼働の自律開発エージェント**へと進化している。
|
||||
Reference in New Issue
Block a user