コンテンツにスキップ

モジュール II — ライブ運用とセッション

モジュール II は、エステートのライブ運用ビューである。すなわち、各エージェント セッションが今この瞬間に何をしているか、そのライブなトークン・コストの合計、導出された Claude Code 状態、そして再構成可能なタイムラインである。モジュール I(インベントリ)が 永続的なエステートを具現化するのに対し、モジュール II は同じ観測ストリーム上で、セッション ごとのライブ運用オーバーレイを保持し、そのストリームが誠実に運ぶものだけを表示する。

Olivares 0.4 は公式プロバイダー CLI も プロバイダープロファイル の下で所有する子として 起動します。その管理経路は同じモジュールです。オーバーレイを置き換えず、同じ プロバイダーセッション id を告げる 2 つのホームをマージしません (CHANGELOG.md [26.9.0] B1/B2)。

モジュール II はバス駆動の Core レイヤーモジュールであり、インベントリの兄弟である。 各セッションの外部参照をキーとするライブレコードを、協調的な観測ストリームから構築して 維持する。ポーリングは決して行わず、捏造も決して行わない。セッションごとに以下を追跡する。

  • 現在のアクション(最後に使用されたツール)と、それが触れたリソース/モード。
  • ライブなトークンとコストの合計。コストサンプルから読み取られる(正規の コスト台帳と FinOps はモジュール XI であり、ここではない。これはライブな数値のみ)。
  • 導出された Claude Code 状態(cc_state)。
  • 観測された各イベントが取り込み順に追加されるタイムライン。

本モジュールはテナントスコープのエンティティを 2 つ登録する。sessions.live は セッションごとのライブレコードを保持する。すなわち、現在のアクション/リソース/モード、 モデル参照、ライブな入力/出力トークン、ライブコスト、イベント数とツールコール数、そして 初回/最終イベントのタイムスタンプである。sessions.timeline はイベントごとに 1 つの リプレイ可能な行を保持し、取り込み順に並べられる。保存されたライフサイクル列は存在しない。 協調的なストリームは end-or-fail シグナルを運ばないため、唯一の誠実な生存性シグナルは 導出された cc_state である。

cc_state はイベントの新しさから読み取り時に導出される(active / idle / ended)。 そして、コネクターがその検出結果を上げたときに silent-evasion(沈黙による回避)状態に 切り替わる(モジュール自身が書き込むことは決してない)。読み取りはモジュールルート (ライブ一覧、単一セッション、セッションごとのタイムライン)とライブ SSE ストリームの下で 提供される。すべての読み取りはセッション読み取りパーミッションを必要とし、 ストリームを開くことは自動監査される。SSE チャネルは厳密にテナント分離されており (クライアントは認可されたテナントのスナップショットのみを受信する)、ベストエフォートである (遅いクライアントは中間フレームをドロップして次のフレームを取得する。取り込みが ブロックされることは決してない)。

プロバイダープロファイルは、1 つの実行環境上の 1 つの設定済みプロバイダー インスタンスの永続的な識別です: ドライバー、環境、および正規の config_home / user_home。認証済みプロバイダーアカウントではありません。登録、改名、 無効化/有効化、退役は /v1/m/sessions/provider-profiles の下にあります。パスは admin の configuration 読み取りにだけ現れます。起動は provider_profile_ref を指名します。サーバはホームを解決し、spawn 前に非秘密スナップショットを run に 永続化します(CHANGELOG.md [26.9.0] B1、 web/src/features/agentops/types.ts)。

観測はその チャネル のライブロウに折り畳まれます。サーバがホスト印のソース 登録から計算します(CHANGELOG.md [26.9.0] B2):

Channel Meaning
legacy no registration
observed a source dedicated to a profile by a binding approved at host admission for the exact applied revision
source a known registration with no verifiable profile
managed a run the plane launched; the only row carrying canonical_sid and run_ref

各ライブロウは live_ref と attribution を公開します。同じプロバイダー セッション id を告知する 2 つのホームは、2 つのタイムラインを持つ 2 行です。 1 行は GET /v1/m/sessions/live/by-id/{live_ref}(およびその timeline / stream / runs クエリ)で読みます。裸の外部 id ルートは残り、legacy です: legacy 行にだけ答えます。

ドライバーは各ノードの起動時に登録されます。セッション起動時には、エンジンは 最新の検証済み管理インストール、次に自身の PATH 上の CLI を使用します。 OLIVARES_SESSION_RUNTIME_CLAUDE_BIN、_CODEX_BIN、_GROK_BIN、_OPENCODE_BIN はこの解決順序を明示的に上書きします(設定)。 実行ファイルが見つからなければ、起動を拒否します。プロファイルの認証や起動ポリシー など、ほかの準備状態チェックも適用されます。オペレータ手順: プロバイダーセッションを運用する。

メッセージには画像を添付できます。olivares session send <session> --attach shot.png "what is wrong here?" とコンソールの入力欄(貼り付け、ドロップ、クリップアイコン)は、PNG、JPEG、WebP、 GIF の各画像をセッションとともに保存します。1 メッセージにつき最大 4 枚、1 枚あたり 3.75 MB までで、 その後テキストとともに送信します。メッセージにはテキストが必要なので、画像だけでは送信されません (CLI と入力欄がテキストを求めます)。Claude Code は画像コンテンツブロックを受け取り、Codex は 独自の画像入力を受け取ります。画像入力のないツールは、何かを送信する前に、ツール名を挙げてメッセージを 拒否します。API は POST /v1/m/sessions/runs/{ref}/attachments(画像、base64)、 GET .../attachments/{id}、および .../input の attachments です。画像はデータディレクトリの下に テナントごと、セッションごとに保存され、セッションとともに削除されます。

何を消費するか(そして何を導出するか)

Section titled “何を消費するか(そして何を導出するか)”

モジュール II は、インベントリと同じ minimal-data の観測ストリーム (edge.observed、cost.sampled、finding.reported)を消費する。 起点がセッションであるエッジのみがライブ運用を生む。セッションに紐づくコストサンプルは ライブなトークン/コストの数値に加算される(ここで CostRecord が書き込まれることはない)。 セッションを subject とする検出結果は注釈付けされ、anti-evasion(回避対策)検出結果は evasion 状態をマークする。2 つのフィールドが同じシグナルからライブに導出される。 agent_ref はセッションに帰属するエージェントから、summary はコンテキスト圧縮 (フォレンジック)検出結果(そのタイトルはコントラクトにより summary-safe である)から 導出される。LLM が捏造したサマリーでは決してない。