Loading...
  • ビルド
  • 管理
  • モデルと料金
  • クライアントSDK
  • APIリファレンス
Search...
⌘K
Log in
成果の定義
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
ビルド/エージェントへの作業委任

成果を定義する

エージェントに「完了」がどのような状態かを伝え、そこに到達するまで反復させます。

Was this page helpful?

Outcomes は Research Preview 機能です。アクセスをリクエストして試してください。

outcome はセッションを会話から作業に昇格させます。最終的な結果がどのような状態であるべきか、また品質をどのように測定するかを定義します。エージェントはそのターゲットに向かって作業し、自己評価と反復を繰り返して成果を達成します。

成果を定義すると、ハーネスは自動的にグレーダーをプロビジョニングして、ルーブリックに対してアーティファクトを評価します。メインエージェントの実装選択の影響を受けないようにするために、別のコンテキストウィンドウを活用します。

グレーダーは基準ごとの内訳を返します。アーティファクトがルーブリックを満たしていることの確認、または現在の作業と要件の間の特定のギャップのいずれかです。そのフィードバックは次の反復のためにエージェントに返されます。

すべての Managed Agents API リクエストには managed-agents-2026-04-01 ベータヘッダーが必要です。Research Preview 機能には追加で managed-agents-2026-04-01-research-preview が必要です。SDK はこれらのベータヘッダーを自動的に設定します。

ルーブリックを作成する

ルーブリックは基準ごとのスコアリングを説明するマークダウンドキュメントです。ルーブリックは必須です。

ルーブリックの例:

# DCF モデル ルーブリック

## 収益予測
- 過去 5 会計年度の履歴収益データを使用している
- 少なくとも 5 年先の収益を予測している
- 成長率の仮定が明示的に述べられており、合理的である

## コスト構造
- COGS と営業費用は別々にモデル化されている
- マージンは履歴トレンドと一致しているか、逸脱が正当化されている

## 割引率
- 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 に遷移する場合があります。
failedセッションは idle に遷移します。ルーブリックが基本的にタスクと一致しない場合に返されます。たとえば、説明とルーブリックが矛盾している場合です。
interruptedoutcome_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 経由でそれらを取得します:

from pathlib import Path

rubric = client.beta.files.upload(file=Path("/path/to/pr_review_rubric.md"))
print(f"Uploaded rubric: {rubric.id}")
# セッションを作成する
session = client.beta.sessions.create(
    agent=agent.id,
    environment_id=environment.id,
    title="Financial analysis on Costco",
)

# 成果を定義する — エージェントは受け取り時に作業を開始する
client.beta.sessions.events.send(
    session_id=session.id,
    events=[
        {
            "type": "user.define_outcome",
            "description": "Build a DCF model for Costco in .xlsx",
            "rubric": {"type": "text", "content": RUBRIC},
            # または: "rubric": {"type": "file", "file_id": rubric.id},
            "max_iterations": 5,  # オプション; デフォルト 3、最大 20
        }
    ],
)
session = client.beta.sessions.retrieve(session.id)

for outcome in session.outcome_evaluations:
    print(f"{outcome.outcome_id}: {outcome.result}")
    # outc_01a...: satisfied
files = client.beta.files.list(scope_id=session.id)
for f in files.data:
    print(f"{f.id}: {f.filename} ({f.size_bytes} bytes)")

content = client.beta.files.download(files.data[0].id)
content.write_to_file("costco_dcf.xlsx")