Skip to main content
Templates

Update a template

Forward テンプレートを ID で更新します。

POST /api/v1/forward/templates/{template_id} 変更可能なテンプレートフィールドを更新します。リクエストから省略されたフィールドは変更されません。toolsmcp_serversskills などの配列フィールドは、指定された場合は全体が置き換えられます。

Headers

HeaderRequiredDescription
AuthorizationYesBearer <PAT または SAT>
Content-TypeYesapplication/json
Idempotency-KeyNo安全でないリクエストに対する任意の冪等性キー。
X-Qoder-BetaBrowser Use を使用する場合更新後の tools に Browser Use ツールセットが含まれる場合、browser-use-2026-07-14 を指定する必要があります。

Path parameters

ParameterTypeRequiredDescription
template_idstringYesForward の Template ID。

Body parameters

ParameterTypeRequiredDescription
namestringNo新しいテンプレート名。
descriptionstringNo新しいテンプレートの説明。
modelstring|objectNo新しいモデル ID、またはモデル ID と任意の調整フィールドを含むオブジェクト。
systemstringNo新しいシステムプロンプト。
toolsarrayNoツール設定のリストを置き換えます。
mcp_serversarrayNoMCP サーバーのリストを置き換えます。
skillsarrayNoSkill のバインディングリストを置き換えます。
multiagentobject|nullNoMulti-agent 設定を置き換えます。null でクリアし、省略すると現在の設定を保持します。
environment_idstring|nullNoデフォルトの Environment ID を置き換えます。null または空文字列を指定するとクリアされます。
vaultsobject|nullNoデフォルトの Vault 設定全体を置き換えます。null でクリアします。
filesobject|nullNoデフォルトのファイルリソースを置き換えます。null を指定するとマップがクリアされます。
github_repositoriesobject|nullNoデフォルトの GitHub リポジトリ設定全体を置き換えます。null または空のオブジェクトで全 binding をクリアします。
environment_variablesobject | string|nullNoデフォルトのセッション環境変数を置き換えます。null を指定するとクリアされます。
metadataobjectNoカスタムメタデータをマージして更新します。

Nested configuration objects

toolsmcp_serversskills は配列フィールドです。更新リクエストで指定された場合、各配列は以前の配列を全体として置き換えます。

Model

model にはモデル ID の文字列、またはモデル ID と任意の調整フィールドを含むオブジェクトを指定できます。
FieldTypeRequiredDescription
idstringYesモデル識別子。利用可能な値は List models エンドポイントで確認できます。
effortstringNoReasoning effort。nonelowmediumhighxhighmax のいずれか。各モデルが対応する値は efforts を確認してください。
context_windowintegerNo希望するコンテキストウィンドウの token 数。モデルの available_context_windows に含まれる正の整数を指定します。

Vaults

vaults は Vault ID をキーとするマップです。各項目には任意の enabled boolean を指定でき、省略時は true と同じです。vaults を指定すると既存設定全体を置き換え、null でクリアします。
{
  "vaults": {
    "vault_019f18f2761b": { "enabled": true },
    "vault_019f18f2762c": { "enabled": true }
  }
}
レスポンスでは vaults が常にオブジェクト形式で返されます。

File resources

files は File ID をキーとするマップです。各項目の内部に file_ididresource_id を含めないでください。Forward は Session の作成時に mount_path を注入します。 | Field | Type | Required | Description | | enabled | boolean | No | デフォルトは truefalse にすると、Identity Config で継承されたファイルが無効になります。 |

GitHub repositories

github_repositories は binding key をキーとするマップです。binding key は [A-Za-z][A-Za-z0-9_-]{0,63} に一致する必要があり、最大 20 件まで指定できます。正規化後のリポジトリ URL と mount path は重複できません。
FieldTypeRequiredDescription
urlstringYes絶対 HTTPS リポジトリ URL。userinfo、query、fragment、パーセントエンコード、バックスラッシュは使用できず、末尾の .git は正規化時に削除されます。
authorization_tokenstringYes書き込み専用のリポジトリアクセストークン。レスポンスには返されません。最大 8192 bytes で、ASCII の英字、数字、アンダースコアのみ使用できます。
mount_pathstringNoSession 内の正規化された絶対 mount path。/ は指定できません。省略時は /data/workspace/<repository-name> です。github_repositories フィールド全体を省略した場合、既存の構成は保持されます。
リクエスト形式セマンティクス
フィールドを省略現在のリポジトリ設定を保持します。
github_repositories: nullすべての binding をクリアします。
github_repositories: {}すべての binding をクリアします。
空でないオブジェクトリポジトリ設定全体を置き換えます。

Tools array

tools[] の項目は type によって選択されます。
FieldTypeApplies toDescription
typestringAll必須。agent_toolset_20260401browser_toolset_20260714mcp_toolset、または custom
enabled_toolsarrayagent_toolset_20260401便宜的な許可リスト。空でないリストを指定すると、これらの組み込みツールのみが有効になります。
disallowed_toolsarrayagent_toolset_20260401便宜的な拒否リスト。無効化されたツール設定にコンパイルされます。
configsarrayagent_toolset_20260401, mcp_toolsetツールごとの有効化と権限ポリシー。
mcp_server_namestringmcp_toolset必須。mcp_servers[].name のいずれかの項目と一致する必要があります。
namestringcustom必須のカスタムツール名。組み込みツールと競合してはいけません。
descriptionstringcustom必須のカスタムツールの説明。
input_schemaobjectcustom必須の JSON Schema。input_schema.typeobject である必要があります。
組み込みツール名は BashReadWriteEditGlobGrepWebFetchWebSearchDeliverArtifacts です。

Browser Use(Beta)

