# エージェントのアイデンティティ

安定した、秘密ではないagentおよびinstanceのラベルを使い、後続のrecallでも出所のコンテキストを保持します。

- Canonical: https://docs.xmemo.dev/ja/docs/concepts/agent-identity
- Locale: ja-JP
- Content-Locale: ja-JP
- Canonical-Content-Digest: 5e2bf370ad26e409633f0f6d7d7f5ba962403f53ef13c0b032c1b44547f1698d
- Edition-Digest: 88f03ae8fd5a81e0210815eda7f1e4b48233bd7b368f84afe73d5ed6d24f239d
- Source-Revision: sha256:0dbd219609b35197b61caa906e2d1bfdd7ccb43c5452eb93ff559ae1c17cf691

## アイデンティティのラベルは帰属情報であり、認証ではありません

X-Memory-OS-Agent-IDとXMEMO_AGENT_INSTANCE_IDは、どのclientまたはrunnerがメモリを書き込んだかを識別します。これらがアクセスを認可することはありません。認可を行うのはbearer tokenまたはOAuth grantです。送信すると、Memory Consoleで各エントリのprovenanceを表示できます。

- 同じローカルインストールまたはrunnerでは、XMEMO_AGENT_INSTANCE_IDを安定して保ちます。
- 異なるローカルagent profileには、別の値を生成します。
- 値をgitに入れないでください。秘密ではありませんが、インストールごとの状態です。
- XMemoは安定した帰属のため、instance idをサーバー側でハッシュします。

## tokenと一緒にアイデンティティヘッダーを送信する

アイデンティティヘッダーは、MCP client configurationでAuthorizationの隣に置きます。tokenはenvironmentに保持し、ラベルは通常の値として指定します。

```json
{
  "mcpServers": {
    "XMemo": {
      "type": "http",
      "url": "https://xmemo.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${env:XMEMO_KEY}",
        "X-Memory-OS-Agent-ID": "codex",
        "X-Memory-OS-Agent-Instance-ID": "${env:XMEMO_AGENT_INSTANCE_ID}"
      }
    }
  }
}
```

## 安定したinstance idを生成する

SDKにはhelperが用意されているため、setup scriptでlocal profileごとに値を1度作成し、後続の実行で再利用できます。

```ts
import {
  XMEMO_AGENT_ID_ENV_VAR,
  XMEMO_AGENT_INSTANCE_ID_ENV_VAR,
  buildMcpIdentityHeaders,
  createAgentInstanceId,
} from '@xmemo/client';

const agentId = 'gemini-cli';
const agentInstanceId = existingStoredValue ?? createAgentInstanceId('gemini-cli');
const headers = buildMcpIdentityHeaders({ agentId, agentInstanceId });
```

## ChatGPT ユーザー

bearer token をチャットに貼り付けずに、ChatGPT が XMemo の設定、プロジェクト事実、意思決定、TODO に永続的にアクセスできるようにします。

ChatGPT/OpenAI app の OAuth フローで hosted XMemo MCP server に接続し、XMemo アカウントに memory:read と memory:write の許可を承認します。

合成の設定またはプロジェクトメモを保存し、新しいチャットを開始してから、作業を続ける前に ChatGPT に XMemo 経由でそれを呼び出させます。

OAuth が失敗する、またはツールが表示されない場合は、direct token を作成する前に、ホストアプリで MCP server からサインアウトし、XMemo server URL を再接続して再試行します。

## Copilot / Codex 開発者

リポジトリの判断、コーディング規約、バグ修正メモ、タスク履歴を IDE と CLI エージェント間で持ち運べます。

利用可能な場合は、VS Code / GitHub Copilot および Gemini CLI に OAuth を使用してください。Copilot CLI、Codex、Cursor、またはその他の直接 MCP クライアントの場合は、XMEMO_KEY をローカル環境またはシークレットストアに保持し、安定した XMEMO_AGENT_INSTANCE_ID を設定してください。

コードベースの判断またはバグ修正を記録し、次の IDE または CLI エージェントに、編集前に関連する XMemo コンテキストを呼び出させます。

呼び出し結果が空の場合は、選択した MCP 設定パス、direct client 用の XMEMO_KEY 環境変数、ホストアプリ内の古い OAuth 認証情報を確認します。

## チーム / エンタープライズ pilot owner

アカウント制御、ソース attribution、エクスポート/削除ワークフロー、レビュー担当者向けに安全な設定証跡で共有メモリを評価します。

保護された XMemo workspace を作成または開き、承認済みユーザーを招待してから、readiness badges に従って OAuth またはスコープ付き direct credential で各クライアントを接続します。

pilot メンバーに合成のチームメモリを保存してもらい、XMemo でソース attribution を確認し、削除/エクスポートとサポート経路をレビューします。

メンバーが接続できない場合は、新しい token を発行する前に、ロール権限、OAuth 承認、クライアント readiness 状態、サポートガイダンスを確認します。

## 自律エージェント operator

headless またはスケジュール済みエージェントが進捗を記録し、過去の判断を取得し、安定した非秘密のインスタンス ID を保持できるようにします。

/api/v1/mcp/config/autonomous-agent を取得します。runner が OAuth + custom headers をサポートする場合は auth_modes.oauth を優先し、完全 headless runner の場合のみ secret store の XMEMO_KEY で auth_modes.xmemo_key を使います。

XMemo に進捗を書き込む合成タスクを 1 つ実行し、runner を再起動して、同じ XMEMO_AGENT_INSTANCE_ID でその進捗を呼び出せることを確認します。

attribution が変わる、または呼び出し結果がインスタンス間で分かれる場合は、XMEMO_AGENT_INSTANCE_ID を git の外に永続化し、runner が起動ごとに再生成していないことを確認します。
