Skip to main content
Templates

Update a template

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

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

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 と任意の effort、speed、context_window を含むオブジェクト。
systemstringNo新しいシステムプロンプト。
max_tool_roundsinteger|nullNo1 Turn あたりのツール呼び出しラウンド数の上限。正の整数を指定します。省略すると現在の値を保持し、null は明示的な上限を削除してプラットフォームのデフォルト値を使用します。
toolsarrayNoツール設定のリストを置き換えます。
managed_tool_configobject|nullNoForward 管理対象機能のベースライン全体を置き換えます。null、{}、または enabled_tools: [] でクリアします。
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

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

Model

model にはモデル ID の文字列、またはモデル ID と任意の調整フィールドを含むオブジェクトを指定できます。
FieldTypeRequiredDescription
idstringYesモデル識別子。利用可能な値は List models エンドポイントで確認できます。
effortstringNoReasoning effort。none、low、medium、high、xhigh、max のいずれか。各モデルが対応する値は efforts を確認してください。
context_windowintegerNo希望するコンテキストウィンドウの token 数。モデルの available_context_windows に含まれる正の整数を指定します。
speedstringNo推論速度。standard または high を指定します。省略時は standard です。対応する値はモデル一覧が返す speed 配列を参照してください。

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_id、id、resource_id を含めないでください。Forward は Session の作成時に mount_path を注入します。
FieldTypeRequiredDescription
enabledbooleanNoデフォルトは true。false にすると、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_20260401、browser_toolset_20260714、mcp_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.type は object である必要があります。
組み込みツール名は Bash、Read、Write、Edit、Glob、Grep、WebFetch、WebSearch、DeliverArtifacts です。

Forward 管理対象機能

managed_tool_config.enabled_tools は、Template で有効にする Forward 管理対象機能の完全なセットです。対応するツール定義は Forward が提供するため、呼び出し側は tools で重複して設定する必要はありません。現在サポートされているセレクターは schedule、create_forward_schedule、list_forward_schedules、delete_forward_schedule、drive です。 schedule は Schedule 機能をまとめた Bundle の簡略表記であり、create_forward_schedule、list_forward_schedules、delete_forward_schedule を同時に有効化することと同じです:
{
  "managed_tool_config": {
    "enabled_tools": ["schedule"]
  }
}
schedule などの Bundle/Capability セレクターは設定にのみ使用されます。drive は Drive 機能全体を表します。Session の実行時には、対応する Forward 管理対象ツールが提供され、それぞれを個別に呼び出せます。Template のレスポンスはリクエストの schedule または drive を保持し、実行ツール名に書き換えません。
リクエスト形式セマンティクス
フィールドを省略現在の管理対象機能のベースラインを維持します。
managed_tool_config: nullすべての Forward 管理対象機能をクリアします。
managed_tool_config: {}すべての Forward 管理対象機能をクリアします。
{ "enabled_tools": [] }すべての Forward 管理対象機能をクリアします。
空でない enabled_tools 配列その配列でベースライン全体を置き換えます。
不明なセレクターや重複したセレクターは拒否されます。 テンプレートページの「ツール」にある Schedule スイッチは、作成・照会・アーカイブの 3 機能をまとめて制御します。有効なデフォルトの Forward MCP 設定では、新しいリクエストで設定が更新されると、Schedule が無効でも対話 Session にツールが表示されます。呼び出し時に Template と Identity の有効なスイッチおよびリソース権限を検証し、無効な場合は操作を実行せず、ツール業務エラー schedule_feature_disabled を返します。有効化、設定更新、互換性の範囲は 自然言語で Schedule を管理するを参照してください。

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_allow、always_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デフォルトは true。false にすると、コンパイルされたエージェント設定にその Skill が含まれなくなります。

Multiagent

multiagent は現在の Template を coordinator として設定し、委任先の Agent 一覧と任意の Advisor を宣言します。
フィールド型必須説明
typestringはいcoordinator を指定します。
agentsarrayはい空でない一覧。通常の Agent エントリ(self を含む)は最大 20 件で、さらに Advisor を 1 件追加できます。
multiagent.agents[] では、{"type":"agent","template_id":"tmpl_research"} のような Template 参照、または coordinator 自身を示す {"type":"self"} を使用できます。Template 参照には任意の name も指定できます。
フィールド型適用タイプ必須説明
typestringすべてはいagent は別の Agent を参照し、self は coordinator 自身を参照します。
template_idstringagentはい参照先の Forward Template ID。
namestringagentいいえサブ Agent の表示名。
Advisor エントリは {"type":"advisor","model":"ultimate"} を使用します。最大 1 件です。Advisor を参照してください。 参照する Template は現在の呼び出し元からアクセスできる必要があります。通常の Agent または self を含む場合、tools に agent_toolset_20260401 が必要です。Advisor のみの場合、このツールセットは不要です。同じ更新リクエストで tools も指定する場合は、置き換え後の配列にこの toolset を残してください。
リクエスト形式意味
フィールドを省略現在の multiagent 設定を保持します。
multiagent: nullmultiagent 設定をクリアします。
空でないオブジェクト現在の設定を置き換えます。

