instance idはcredentialではありません
XMEMO_AGENT_INSTANCE_IDは、ローカルのclientまたはrunner instanceを識別しますが、リクエストを認可するものではありません。API keyまたはOAuth grantがアクセスcredentialです。サーバーはinstanceの値からagent_instance_id_hashを導出し、境界の権限をattribution_onlyとして報告します。
- Credential: X-API-Keyまたは認められたOAuth bearer grantがアクセスを制御します。
- Instance label: X-Memory-OS-Agent-Instance-IDで、書き込みを行ったrunnerと後続の呼び出し元をサーバーが比較できます。
- Agent label: X-Memory-OS-Agent-IDで、1つのインストールとは別に論理的なagentを識別します。
正規化してからハッシュする
runtimeはinstance idの前後の空白を除去し、空の値を拒否します。256文字以内の値を受け付け、SHA-256でハッシュします。保存されるhashはsha256:<64個の16進文字>に正規化されます。形式が不正な事前ハッシュ値はcredentialとして扱わず無視します。
from memory_manager.auth.agent_identity import agent_instance_id_hash
instance_hash = agent_instance_id_hash("codex-local-install")
# sha256:<64 hexadecimal characters>ローカルインストールごとに1つの値を保つ
アクセスcredentialとは別に、秘密ではないinstance valueをリポジトリの外へ保存して送信します。同じインストールでは再起動後も再利用し、別のlocal profileには別の値を選びます。
X-API-Key: <your-assigned-api-key>
X-Memory-OS-Agent-ID: codex
X-Memory-OS-Agent-Instance-ID: <stable-local-instance-id>境界の意味を明示する
memory_agent_boundaryは、呼び出し元のagent_idとinstance hashを行の値と比較します。両方が一致すればself、agent_idは一致するが別のhashならsame_agent_other_instance、比較できるidentityがなければunverifiedまたはunknownとして報告します。これらのラベルは帰属を説明するものであり、tokenによる認可に取って代わるものではありません。
{
"relation": "self",
"ownership": "current_agent",
"boundary_authority": "attribution_only",
"current_agent_trust": "client_asserted"
}ペルソナフロー
ChatGPT ユーザー
bearer token をチャットに貼り付けずに、ChatGPT が XMemo の設定、プロジェクト事実、意思決定、TODO に永続的にアクセスできるようにします。
合成の設定またはプロジェクトメモを保存し、新しいチャットを開始してから、作業を続ける前に ChatGPT に XMemo 経由でそれを呼び出させます。
Copilot / Codex 開発者
リポジトリの判断、コーディング規約、バグ修正メモ、タスク履歴を IDE と CLI エージェント間で持ち運べます。
コードベースの判断またはバグ修正を記録し、次の IDE または CLI エージェントに、編集前に関連する XMemo コンテキストを呼び出させます。
チーム / エンタープライズ pilot owner
アカウント制御、ソース attribution、エクスポート/削除ワークフロー、レビュー担当者向けに安全な設定証跡で共有メモリを評価します。
pilot メンバーに合成のチームメモリを保存してもらい、XMemo でソース attribution を確認し、削除/エクスポートとサポート経路をレビューします。
出典: エージェントのアイデンティティ