Was this page helpful?
アウトカムはリサーチプレビュー機能です。試すにはアクセスをリクエストしてください。
outcomeはセッションを会話から作業へと昇格させます。最終結果がどのようなものであるべきか、品質をどのように測定するかを定義します。エージェントはそのターゲットに向けて作業し、アウトカムが達成されるまで自己評価と反復を繰り返します。
アウトカムを定義すると、ハーネスは自動的にグレーダーをプロビジョニングし、ルーブリックに対してアーティファクトを評価します。メインエージェントの実装上の選択に影響されないよう、別のコンテキストウィンドウを活用します。
グレーダーは基準ごとの内訳を返します:アーティファクトがルーブリックを満たしているという確認、または現在の作業と要件の間の具体的なギャップのいずれかです。そのフィードバックは次の反復のためにエージェントに渡されます。
すべてのManaged Agents APIリクエストにはmanaged-agents-2026-04-01ベータヘッダーが必要です。リサーチプレビュー機能にはさらにmanaged-agents-2026-04-01-research-previewが必要です。SDKはこれらのベータヘッダーを自動的に設定します。
ルーブリックは基準ごとのスコアリングを説明するmarkdownドキュメントです。ルーブリックは必須です。
ルーブリックの例:
# DCFモデルルーブリック
## 収益予測
- 過去5会計年度の過去収益データを使用している
- 少なくとも5年先の収益を予測している
- 成長率の前提が明示されており、合理的である
## コスト構造
- 売上原価と営業費用が別々にモデル化されている
- マージンは過去のトレンドと一致しているか、乖離が正当化されている
## 割引率
- WACCは株式コストと負債コストの前提を明示して計算されている
- ベータ、リスクフリーレート、株式リスクプレミアムが出典または正当化されている
## ターミナルバリュー
- 永続成長法または出口マルチプル法のいずれかを使用している(どちらかを明記)
- ターミナル成長率が長期GDP成長率を超えていない
## 出力品質
- すべての数値が明確にラベル付けされたシートを持つ単一の.xlsxファイルにある
- 主要な前提が別の「前提」シートにある
- WACCとターミナル成長率に関する感度分析が含まれているルーブリックをuser.define_outcomeのインラインテキストとして渡すか(次のセクションで示します)、またはセッション間で再利用するためにFiles APIを介してアップロードします:
ベータヘッダーfiles-api-2025-04-14が必要です。
セッションを作成した後、user.define_outcomeイベントを送信します。エージェントはすぐに作業を開始します。追加のユーザーメッセージイベントは必要ありません。
アウトカム指向セッションの進捗はイベントストリームに表示されます。
agent.*イベント(メッセージ、ツール使用など)はアウトカムに向けた進捗を示します。span.outcome_evaluation_*イベントはアウトカム指向セッションにのみ発行され、反復ループの数とグレーダーのフィードバックプロセスを示します。user.messageイベントを送信して、進行中のエージェントの作業を指示することもできますが、これらはそれほど必要ではありません。エージェントは反復を使い果たすかアウトカムを達成するまで作業することを知っています。user.interruptイベントは現在のアウトカムの作業を一時停止し、span.outcome_evaluation_end.resultをinterruptedとしてマークし、新しいアウトカムを開始できるようにします。一度にサポートされるアウトカムは1つのみですが、アウトカムを順番に連鎖させることができます。これを行うには、前のアウトカムの終端イベントの後に新しいuser.define_outcomeイベントを送信します。
これはアウトカムを開始するために送信するイベントです。受信時にprocessed_atタイムスタンプとoutcome_idを含めてエコーバックされます。
{
"type": "user.define_outcome",
"description": "Build a DCF model for Costco in .xlsx",
"rubric": { "type": "file", "file_id": "file_01..." },
"max_iterations": 5
}グレーダーが1つの反復ループに対して評価を開始すると発行されます。iterationフィールドは0インデックスのリビジョンカウンターです:0は最初の評価、1は最初のリビジョン後の再評価、というように続きます。
{
"type": "span.outcome_evaluation_start",
"id": "sevt_01def...",
"outcome_id": "outc_01a...",
"iteration": 0,
"processed_at": "2026-03-25T14:01:45Z"
}グレーダーが実行中に発行されるハートビートです。グレーダーの内部推論は不透明です:作業中であることはわかりますが、何を考えているかはわかりません。
{
"type": "span.outcome_evaluation_ongoing",
"id": "sevt_01ghi...",
"outcome_id": "outc_01a...",
"processed_at": "2026-03-25T14:02:10Z"
}グレーダーが1つの反復の評価を終了した後に発行されます。resultフィールドは次に何が起こるかを示します。
| 結果 | 次のアクション |
|---|---|
satisfied | セッションがidleに移行します。 |
needs_revision | エージェントが新しい反復サイクルを開始します。 |
max_iterations_reached | これ以上の評価サイクルはありません。エージェントはセッションがidleに移行する前に最後のリビジョンを1回実行する場合があります。 |
failed | セッションがidleに移行します。ルーブリックがタスクと根本的に一致しない場合(例えば、説明とルーブリックが矛盾している場合)に返されます。 |
interrupted | outcome_evaluation_startがインタラプトの前にすでに発行されていた場合にのみ発行されます。 |
{
"type": "span.outcome_evaluation_end",
"id": "sevt_01jkl...",
"outcome_evaluation_start_id": "sevt_01def...",
"outcome_id": "outc_01a...",
"result": "satisfied",
"explanation": "All 12 criteria met: revenue projections use 5 years of historical data, WACC assumptions are stated, sensitivity table is included...",
"iteration": 0,
"usage": {
"input_tokens": 2400,
"output_tokens": 350,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 1800
},
"processed_at": "2026-03-25T14:03:00Z"
}span.outcome_evaluation_endのイベントストリームをリッスンするか、GET /v1/sessions/:idをポーリングしてoutcome_evaluations[].resultを読み取ることができます:
エージェントはコンテナ内の/mnt/session/outputs/に出力ファイルを書き込みます。セッションがアイドル状態になったら、セッションにスコープされたFiles APIを介してそれらを取得します:
rubric=$(curl -fsSL https://api.anthropic.com/v1/files \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01,files-api-2025-04-14" \
-F file=@/path/to/pr_review_rubric.md)
rubric_id=$(jq -r '.id' <<<"$rubric")
printf 'Uploaded rubric: %s\n' "$rubric_id"# セッションを作成する
session=$(curl -fsSL https://api.anthropic.com/v1/sessions \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01-research-preview" \
--json @- <<EOF
{
"agent": "$agent_id",
"environment_id": "$environment_id",
"title": "Financial analysis on Costco"
}
EOF
)
session_id=$(jq -r '.id' <<<"$session")
# アウトカムを定義する — エージェントは受信後すぐに作業を開始する
curl -fsSL "https://api.anthropic.com/v1/sessions/$session_id/events" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01-research-preview" \
--json @- >/dev/null <<EOF
{
"events": [
{
"type": "user.define_outcome",
"description": "Build a DCF model for Costco in .xlsx",
"rubric": {"type": "text", "content": "# DCF Model Rubric\n..."},
"max_iterations": 5
}
]
}
EOF
# または: "rubric": {"type": "file", "file_id": "$rubric_id"}
# "max_iterations"はオプション; デフォルト3、最大20session=$(curl -fsSL "https://api.anthropic.com/v1/sessions/$session_id" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: managed-agents-2026-04-01-research-preview")
jq -r '.outcome_evaluations[] | "\(.outcome_id): \(.result)"' <<<"$session"
# outc_01a...: satisfied# このセッションで生成されたファイルを一覧表示する
curl -fsSL "https://api.anthropic.com/v1/files?scope_id=$session_id" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14,managed-agents-2026-04-01-research-preview" \
| jq '.data[] | {id, filename, size_bytes}'
# file_idでダウンロードする
curl -fsSL "https://api.anthropic.com/v1/files/$file_id/content" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: files-api-2025-04-14" \
-o costco_dcf.xlsx