エージェントは、Qoder Cloud Agents のコア設定テンプレートです。エージェントの機能 (モデル、instructions、ツールなど) を定義します。単一のエージェントは複数のセッションで再利用でき、エージェントを変更しても、実行中のセッションには影響しません。
基本概念
エージェントは「ジョブディスクリプション」と考えることができます:
|
要素 |
説明 |
|
モデル |
エージェントの知能レベル |
|
システムプロンプト |
エージェントの行動指針 |
|
ツール |
エージェントが実行するアクション |
|
スキル |
エージェントが呼び出す高レベルのスキル |
エージェント自体はタスクを実行せず、単なる設定です。タスクは、そのエージェントにバインドされたセッションが実行します。
パラメーターリファレンス
|
パラメーター |
タイプ |
必須 |
説明 |
|
|
string |
— |
システムが生成する ID で、 |
|
|
string |
— |
常に |
|
|
string |
はい |
エージェント名。推奨されるフォーマットはケバブケース (64 文字以下) です。 |
|
|
string |
いいえ |
エージェントの説明。デフォルトは |
|
|
string |
はい |
モデル識別子。詳細は以下をご参照ください。 |
|
|
string |
いいえ |
システムプロンプト。デフォルトは |
|
|
string |
いいえ |
システムプロンプトに追加される指示。 |
|
|
array |
いいえ |
利用可能なツールの一覧。詳細は以下をご参照ください。 |
|
|
array |
いいえ |
関連付けられたスキル ID の一覧。 |
|
|
array |
いいえ |
MCP サーバー設定の一覧。デフォルトは |
|
|
string |
いいえ |
このエージェントのデフォルトの環境 ID。デフォルトは |
|
|
object |
いいえ |
タグ付けとフィルタリングのためのカスタムキーと値のペア。 |
|
|
integer |
— |
バージョン番号。1 から始まり、更新ごとにインクリメントされます。 |
|
|
boolean |
— |
エージェントがアーカイブされているかどうか。デフォルトは |
|
|
string|null |
— |
アーカイブのタイムスタンプ (ISO 8601 フォーマット)。エージェントがアーカイブされていない場合は |
|
|
string |
— |
作成のタイムスタンプ (ISO 8601 フォーマット)。 |
|
|
string |
— |
最終更新のタイムスタンプ。 |
モデル
model フィールドは、エージェントが使用するモデルを指定します。
|
値 |
説明 |
|
|
自動モデル選択 |
|
|
Qwen フラッグシップ |
|
|
Qwen マルチモーダル |
|
|
Qwen 軽量 |
|
|
DeepSeek フラッグシップ |
|
|
DeepSeek 軽量 |
|
|
Zhipu フラッグシップ |
|
|
Moonshot AI |
|
|
MiniMax |
ツール
tools フィールドは、ツールオブジェクトの配列です。現在、agent_toolset_20260401 ツールセットのみがサポートされています。このツールセット内のアトミックツールを有効にするには、enabled_tools 配列にリストアップします:
{
"tools": [
{
"type": "agent_toolset_20260401",
"enabled_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch"]
}
]
}
enabled_tools で使用可能な値 (値は大文字と小文字が区別され、パスカルケースである必要があります):
|
ツール名 |
説明 |
|
|
シェルコマンドを実行します。 |
|
|
ファイルの内容を読み取ります。 |
|
|
ファイルを作成または上書きします。 |
|
|
ファイルの一部を編集します。 |
|
|
ワイルドカードを使用してファイルを一覧表示します。 |
|
|
ファイル内のコンテンツを検索します。 |
|
|
単一の Web ページに対して HTTP GET リクエストを実行します。 |
|
|
ウェブを検索します。 |
ツールの設定に関する詳細については、「エージェントツールの設定」をご参照ください。
エージェントの管理
CRUD API の完全なセットについては、「API リファレンス / エージェント」をご参照ください。以下の例では、一般的なワークフローを紹介します。
作成
curl -s -X POST https://api.qoder.com.cn/api/v1/cloud/agents \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"name": "code-reviewer",
"model": "auto",
"instructions": "あなたはコードレビューの専門家です。コードを一行ずつレビューし、問題点と改善提案を Markdown 形式で出力してください。",
"tools": [
{
"type": "agent_toolset_20260401",
"enabled_tools": ["Bash", "Read", "Write"]
}
],
"metadata": {
"team": "backend",
"purpose": "code-review"
}
}' | jq .
リクエストが成功すると、201 Created が返されます。version は 1 から始まります。
取得
# 単一のエージェントを取得
curl -s https://api.qoder.com.cn/api/v1/cloud/agents/agent_xxx \
-H "Authorization: Bearer $QODER_PAT"
# ページネーションでエージェントを一覧表示
curl -s "https://api.qoder.com.cn/api/v1/cloud/agents?limit=20" \
-H "Authorization: Bearer $QODER_PAT"
更新
エージェントを更新する際は、現在の version を指定する必要があります。詳細については、後述の「バージョン管理」をご参照ください。
curl -s -X PUT https://api.qoder.com.cn/api/v1/cloud/agents/agent_xxx \
-H "Authorization: Bearer $QODER_PAT" \
-H "Content-Type: application/json" \
-d '{
"name": "code-reviewer",
"model": "auto",
"instructions": "あなたはシニアコードレビューの専門家で、セキュリティの脆弱性とパフォーマンスの問題に重点を置いています。",
"version": 1
}' | jq .
リクエストが成功すると 200 OK が返され、version は自動的に 1 ずつインクリメントされます。
削除
curl -s -X DELETE https://api.qoder.com.cn/api/v1/cloud/agents/agent_xxx \
-H "Authorization: Bearer $QODER_PAT"
エージェントを削除しても、それにバインドされているアクティブセッションは終了しません。セッションは、作成時にエージェントの設定をスナップショットとして保存します。
バージョン管理
エージェント API は、楽観的同時実行制御 (OCC) を使用します:
-
versionは作成時に1から始まります。 -
更新が成功するたびに、
versionは自動的に 1 ずつインクリメントされます。 -
更新リクエストには、現在の
versionを含める必要があります。失敗するシナリオは 2 つあります:-
versionフィールドの欠落 — 400invalid_request_error("Field 'version' is required.") が返されます。 -
指定された
versionがサーバー側のバージョンと一致しない — 409conflict_errorが返されます。
-
このメカニズムにより、同時変更による上書きを防ぎます。
409 コンフリクトの処理
バージョンが古いためにリクエストが失敗した場合、次のエラーが返されます:
{
"type": "error",
"error": {
"type": "conflict_error",
"message": "Version conflict. Expected version 2, got 1."
}
}
このコンフリクトを解決するには:
-
GETで最新のエージェントを取得し、現在のversionを取得します。 -
最新のオブジェクトデータに変更を再適用します。
-
新しい
versionを使用して、再度PUTを実行します。
ベストプラクティス
-
命名規則 —
backend-code-reviewやfrontend-test-genのように、team-purposeというフォーマットを使用します。 -
プロンプトの改良 —
systemフィールドで、役割、出力フォーマット、制約を指定します。 -
最小権限の原則の適用:リスクを最小限に抑えるため、タスクに不可欠な
toolsのみを付与します。 -
メタデータの効果的な使用:キーと値のペアを使用してエージェントを分類することで、フィルタリングと監査を簡素化できます。
-
本番環境でのバージョンのロック — セッションを作成する際、
{"id": ..., "version": ...}フォーマットを使用してエージェントのバージョンをロックします。これにより、新しいバージョンがオンラインサービスに影響を与えるのを防ぎます。
よくある質問
Q:エージェントを更新すると、現在実行中のセッションに影響しますか? いいえ。セッションは、作成時にエージェントの特定のバージョンにバインドされます。 Q:tools 配列を空にすることはできますか? はい。tools のないエージェントは、テキストベースの対話しかできず、アクションを実行することはできません。 Q:name フィールドに長さの制限はありますか? 64 文字以下にし、小文字、数字、ハイフンを使用することを推奨します。 Q:エージェントを古いバージョンにロールバックするにはどうすればよいですか? 自動ロールバックはサポートされていません。更新前にエージェントの設定を保存しておくことを推奨します。元に戻すには、最新の version 番号を指定して、古い設定を手動で PUT します。