Skip to main content
Identities

アイデンティティ構成を作成または更新する

1 つの Identity と Template に対する Identity Config を作成または更新します。

POST /api/v1/forward/identities/{identity_id}/templates/{template_id}/config config が存在しない場合は作成し、存在する場合は既存のアクティブな config を更新します。Identity Config は Template のベースラインに対するユーザーレベルのオーバーライドです。

Headers

HeaderRequiredDescription
AuthorizationYesBearer <PAT または SAT>
Content-TypeYesapplication/json
Idempotency-KeyNo安全でないリクエストに対する任意のべき等性キー。

Path parameters

ParameterTypeRequiredDescription
identity_idstringYesForward Identity ID。
template_idstringYesForward Template ID。

Body parameters

ParameterTypeRequiredDescription
namestringNoConfig の表示名。
identity_configobjectYesユーザーレベルのオーバーライド構成。
metadataobjectNoカスタムメタデータ。指定した場合は既存のメタデータを置き換えます。

Identity config object

identity_config は保存されるユーザーレベルのオーバーライド DSL です。これは Get Effective Config が返すコンパイル済みのランタイム構成ではありません。
FieldInternal targetDescription
systemAgentシステムプロンプトのオーバーライドまたは追加ルール。
modelAgentモデルのオーバーライド。モデル ID の文字列または Agent model オブジェクトを指定できます。
toolsAgentツール名をキーとする組み込みツールのオーバーライド。
mcp_serversAgentMCP サーバー名をキーとする MCP サーバーのオーバーライド。
skillsAgentSkill ID をキーとする Skill のオーバーライド。
toolsetsAgent主に MCP ツールセットや組み込みツールグループを対象とする、ツールセットレベルのオーバーライド。
agent_metadataAgentコンパイルされた agent メタデータにマージされるメタデータ。
vaultsSessionVault ID をキーとする Vault リソースのオーバーライド。
filesSessionFile ID をキーとする File リソースのオーバーライド。Forward が mount_path を注入するため、呼び出し元はここで指定しません。
github_repositoriesSessionTemplate の既存の binding key または新しい binding key をキーとする GitHub リポジトリのオーバーライド。
environment_variablesSession変数名をキーとする Session 環境変数のオーバーライド。Template のデフォルト値の設定、削除、継承をサポートします。
environment / environment_idUnsupportedIdentity Config は Template の environment をオーバーライドできません。これらのフィールドを含むリクエストは 400 invalid_request_error で失敗します。

Model

identity_config.model には、モデル ID の文字列、またはモデル ID と任意の調整フィールドを含むオブジェクトを指定できます。
FieldTypeRequiredDescription
idstringYesモデル ID。利用可能な値はモデル一覧 API で確認します。
effortstringNoReasoning effort。nonelowmediumhighxhighmax を指定できます。モデルが対応する値は efforts を確認してください。
context_windowintegerNo希望するコンテキストウィンドウのトークン数。正の整数で、モデルの available_context_windows から選択します。

GitHub リポジトリのオーバーライド

identity_config.github_repositories はキー付きオーバーレイです。Template から継承した同名の binding を上書きするか、新しい binding を追加できます。
FieldTypeDescription
urlstring|null継承したリポジトリの HTTPS URL を上書きします。検証と正規化は Template と同じルールです。
authorization_tokenstring|nullリポジトリアクセストークンを上書きします。書き込み専用で、読み取り API からは返されません。
mount_pathstring|nullSession のマウントパスを上書きします。空でない値は / 以外の正規化された絶対パスである必要があります。null はこのフィールドのオーバーライドを削除します。Effective Config に継承可能なパスがない場合、デフォルトは /data/workspace/<リポジトリ名> です。
enabledboolean|nullfalse で無効化、true で明示的に有効化、null でこのフィールドのオーバーライドを削除します。
Request shapeSemantics
github_repositories を省略現在のリポジトリオーバーレイを保持します。
github_repositories: nullリポジトリオーバーレイ全体を削除し、Template の継承に戻します。
binding を省略既存のオーバーライドを保持し、存在しない場合は Template から継承します。
binding が nullbinding のオーバーライドを削除し、Template の継承に戻します。
binding の enabledfalse同じキーの継承 binding を無効にします。
binding が object同じキーの binding にフィールドをマージします。
マージ後の Effective Config で有効にできる binding は最大 20 個です。同じキーの binding で mount_path を省略すると Template の値を継承します。新しい binding に継承可能なパスがない場合は /data/workspace/<リポジトリ名> がデフォルトになります。各 binding は有効な urlauthorization_tokenmount_path に解決され、正規化後の URL とマウントパスが重複してはなりません。

環境変数のオーバーライド

