ネイティブ Token 圧縮¶
クイックアンサー¶
Harness CLI は token をネイティブに削減します。RTK 風の入力フィルタリングと Caveman 風の短い出力を参考にしますが、RTK、Caveman、shell hook、競合 CLI はインストールしません。
ワークフローは 2 層です。
- 入力圧縮:ContextDB packet、ブラウザ読み取り、コマンド出力をモデル投入前に削減する。
- 出力圧縮:コマンド、パス、エラー、selector、日付、リスク、検証ギャップを残したまま Agent の回答を短くする。
入力圧縮¶
ContextDB Packet¶
組み込みの context:pack strategy engine を使います。
cd mcp-server
npm run contextdb -- context:pack \
--session <session_id> \
--limit 60 \
--token-budget 1200 \
--token-strategy balanced \
--out .aios/context-db/exports/<session_id>-context.md
Strategies:
| Strategy | 用途 | 振る舞い |
|---|---|---|
legacy |
厳密な後方互換 | tail-window behavior |
balanced |
推奨デフォルト | 低シグナル本文を圧縮してから drop |
aggressive |
厳しい token budget、明示 opt-in | より強い圧縮と clipping |
安全ルール:
- 重要エラー、失敗語、ファイルパス、コマンドシグナル、最新状態を保持する。
- イベントを落とす前に、重複行、stack trace、低シグナル行集合を圧縮する。
- 保護イベントを切る前に、低優先度イベントを落とす。
- telemetry:
strategy、rawTokenUsed、compressed、dropped、truncatedを出力する。
ブラウザ読み取り¶
aios-browser-compress でコンパクトな証拠を優先します。
page.semantic_snapshot- targeted
page.extract_text - full
page.extract_text page.get_html- 視覚証拠が必要な時だけ screenshot
click、type、publish、delete の前に、圧縮ビューで対象が証明できない場合は狭く再読み取りします。
CLI 出力¶
shell hook はインストールしません。ツールに範囲を絞った出力を求めます。
rg -n "pattern" path
git diff --stat
sed -n '120,180p' file.ts
tail -n 120 test.log
出力圧縮¶
aios-compress で回答スタイルを制御します。
| Level | 用途 | 振る舞い |
|---|---|---|
tight |
通常の開発 | 簡潔な技術回答、無駄なし |
ultra |
harness logs、checkpoints | 1 行の証拠 + 次の action |
precise |
browser actions、安全、不可逆操作 | 完全で明示的な表現 |
Controls:
/compress tight
/compress ultra
/compress precise
stop compress
なぜネイティブか¶
ネイティブ圧縮は Codex と Claude で監査しやすく、一貫性を保てます。
- 競合依存なし。
- グローバルなコマンド書き換えなし。
- 隠れた shell 挙動なし。
- docs、skills、code がこの repo にある。
- 検証で何を圧縮/削除したか確認できる。
関連ファイル¶
mcp-server/src/contextdb/core.tsskill-sources/aios-compress/SKILL.mdskill-sources/aios-browser-compress/SKILL.md.codex/skills/aios-compress/SKILL.md.codex/skills/aios-browser-compress/SKILL.md.claude/skills/aios-compress/SKILL.md.claude/skills/aios-browser-compress/SKILL.md