Loading...
  • Bangun
  • Admin
  • Model & harga
  • Client SDK
  • Referensi API
Search...
⌘K
Log in
Tentukan hasil
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
Bangun/Delegasikan pekerjaan ke agen Anda

Tentukan hasil

Beritahu agen seperti apa 'selesai' itu, dan biarkan agen melakukan iterasi sampai mencapainya.

Outcomes adalah fitur Research Preview. Minta akses untuk mencobanya.

outcome meningkatkan sesi dari percakapan menjadi pekerjaan. Anda menentukan seperti apa hasil akhirnya dan cara mengukur kualitasnya. Agen bekerja menuju target tersebut, mengevaluasi diri sendiri dan melakukan iterasi sampai hasil tercapai.

Ketika Anda menentukan hasil, harness secara otomatis menyediakan grader untuk mengevaluasi artefak terhadap rubrik. Ini memanfaatkan jendela konteks terpisah untuk menghindari dipengaruhi oleh pilihan implementasi agen utama.

Grader mengembalikan rincian per-kriteria: baik konfirmasi bahwa artefak memenuhi rubrik, atau celah spesifik antara pekerjaan saat ini dan persyaratan. Umpan balik tersebut diberikan kembali kepada agen untuk iterasi berikutnya.

Semua permintaan Managed Agents API memerlukan header beta managed-agents-2026-04-01. Fitur research preview juga memerlukan managed-agents-2026-04-01-research-preview. SDK menetapkan header beta ini secara otomatis.

Buat rubrik

Rubrik adalah dokumen markdown yang menjelaskan penilaian per-kriteria. Rubrik diperlukan.

Contoh rubrik:

# Rubrik Model DCF

## Proyeksi Pendapatan
- Menggunakan data pendapatan historis dari 5 tahun fiskal terakhir
- Memproyeksikan pendapatan setidaknya 5 tahun ke depan
- Asumsi tingkat pertumbuhan dinyatakan secara eksplisit dan masuk akal

## Struktur Biaya
- COGS dan biaya operasional dimodelkan secara terpisah
- Margin konsisten dengan tren historis atau penyimpangan dibenarkan

## Tingkat Diskon
- WACC dihitung dengan asumsi yang dinyatakan untuk biaya ekuitas dan biaya utang
- Beta, tingkat bebas risiko, dan premi risiko ekuitas bersumber atau dibenarkan

## Nilai Terminal
- Menggunakan metode pertumbuhan perpetuitas atau kelipatan keluar (nyatakan mana)
- Tingkat pertumbuhan terminal tidak melebihi pertumbuhan PDB jangka panjang

## Kualitas Output
- Semua angka dalam satu file .xlsx dengan lembar yang diberi label dengan jelas
- Asumsi kunci ada di lembar "Assumptions" terpisah
- Analisis sensitivitas pada WACC dan tingkat pertumbuhan terminal disertakan

Berikan rubrik sebagai teks inline pada user.define_outcome (ditunjukkan di bagian berikutnya), atau unggah melalui Files API untuk digunakan kembali di seluruh sesi:

Memerlukan header beta files-api-2025-04-14.

from pathlib import Path

rubric = client.beta.files.upload(file=Path("/path/to/pr_review_rubric.md"))
print(f"Uploaded rubric: {rubric.id}")

Buat sesi dengan hasil

Setelah membuat sesi, kirim acara user.define_outcome. Agen mulai bekerja segera; tidak ada acara pesan pengguna tambahan yang diperlukan.

# Create a session
session = client.beta.sessions.create(
    agent=agent.id,
    environment_id=environment.id,
    title="Financial analysis on Costco",
)

# Define the outcome — agent starts working on receipt
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},
            # or: "rubric": {"type": "file", "file_id": rubric.id},
            "max_iterations": 5,  # optional; default 3, max 20
        }
    ],
)

Acara hasil

