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 と任意の調整フィールドを含むオブジェクト。
environment_idstringYesこのテンプレートから作成されたセッションで使用されるデフォルトの Environment。
descriptionstringNoテンプレートの説明。最大 2048 文字。
systemstringNoシステムプロンプト。最大 100,000 文字。
toolsarrayNoツール設定のリスト。最大 128 件。
mcp_serversarrayNoMCP サーバー設定のリスト。最大 20 件。
skillsarrayNoSkill のバインディングリスト。最大 20 件。
multiagentobject|nullNoMulti-agent コラボレーション設定。typecoordinator である必要があります。省略または 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。nonelowmediumhighxhighmax のいずれか。各モデルが対応する値は efforts を確認してください。
context_windowintegerNo希望するコンテキストウィンドウの token 数。モデルの available_context_windows に含まれる正の整数を指定します。

Vaults

vaults は Vault ID をキーとするマップです。各項目には任意の enabled boolean を指定でき、省略時は true と同じです。項目内に vault_ididresource_id を重複して指定しないでください。
{
  "vaults": {
    "vault_019f18f2761b": {
      "enabled": true
    }
  }
}
レスポンスでは vaults が常にオブジェクト形式で返されます。

File resources

files は File ID をキーとするマップです。各項目の内部に file_ididresource_id を含めないでください。Forward は Session の作成時に mount_path を注入します。
FieldTypeRequiredDescription
enabledbooleanNoデフォルトは 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> です。

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 の詳細は変更される可能性があります。 この 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_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[] の各項目は、次のいずれかの形式を使用できます:
形式説明
Template 参照{"type":"agent","template_id":"tmpl_research"}現在の呼び出し元がアクセスできる Forward Template を参照します。
Coordinator 自身{"type":"self"}現在の coordinator を委任可能な Agent として使用します。
フィールド適用対象必須説明
typestringすべてはいagent は別の Agent、self は coordinator 自身を参照します。
template_idstringagentはい参照する Forward Template ID。
namestringagentいいえSub-Agent の表示名。
参照する Template は存在し、現在の呼び出し元からアクセスできる必要があります。multiagent を使用する場合、toolsagent_toolset_20260401 が必要です。Template の作成時には Forward がこのツールセットを自動的に追加します。

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",
  "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",
        "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 201 Created
{
  "type": "template",
  "id": "tmpl_support",
  "name": "Support assistant",
  "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",
        "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
multiagentobject|nullMulti-agent 設定。未設定の場合は null
environment_idstringセッションで使用されるデフォルトの Environment ID。
vault_idsarrayデフォルトの Vault ID。
filesobjectファイル ID をキーとするデフォルトのファイルリソース設定。
created_atstring作成タイムスタンプ。
updated_atstring更新タイムスタンプ。

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参照された environment、skill、vault、または file が存在しない。
409conflict_errorテンプレート名が既に存在する。
401authentication_errorauthentication_required

Notes

  • id は Forward によって生成されます。作成リクエストで Template ID を送信しないでください。
  • files はファイル ID をキーとするマップです。各ファイル項目の内部に file_ididresource_id を含めないでください。
  • Forward はセッション作成時にファイルのマウントパスを注入します。