-
Notifications
You must be signed in to change notification settings - Fork 0
Storage Model ja
Hermes Agent edited this page Oct 1, 2026
·
1 revision
English | 中文 | 日本語 | 한국어 | Español | Português | Русский
ユーザーデータはすべて chrome.storage.local に置かれ、lib/storage.js がラップする。アカウントなし、サーバーなし。
-
historyはグローバルな単一会話のフラットなメッセージ配列(タブ毎ではない)— それが意図された製品デフォルト: 新しいトピック = ユーザーがドロワーから明示的に新セッションを開く。タブ毎の自動切替は明示的に却下された(ADR-0002)。再提案しないこと。 - エントリ形状:
{role, content}。contentは文字列、または(マルチモーダルの)[{type:'text'}, {type:'image_url'}]。添付エントリはPAGE_CONTEXT_PREFIXヘッダを運び、動画エントリはvideoSrcでスタンプされる(クリック可能なタイムスタンプピルの前提条件)。 - 1 送信 = ユーザーバブルちょうど 1 個は不変条件(編集再送信/再生成は先に古いバブルを削除する)。
-
savedSessions自体は軽量インデックス[{id,name,createdAt,pinned,textDigest}]。スナップショットのバイト列はセッション毎のsession_<id>キーに置かれる。すべてのセッション関数はreadSessionIndex()に funnel され、これは旧来の単一キースナップショットをその場で移行する(インデックス書き換え「より前に」書かれたボディが対象。冪等、クラッシュセーフ)。 - ドロワー検索は名前 +
textDigestにマッチする(テキストのみのダイジェスト、セッションあたり 10 万文字で上限 — 上限を超えた内容は検索対象外。文書化済みのトレードオフ)。 -
session_<id>キーはターゲット読み取りであり、意図的にGET_ALL_KEYSには入れない。
getAll() は固定の軽量キーリスト(DEFAULTS から history を引いたもの + options の 3 設定)を読み、get(null) は決して使わない — 後者は、ターン/添付/explain のたびに ≤8MB の画像と全スナップショットをデシリアライズしていた。getAll の利用者が見るべき新しいキーはこのリストに入り、ターゲット読み取りのキーは外に留まる。
バブルは送信したものを表示する — 保存された画像ピクセルは削除も劣化もされない(セッションスナップショットもバイト列を含む。ADR-0005)。圧縮はすべてリクエスト側で起きる:
-
imagesSeenスタンプ: 成功したターンの後、画像を含むエントリにスタンプが付く。リクエストビルダはprepareHistoryForModelを呼び、これは「既視」の画像をラベルプレースホルダ([图N]/[Figure 3: …])へ置き換え、「未視」のものはピクセル付きで通す。以降のターンは、画像 1 枚あたり約 1K トークンの代わりに安価なテキストを再送する。 -
boundUnseenImageBytes: パネルオープン時の衛生 — 駐車された「未視」ピクセルは、最も古いものをサムネイルへダウンスケールすることで 8MB に封じられる(ラベル化はしない: ピクセルを失ったエントリはバブル画像を失う)。最新の画像エントリは常に免除される。 - エージェントプロバイダは変更不要:
buildAgentTurnが収集するのは(未回答・未スタンプの)末尾のページコンテキスト実行だけ。
-
コンテキストエージング(
ageStaleAttachments): 送信時に「コールド」な添付(最新ではない、3 ユーザーターン以上後方、8000 文字以上)は 1 行の決定論的スタブになる — ストレージは無傷。決定論性が、1 回限りの破断の後もプロバイダキャッシュのプレフィックスを安定に保つ。 -
添付の自動要約: 閾値を超える添付は、保存後に 1 回の LLM 圧縮パスを受ける。マルチモーダルの
image_urlブロックは書き換えを生き残る。 - オーバーフロー救済: コンテキストオーバーフローで失敗したターンは、大きい添付を刈り込んでリクエストを再構築し、1 回リトライする。ストレージの書き換えはリトライしたターンが成功した「後に」限る — 生の添付は失敗を生き残る。
サイトキャッシュは chrome.storage.session に置かれる。復元は遅延(最初の siteCacheCtx 呼び出しが読み取りのコストを払う)で、タブの生存を検証する(これが復元 vs クローズの競合も殺した)。パージリスナーはオンデマンドで登録する。SW をコールドスタートさせるものは、恒久的に存在してはならない。
権威版: Storage-Model(英語) / Storage-Model-zh(中文) — AI による初翻スナップショット、同期日 2026-10-01。
English
- Home
- Architecture
- Rendering Pipeline
- Storage Model
- Providers and Agents
- ASR and Video Analysis
- Security Model
- Design Decisions
- Contributing
中文
相关 / Related
日本語
한국어
Español
- Inicio
- Arquitectura
- Pipeline de renderizado
- Modelo de almacenamiento
- Proveedores y agentes
- ASR y análisis de vídeo
- Modelo de seguridad
- Decisiones de diseño
- Contribuir
Português
- Início
- Arquitetura
- Pipeline de renderização
- Modelo de armazenamento
- Provedores e agentes
- ASR e análise de vídeo
- Modelo de segurança
- Decisões de design
- Contribuindo
Русский