1 つの Identity と Template に対する Identity Config を作成または更新します。
POST /api/v1/forward/identities/{identity_id}/templates/{template_id}/config
config が存在しない場合は作成し、存在する場合は既存のアクティブな config を更新します。Identity Config は Template のベースラインに対するユーザーレベルのオーバーライドです。
Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <PAT または SAT> |
Content-Type | Yes | application/json |
Idempotency-Key | No | 安全でないリクエストに対する任意のべき等性キー。 |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
identity_id | string | Yes | Forward Identity ID。 |
template_id | string | Yes | Forward Template ID。 |
Body parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | No | Config の表示名。 |
identity_config | object | Yes | ユーザーレベルのオーバーライド構成。 |
metadata | object | No | カスタムメタデータ。指定した場合は既存のメタデータを置き換えます。 |
Identity config object
identity_config は保存されるユーザーレベルのオーバーライド DSL です。これは Get Effective Config が返すコンパイル済みのランタイム構成ではありません。
| Field | Internal target | Description |
|---|---|---|
system | Agent | システムプロンプトのオーバーライドまたは追加ルール。 |
model | Agent | モデルのオーバーライド。モデル ID の文字列または Agent model オブジェクトを指定できます。 |
tools | Agent | ツール名をキーとする組み込みツールのオーバーライド。 |
mcp_servers | Agent | MCP サーバー名をキーとする MCP サーバーのオーバーライド。 |
skills | Agent | Skill ID をキーとする Skill のオーバーライド。 |
toolsets | Agent | 主に MCP ツールセットや組み込みツールグループを対象とする、ツールセットレベルのオーバーライド。 |
agent_metadata | Agent | コンパイルされた agent メタデータにマージされるメタデータ。 |
vaults | Session | Vault ID をキーとする Vault リソースのオーバーライド。 |
files | Session | File ID をキーとする File リソースのオーバーライド。Forward が mount_path を注入するため、呼び出し元はここで指定しません。 |
github_repositories | Session | Template の既存の binding key または新しい binding key をキーとする GitHub リポジトリのオーバーライド。 |
environment_variables | Session | 変数名をキーとする Session 環境変数のオーバーライド。Template のデフォルト値の設定、削除、継承をサポートします。 |
environment / environment_id | Unsupported | Identity Config は Template の environment をオーバーライドできません。これらのフィールドを含むリクエストは 400 invalid_request_error で失敗します。 |
Model
identity_config.model には、モデル ID の文字列、またはモデル ID と任意の調整フィールドを含むオブジェクトを指定できます。
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | モデル ID。利用可能な値はモデル一覧 API で確認します。 |
effort | string | No | Reasoning effort。none、low、medium、high、xhigh、max を指定できます。モデルが対応する値は efforts を確認してください。 |
context_window | integer | No | 希望するコンテキストウィンドウのトークン数。正の整数で、モデルの available_context_windows から選択します。 |
GitHub リポジトリのオーバーライド
identity_config.github_repositories はキー付きオーバーレイです。Template から継承した同名の binding を上書きするか、新しい binding を追加できます。
| Field | Type | Description |
|---|---|---|
url | string|null | 継承したリポジトリの HTTPS URL を上書きします。検証と正規化は Template と同じルールです。 |
authorization_token | string|null | リポジトリアクセストークンを上書きします。書き込み専用で、読み取り API からは返されません。 |
mount_path | string|null | Session のマウントパスを上書きします。空でない値は / 以外の正規化された絶対パスである必要があります。null はこのフィールドのオーバーライドを削除します。Effective Config に継承可能なパスがない場合、デフォルトは /data/workspace/<リポジトリ名> です。 |
enabled | boolean|null | false で無効化、true で明示的に有効化、null でこのフィールドのオーバーライドを削除します。 |
| Request shape | Semantics |
|---|---|
github_repositories を省略 | 現在のリポジトリオーバーレイを保持します。 |
github_repositories: null | リポジトリオーバーレイ全体を削除し、Template の継承に戻します。 |
| binding を省略 | 既存のオーバーライドを保持し、存在しない場合は Template から継承します。 |
binding が null | binding のオーバーライドを削除し、Template の継承に戻します。 |
binding の enabled が false | 同じキーの継承 binding を無効にします。 |
| binding が object | 同じキーの binding にフィールドをマージします。 |
mount_path を省略すると Template の値を継承します。新しい binding に継承可能なパスがない場合は /data/workspace/<リポジトリ名> がデフォルトになります。各 binding は有効な url、authorization_token、mount_path に解決され、正規化後の URL とマウントパスが重複してはなりません。
環境変数のオーバーライド
identity_config.environment_variables は、環境変数名をキーとするオーバーライドオブジェクトです。
| リクエスト形式 | セマンティクス |
|---|---|
{ "op": "set", "value": "..." } | 変数を追加するか、Template の同名変数を上書きします。 |
{ "op": "unset" } | Template に同名変数が設定されていても、Effective Config からその変数を削除します。 |
| 変数項目を省略 | 既存の Identity Config オーバーライドを保持し、オーバーライドがない場合は Template を継承します。 |
変数項目が null | その変数の Identity Config オーバーライドを削除し、Template の継承に戻します。 |
environment_variables: null | 環境変数のオーバーライドレイヤー全体を削除し、Template のすべてのデフォルト値を復元します。 |
Update semantics
| Request shape | Semantics |
|---|---|
| フィールドが省略されている | 既存の値を保持します。 |
| フィールドが非 null 値で存在する | そのフィールドを更新します。 |
フィールドが null で存在する | 現在の Identity Config からそのフィールドを削除します。 |
metadata が省略されている | 既存のメタデータを保持します。 |
metadata オブジェクト | 既存のメタデータを置き換えます。 |
metadata null | メタデータをクリアします。 |
Resource map semantics
skills、vaults、files はリソース ID をマップキーとして使用します。マップ項目の内部に skill_id、vault_id、file_id、id、resource_id を含めないでください。これらのランタイムフィールドは、Forward がコンパイルした Effective Config にのみ現れます。
| Map item value | Semantics |
|---|---|
{ "enabled": true } | リソースを明示的に有効化またはオーバーライドします。 |
{ "enabled": false } | Template のベースラインに存在していても、リソースを明示的に無効化します。 |
| 項目が省略されている | Template のベースラインを継承します。 |
項目の値が null | このオーバーライドを削除し、Template の継承を復元します。 |
Example request
Example response
HTTP 200 OK
Response fields
| Field | Type | Description |
|---|---|---|
type | string | 常に config。 |
identity_id | string | Forward Identity ID。 |
template_id | string | Forward Template ID。 |
name | string | Config の表示名。 |
status | string | Config のステータス。 |
effective_hash | string | コンパイルされた有効な構成のハッシュ。 |
created_at | string | 作成タイムスタンプ。 |
updated_at | string | 更新タイムスタンプ。 |
Errors
| HTTP | Type | Code | 発生条件 |
|---|---|---|---|
| 400 | invalid_request_error | - | Config フィールド、GitHub binding の構造または値が不正、未対応の Environment オーバーライドが指定されている、またはリクエストボディが不正です。 |
| 401 | authentication_error | authentication_required | PAT または SAT が無効または期限切れです。 |
| 404 | not_found_error | - | Identity、Template、Skill、Vault、または File が存在しません。 |
| 409 | conflict_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 のレスポンスには含まれません。