Kemajuan pada sesi berorientasi hasil ditampilkan pada aliran acara.

  • Acara agent.* (pesan, penggunaan alat, dll.) menunjukkan kemajuan menuju hasil.
  • Acara span.outcome_evaluation_* hanya dipancarkan untuk sesi berorientasi hasil dan menunjukkan jumlah loop iterasi dan proses umpan balik grader.
  • Anda juga dapat mengirim acara user.message events ke sesi berorientasi hasil, untuk mengarahkan pekerjaan agen saat berkembang, tetapi ini tidak perlu; agen tahu untuk bekerja sampai telah menghabiskan iterasinya atau mencapai hasil.
  • Acara user.interrupt akan menghentikan pekerjaan pada hasil saat ini dan menandai span.outcome_evaluation_end.result sebagai interrupted, memungkinkan Anda untuk memulai hasil baru.
  • Setelah evaluasi hasil akhir, sesi dapat dilanjutkan sebagai sesi percakapan, atau hasil baru dapat dimulai. Sesi akan mempertahankan riwayat hasil sebelumnya.

Tentukan acara pengguna hasil

Hanya satu hasil yang didukung pada satu waktu, tetapi Anda dapat merantai hasil bersama secara berurutan. Untuk melakukan ini, kirim acara user.define_outcome baru setelah acara terminal hasil sebelumnya.

Ini adalah acara yang Anda kirim untuk memulai hasil. Ini diulang kembali saat diterima, termasuk stempel waktu processed_at dan 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
}

Awal evaluasi hasil

Dipancarkan setelah grader memulai evaluasi atas satu loop iterasi. Bidang iteration adalah penghitung revisi berbasis 0: 0 adalah evaluasi pertama, 1 adalah re-evaluasi setelah revisi pertama, dan seterusnya.

{
  "type": "span.outcome_evaluation_start",
  "id": "sevt_01def...",
  "outcome_id": "outc_01a...",
  "iteration": 0,
  "processed_at": "2026-03-25T14:01:45Z"
}

Evaluasi hasil sedang berlangsung

Detak jantung yang dipancarkan saat grader berjalan. Penalaran internal grader tidak transparan: Anda melihat bahwa itu bekerja, bukan apa yang dipikirkannya.

{
  "type": "span.outcome_evaluation_ongoing",
  "id": "sevt_01ghi...",
  "outcome_id": "outc_01a...",
  "processed_at": "2026-03-25T14:02:10Z"
}

Akhir evaluasi hasil

Dipancarkan setelah grader selesai mengevaluasi satu iterasi. Bidang result menunjukkan apa yang terjadi selanjutnya.

HasilSelanjutnya
satisfiedSesi beralih ke idle.
needs_revisionAgen memulai siklus iterasi baru.
max_iterations_reachedTidak ada siklus evaluasi lebih lanjut. Agen dapat menjalankan satu revisi akhir sebelum sesi beralih ke idle.
failedSesi beralih ke idle. Dikembalikan ketika rubrik secara fundamental tidak cocok dengan tugas, misalnya jika deskripsi dan rubrik saling bertentangan.
interruptedHanya dipancarkan jika outcome_evaluation_start sudah dipecat sebelum gangguan.
{
  "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"
}

Memeriksa status hasil

Anda dapat mendengarkan pada aliran acara untuk span.outcome_evaluation_end, atau polling GET /v1/sessions/:id dan membaca outcome_evaluations[].result:

session = client.beta.sessions.retrieve(session.id)

for outcome in session.outcome_evaluations:
    print(f"{outcome.outcome_id}: {outcome.result}")
    # outc_01a...: satisfied

Mengambil deliverable

Agen menulis file output ke /mnt/session/outputs/ di dalam kontainer. Setelah sesi idle, ambil melalui Files API yang dibatasi pada sesi:

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")

Was this page helpful?

  • Buat rubrik
  • Buat sesi dengan hasil
  • Acara hasil
  • Tentukan acara pengguna hasil
  • Awal evaluasi hasil
  • Evaluasi hasil sedang berlangsung
  • Akhir evaluasi hasil
  • Memeriksa status hasil
  • Mengambil deliverable