identity_config.environment_variables は、環境変数名をキーとするオーバーライドオブジェクトです。
{
  "identity_config": {
    "environment_variables": {
      "BASE_MODE": {
        "op": "set",
        "value": "identity"
      },
      "REMOVE_ME": {
        "op": "unset"
      },
      "USER_MODE": {
        "op": "set",
        "value": "enabled"
      }
    }
  }
}
リクエスト形式セマンティクス
{ "op": "set", "value": "..." }変数を追加するか、Template の同名変数を上書きします。
{ "op": "unset" }Template に同名変数が設定されていても、Effective Config からその変数を削除します。
変数項目を省略既存の Identity Config オーバーライドを保持し、オーバーライドがない場合は Template を継承します。
変数項目が nullその変数の Identity Config オーバーライドを削除し、Template の継承に戻します。
environment_variables: null環境変数のオーバーライドレイヤー全体を削除し、Template のすべてのデフォルト値を復元します。

Update semantics

Request shapeSemantics
フィールドが省略されている既存の値を保持します。
フィールドが非 null 値で存在するそのフィールドを更新します。
フィールドが null で存在する現在の Identity Config からそのフィールドを削除します。
metadata が省略されている既存のメタデータを保持します。
metadata オブジェクト既存のメタデータを置き換えます。
metadata nullメタデータをクリアします。

Resource map semantics

skillsvaultsfiles はリソース ID をマップキーとして使用します。マップ項目の内部に skill_idvault_idfile_ididresource_id を含めないでください。これらのランタイムフィールドは、Forward がコンパイルした Effective Config にのみ現れます。
Map item valueSemantics
{ "enabled": true }リソースを明示的に有効化またはオーバーライドします。
{ "enabled": false }Template のベースラインに存在していても、リソースを明示的に無効化します。
項目が省略されているTemplate のベースラインを継承します。
項目の値が nullこのオーバーライドを削除し、Template の継承を復元します。

Example request

curl -s -X POST 'https://api.qoder.com/api/v1/forward/identities/idn_019eabc123/templates/tmpl_support/config' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "CRM profile",
    "identity_config": {
      "model": {
        "id": "ultimate",
        "effort": "high",
        "context_window": 400000
      },
      "system": {
        "mode": "append",
        "content": "Prefer CRM data when answering."
      },
      "skills": {
        "skill_019f18f2749e": {
          "enabled": true,
          "type": "custom",
          "version": "1"
        },
        "skill_019f18f2750a": {
          "enabled": false
        }
      },
      "mcp_servers": {
        "mcp_crm": {
          "enabled": true,
          "type": "http",
          "url": "https://crm.example.com/mcp"
        }
      },
      "tools": {
        "Read": {
          "enabled": true
        },
        "Grep": {
          "enabled": true
        },
        "WebSearch": {
          "enabled": true
        }
      },
      "vaults": {
        "vault_019f18f2761b": {
          "enabled": true
        }
      },
      "files": {
        "file_019eXXXX": {
          "enabled": true
        }
      },
      "environment_variables": {
        "CRM_REGION": {
          "op": "set",
          "value": "cn-shanghai"
        },
        "LEGACY_CRM_MODE": {
          "op": "unset"
        }
      },
      "github_repositories": {
        "source": {
          "mount_path": "/data/workspace/support-agent",
          "authorization_token": "github_pat_xxx"
        },
        "legacy": {
          "enabled": false
        }
      }
    },
    "metadata": {}
  }'

Example response

HTTP 200 OK
{
  "type": "config",
  "identity_id": "idn_019eabc123",
  "template_id": "tmpl_support",
  "name": "CRM profile",
  "status": "active",
  "effective_hash": "sha256:...",
  "created_at": "2026-06-18T10:00:00Z",
  "updated_at": "2026-06-18T10:00:00Z"
}

Response fields

FieldTypeDescription
typestring常に config
identity_idstringForward Identity ID。
template_idstringForward Template ID。
namestringConfig の表示名。
statusstringConfig のステータス。
effective_hashstringコンパイルされた有効な構成のハッシュ。
created_atstring作成タイムスタンプ。
updated_atstring更新タイムスタンプ。

Errors

HTTPTypeCode発生条件
400invalid_request_error-Config フィールド、GitHub binding の構造または値が不正、未対応の Environment オーバーライドが指定されている、またはリクエストボディが不正です。
401authentication_errorauthentication_requiredPAT または SAT が無効または期限切れです。
404not_found_error-Identity、Template、Skill、Vault、または File が存在しません。
409conflict_error-Config の状態が競合しているか、Effective GitHub リポジトリの正規化済み URL またはマウントパスが重複しています。

Notes

  • 省略された config フィールドは変更されません。
  • フィールドを null に設定すると、現在の Identity Config からそのフィールドが削除されます。
  • リソースマップは、そのリソース ID をマップキーとして使用します。1 つのリソースの継承を復元するには、そのマップエントリを null に設定します。
  • Identity Config は environment_id のオーバーライドをサポートしていません。
  • identity_config.github_repositories.*.authorization_token は書き込み専用で、Config または Effective Config のレスポンスには含まれません。
ベストプラクティス
アイデンティティ構成を作成または更新する - Qoder