Browser Use は現在 Beta 機能であり、機能、制限、API の詳細は変更される可能性があります。 Browser Use を有効にするには、次の toolset を tools に追加します:
{
  "type": "browser_toolset_20260714"
}
リクエストには、次の Header も含める必要があります:
X-Qoder-Beta: browser-use-2026-07-14
更新 API の tools は配列全体を置き換えます。既存の toolset を保持するには、browser_toolset_20260714 と一緒に新しい tools 配列へ含めてください。

Tool config

tools[].configs[] の項目はこの形式を使用します。
FieldTypeRequiredDescription
namestringYesツール名。agent_toolset_20260401 の場合は組み込みツール名、mcp_toolset の場合は MCP ツール名。
enabledbooleanNofalse にするとツールを非表示にして拒否します。true にすると明示的に有効化します。
permission_policyobjectNo実行時の権限の挙動。

Permission policy

FieldTypeRequiredDescription
typestringYesalways_allowalways_ask、または always_deny

MCP servers

FieldTypeRequiredDescription
typestringNo現在は http のみ。省略された値は Effective Config で HTTP MCP サーバーとして扱われます。
namestringYesTemplate 内で一意の MCP サーバー名。tools[].mcp_server_name から参照されます。
urlstringYesStreamable HTTP MCP エンドポイントの URL。

Skills

FieldTypeRequiredDescription
typestringYescustom または qoder
skill_idstringYesSkill ID。
versionstringNoSkill のバージョン。省略した場合は最新バージョンが使用されます。
enabledbooleanNoデフォルトは truefalse にすると、コンパイルされたエージェント設定にその Skill が含まれなくなります。

Multiagent

multiagent は現在の Template を coordinator として設定し、委任先の Agent を宣言します。
フィールド必須説明
typestringはいcoordinator を指定します。
agentsarrayはい委任可能な Agent の一覧。1〜20 件を指定します。
multiagent.agents[] では、{"type":"agent","template_id":"tmpl_research"} のような Template 参照、または coordinator 自身を示す {"type":"self"} を使用できます。Template 参照には任意の name も指定できます。 参照する Template は現在の呼び出し元からアクセスできる必要があります。multiagent を使用する場合、toolsagent_toolset_20260401 が必要です。同じ更新リクエストで tools も指定する場合は、置き換え後の配列にこの toolset を残してください。
リクエスト形式意味
フィールドを省略現在の multiagent 設定を保持します。
multiagent: nullmultiagent 設定をクリアします。
空でないオブジェクト現在の設定を置き換えます。

Example request

curl -s -X POST 'https://api.qoder.com/api/v1/forward/templates/tmpl_support' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Support assistant v2",
  "model": {
    "id": "ultimate",
    "effort": "high",
    "context_window": 400000
  },
  "multiagent": {
    "type": "coordinator",
    "agents": [
      {
        "type": "agent",
        "template_id": "tmpl_research_v2",
        "name": "Research Agent"
      },
      {
        "type": "self"
      }
    ]
  },
  "environment_id": "env_support_v2",
  "vaults": {
    "vault_019f18f2761b": {
      "enabled": true
    },
    "vault_019f18f2762c": {
      "enabled": true
    }
  },
  "github_repositories": {
    "source": {
      "url": "https://github.com/acme/support-agent.git",
      "authorization_token": "github_pat_xxx",
      "mount_path": "/data/workspace/support-agent"
    }
  },
  "environment_variables": {
    "BASE_MODE": "support_v2"
  }
}'

Example response

HTTP 200 OK
{
  "type": "template",
  "id": "tmpl_support",
  "name": "Support assistant v2",
  "description": "Handles customer support requests",
  "status": "active",
  "model": {
    "id": "ultimate",
    "effort": "high",
    "context_window": 400000
  },
  "system": "You are a helpful support assistant.",
  "tools": [
    {
      "type": "agent_toolset_20260401"
    }
  ],
  "mcp_servers": [],
  "skills": [],
  "multiagent": {
    "type": "coordinator",
    "agents": [
      {
        "type": "agent",
        "template_id": "tmpl_research_v2",
        "name": "Research Agent"
      },
      {
        "type": "self"
      }
    ]
  },
  "environment_id": "env_support_v2",
  "vaults": {
    "vault_019f18f2761b": {
      "enabled": true
    },
    "vault_019f18f2762c": {
      "enabled": true
    }
  },
  "files": {},
  "github_repositories": {
    "source": {
      "url": "https://github.com/acme/support-agent",
      "mount_path": "/data/workspace/support-agent"
    }
  },
  "environment_variables": {
    "BASE_MODE": "support_v2"
  },
  "metadata": {},
  "created_at": "2026-06-18T10:00:00Z",
  "updated_at": "2026-06-18T10:30:00Z"
}

Response fields

FieldTypeDescription
Return valueobject更新された完全な Template オブジェクト。
multiagentobject|null更新後の Multi-agent 設定。未設定の場合は null

Errors

HTTPTypeTrigger
400invalid_request_errorリクエストボディが不正、またはサポートされていないフィールド値。
400invalid_request_errorbrowser_toolset_20260714 を使用しているが、正しい X-Qoder-Beta Header がない。
400invalid_request_errormultiagent の構造が不正、agents が 1〜20 件の範囲外、または参照先 Template にアクセスできない。
401authentication_errorPAT または SAT が無効または期限切れ。
404not_found_errorテンプレートまたは参照されたリソースが存在しない。
409conflict_errorテンプレート名が既に存在する。
401authentication_errorauthentication_required

Notes

  • アーカイブ済みのテンプレートは更新できません。
  • セッションのデフォルト値を更新しても、既存のセッションは変更されません。