Skip to main content
Templates

Create a template

今後のセッションのベースラインとなる Forward テンプレートを作成します。

POST /api/v1/forward/templates Forward が Identity に対してセッションを開始する際に使用する、デフォルトのエージェント設定とセッションのデフォルト値を定義するテンプレートを作成します。

Headers

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

Body parameters

ParameterTypeRequiredDescription
namestringYesテンプレート名。1〜256 文字で、テナント内で一意である必要があります。
modelstring|objectYesモデル ID、またはモデル ID と任意の effort、speed、context_window を含むオブジェクト。
environment_idstringYesこのテンプレートから作成されたセッションで使用されるデフォルトの Environment。
descriptionstringNoテンプレートの説明。最大 2048 文字。
systemstringNoシステムプロンプト。最大 100,000 文字。
max_tool_roundsinteger|nullNo1 Turn あたりのツール呼び出しラウンド数の上限。正の整数を指定します。省略または null の場合はプラットフォームのデフォルト値を使用し、Forward は追加のデフォルト値を設定しません。
toolsarrayNoツール設定のリスト。最大 128 件。
managed_tool_configobject|nullNoForward 管理対象機能のベースライン。enabled_tools で有効にする機能セレクターの完全なセットを宣言します。
mcp_serversarrayNoMCP サーバー設定のリスト。最大 20 件。
skillsarrayNoSkill のバインディングリスト。最大 20 件。
multiagentobject|nullNoMulti-agent コラボレーション設定。type は coordinator である必要があります。省略または null で無効になります。
vaultsobjectNoVault ID をキーとするデフォルトの Vault 設定。
filesobjectNoファイル ID をキーとするデフォルトのファイルリソース。
github_repositoriesobjectNo呼び出し側が指定する binding key をキーとするデフォルトの GitHub リポジトリ。最大 20 件。
environment_variablesobject | stringNoデフォルトのセッション環境変数。
metadataobjectNoカスタムメタデータ。

Nested configuration objects

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 と同じです。項目内に vault_id、id、resource_id を重複して指定しないでください。
{
  "vaults": {
    "vault_019f18f2761b": {
      "enabled": true
    }
  }
}
レスポンスでは vaults が常にオブジェクト形式で返されます。

File resources

files は File ID をキーとするマップです。各項目の内部に file_id、id、resource_id を含めないでください。Forward は Session の作成時に mount_path を注入し、各ファイルを /data/workspace/<ファイル名> にマウントします。
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> です。

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

Browser Use(Beta)

Browser Use は現在 Beta 機能であり、機能、制限、API の詳細は変更される可能性があります。 この Template から作成する Session でブラウザ機能を有効にするには、次の toolset を tools に追加します:
{
  "type": "browser_toolset_20260714"
}
リクエストには、次の Header も含める必要があります:
X-Qoder-Beta: browser-use-2026-07-14

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[] の各項目は、次のいずれかの形式を使用できます:
形式例説明
Template 参照{"type":"agent","template_id":"tmpl_research"}現在の呼び出し元がアクセスできる Forward Template を参照します。
Coordinator 自身{"type":"self"}現在の coordinator を委任可能な Agent として使用します。
Advisor オブジェクト{"type":"advisor","model":"ultimate"}メインスレッドの助言用モデルを設定します。一覧ごとに最大 1 件。Advisor を参照してください。
以下のフィールドは通常の Agent と self エントリに適用されます。Advisor は別の構造を使用します。Advisor を参照してください。
フィールド型適用対象必須説明
typestringすべてはいagent は別の Agent、self は coordinator 自身を参照します。
template_idstringagentはい参照する Forward Template ID。
namestringagentいいえSub-Agent の表示名。
参照する Template は存在し、現在の呼び出し元からアクセスできる必要があります。通常の Agent または self を含む場合、tools に agent_toolset_20260401 が必要です。Advisor のみの場合、このツールセットは不要です。Template の作成時には Forward がこのツールセットを自動的に追加します。

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' \
  -H "Authorization: Bearer $QODER_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Support assistant",
  "description": "Handles customer support requests",
  "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",
        "name": "Research Agent"
      },
      {
        "type": "self"
      }
    ]
  },
  "environment_id": "env_xxx",
  "vaults": {
    "vault_019f18f2761b": {
      "enabled": true
    }
  },
  "files": {},
  "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"
  },
  "metadata": {}
}'

Example response

HTTP 200 OK
{
  "type": "template",
  "id": "tmpl_support",
  "name": "Support assistant",
  "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",
        "name": "Research Agent"
      },
      {
        "type": "self"
      }
    ]
  },
  "environment_id": "env_xxx",
  "vaults": {
    "vault_019f18f2761b": {
      "enabled": true
    }
  },
  "files": {},
  "github_repositories": {
    "source": {
      "url": "https://github.com/acme/support-agent",
      "mount_path": "/data/workspace/support-agent"
    }
  },
  "environment_variables": {
    "BASE_MODE": "support"
  },
  "metadata": {},
  "created_at": "2026-06-18T10:00:00Z",
  "updated_at": "2026-06-18T10:00:00Z"
}

Response fields

FieldTypeDescription
typestring常に template。
idstringTemplate ID。
statusstringactive または archived。
modelstring | objectリクエストで指定した形式で返されます。オブジェクト形式では id、effort、speed、context_window を保持します。
max_tool_roundsinteger1 Turn あたりのツール呼び出しラウンド数の上限。未設定または削除済みの場合、このフィールドは省略され、null は返されません。
managed_tool_configobjectTemplate の Forward 管理対象機能のベースライン。設定されている場合は enabled_tools 配列として返されます。
multiagentobject|nullMulti-agent 設定。未設定の場合は null。
environment_idstringセッションで使用されるデフォルトの Environment ID。
vaultsobjectVault ID をキーとするデフォルトの Vault 設定。
filesobjectファイル ID をキーとするデフォルトのファイルリソース設定。
github_repositoriesobjectデフォルトの GitHub リポジトリ設定。正規化された url と最終的な mount_path を含み、authorization_token は含みません。
created_atstring作成タイムスタンプ。
updated_atstring更新タイムスタンプ。

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-参照された environment、skill、vault、または file が存在しない。
409conflict_error-Template 名が既に存在するか、GitHub リポジトリの正規化後の URL またはマウントパスが重複しています。
401authentication_errorauthentication_requiredPAT または SAT が無効または有効期限切れです。

Notes

  • id は Forward によって生成されます。作成リクエストで Template ID を送信しないでください。
  • files はファイル ID をキーとするマップです。各ファイル項目の内部に file_id、id、resource_id を含めないでください。
  • Forward はセッション作成時にファイルのマウントパスを注入します。
  • managed_tool_config を省略すると、デフォルトではすべての Forward 管理対象機能が無効になります。
  • 従来の managed_tool_config.tools または schedule_creation_enabled を使用するリクエストも引き続き互換処理されます。新規連携では managed_tool_config.enabled_tools を使用してください。
  • github_repositories.*.authorization_token は書き込み専用で、Template のレスポンスには含まれません。