Advisor

Advisor は、計画のレビューや複雑な問題の分析などでメイン Agent に助言します。相談するタイミングと助言を採用するかどうかはメイン Agent が判断します。システムプロンプトに相談条件を記述できます。Advisor はメイン Agent の現在の会話コンテキストを使用し、ツールは実行しません。
フィールド型必須説明
typestringはい"advisor" を指定します。
modelstringはい空でない利用可能なモデル名。モデル一覧を参照してください。モデルオブジェクトは使用できません。
Advisor エントリで指定できるのは type と model のみです。単独でも通常のエントリと併用しても設定できます。一覧ごとに最大 1 件で、通常の Agent の上限 20 件には含まれません。enabled_tools への追加は不要です。フィールド定義は Managed 層の Advisor オブジェクト と同じです。
{
  "multiagent": {
    "type": "coordinator",
    "agents": [{"type": "advisor", "model": "ultimate"}]
  }
}
Advisor のモデルを変更するには、multiagent.agents[] 内の Advisor エントリの model 文字列を更新します。Template のトップレベルの model はメイン Agent を制御し、Advisor のモデルは変更しません。multiagent の更新は設定全体を置き換えるため、保持する通常の Agent と self エントリをすべて含めてください。Advisor を削除するには一覧から該当エントリを除き、一覧全体をクリアするには multiagent: null を指定します。Advisor 設定の変更は新規 Session にのみ適用されます。

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",
  "max_tool_rounds": 40,
  "model": {
    "id": "ultimate",
    "effort": "high",
    "speed": "standard",
    "context_window": 400000
  },
  "managed_tool_config": {
    "enabled_tools": []
  },
  "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",
  "max_tool_rounds": 40,
  "model": {
    "id": "ultimate",
    "effort": "high",
    "speed": "standard",
    "context_window": 400000
  },
  "system": "You are a helpful support assistant.",
  "tools": [
    {
      "type": "agent_toolset_20260401"
    }
  ],
  "managed_tool_config": {
    "enabled_tools": []
  },
  "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 オブジェクト。リクエストに model が含まれる場合は指定した形式で返され、含まれない場合は既存の形式を保持します。
managed_tool_configobject更新後の Forward 管理対象機能のベースライン。enabled_tools 配列として返されます。
max_tool_roundsinteger1 Turn あたりのツール呼び出しラウンド数の上限。未設定または削除済みの場合、このフィールドは省略され、null は返されません。
multiagentobject|null更新後の Multi-agent 設定。未設定の場合は null。
github_repositoriesobject更新後の GitHub リポジトリ設定。書き込み専用の authorization_token は含みません。

Errors

HTTPTypeCodeTrigger
400invalid_request_error-リクエストボディが不正、またはサポートされていないフィールド値。
400invalid_request_error-browser_toolset_20260714 を使用しているが、正しい X-Qoder-Beta Header がない。
400invalid_request_error-multiagent の構造が不正、一覧が空、通常の Agent が 20 件を超える、Advisor が 1 件を超えるかそのフィールドが不正、または参照先の Forward Template が存在しないかアクセスできない。
404not_found_error-テンプレートまたは参照されたリソースが存在しない。
409conflict_error-Template 名が既に存在する、Template の状態が競合する、または GitHub リポジトリの正規化後の URL やマウントパスが重複しています。
401authentication_errorauthentication_requiredPAT または SAT が無効または有効期限切れです。

Notes

  • アーカイブ済みのテンプレートは更新できません。
  • 従来の managed_tool_config.tools または schedule_creation_enabled を使用するリクエストも引き続き互換処理されます。新規連携では managed_tool_config.enabled_tools を使用してください。
  • セッションのデフォルト値を更新しても、既存のセッションは変更されません。
  • github_repositories.*.authorization_token は書き込み専用で、Template のレスポンスには含まれません。