Loading...
  • Erstellen
  • Admin
  • Modelle & Preise
  • Client-SDKs
  • API-Referenz
Search...
⌘K
Log in
Ergebnisse definieren
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
Erstellen/Arbeit an Agenten delegieren

Ergebnisse definieren

Teilen Sie dem Agenten mit, wie 'fertig' aussieht, und lassen Sie ihn iterieren, bis er es erreicht.

Outcomes ist eine Research Preview-Funktion. Fordern Sie Zugriff an, um sie zu testen.

Das outcome hebt eine Sitzung von Konversation zu Arbeit. Sie definieren, wie das Endergebnis aussehen soll und wie die Qualität gemessen wird. Der Agent arbeitet auf dieses Ziel hin, bewertet sich selbst und iteriert, bis das Ergebnis erreicht ist.

Wenn Sie ein Ergebnis definieren, stellt die Harness automatisch einen Grader bereit, um das Artefakt anhand einer Rubrik zu bewerten. Es nutzt ein separates Kontextfenster, um nicht von den Implementierungsentscheidungen des Hauptagenten beeinflusst zu werden.

Der Grader gibt eine Aufschlüsselung pro Kriterium zurück: entweder eine Bestätigung, dass das Artefakt die Rubrik erfüllt, oder die spezifischen Lücken zwischen der aktuellen Arbeit und den Anforderungen. Dieses Feedback wird an den Agenten für die nächste Iteration zurückgegeben.

Alle Managed Agents API-Anfragen erfordern den Beta-Header managed-agents-2026-04-01. Research Preview-Funktionen erfordern zusätzlich managed-agents-2026-04-01-research-preview. Das SDK setzt diese Beta-Header automatisch.

Erstellen Sie eine Rubrik

Eine Rubrik ist ein Markdown-Dokument, das die Bewertung pro Kriterium beschreibt. Die Rubrik ist erforderlich.

Beispielrubrik:

# DCF-Modell-Rubrik

## Umsatzprognosen
- Verwendet historische Umsatzdaten aus den letzten 5 Geschäftsjahren
- Prognostiziert Umsatz für mindestens 5 Jahre in die Zukunft
- Wachstumsratenannahmen sind explizit angegeben und angemessen

## Kostenstruktur
- COGS und Betriebsausgaben werden separat modelliert
- Margen sind konsistent mit historischen Trends oder Abweichungen sind begründet

## Diskontierungssatz
- WACC wird mit angegebenen Annahmen für Eigenkapitalkosten und Fremdkapitalkosten berechnet
- Beta, risikofreier Satz und Eigenkapitalrisikoprämie sind belegt oder begründet

## Terminalwert
- Verwendet entweder Perpetuity-Growth- oder Exit-Multiple-Methode (angegeben welche)
- Terminales Wachstum übersteigt nicht das langfristige BIP-Wachstum

## Ausgabequalität
- Alle Zahlen befinden sich in einer einzigen .xlsx-Datei mit klar beschrifteten Blättern
- Wichtige Annahmen befinden sich auf einem separaten „Assumptions"-Blatt
- Sensitivitätsanalyse zu WACC und Terminalwachstumsrate ist enthalten

Übergeben Sie die Rubrik als Inline-Text auf user.define_outcome (im nächsten Abschnitt gezeigt), oder laden Sie sie über die Files API für die Wiederverwendung über Sitzungen hinweg hoch:

Erfordert Beta-Header 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}")

Erstellen Sie eine Sitzung mit einem Ergebnis

Nach dem Erstellen einer Sitzung senden Sie ein user.define_outcome-Ereignis. Der Agent beginnt sofort mit der Arbeit; kein zusätzliches Benutzernachricht-Ereignis ist erforderlich.

# 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
        }
    ],
)

Outcome-Ereignisse

Der Fortschritt bei einer ergebnisorientiert ausgerichteten Sitzung wird auf dem Ereignis-Stream angezeigt.

  • agent.*-Ereignisse (Nachrichten, Tool-Nutzung usw.) zeigen Fortschritt in Richtung des Ergebnisses.
  • span.outcome_evaluation_*-Ereignisse werden nur für ergebnisorientierte Sitzungen ausgegeben und zeigen die Anzahl der Iterationsschleifen und den Bewertungsprozess des Graders.
  • Sie können auch user.message-Ereignisse an eine ergebnisorientierte Sitzung senden, um die Arbeit des Agenten während des Fortschritts zu lenken, aber diese sind nicht so notwendig; der Agent weiß, dass er arbeiten soll, bis er seine Iterationen erschöpft hat oder das Ergebnis erreicht hat.
  • Ein user.interrupt-Ereignis pausiert die Arbeit am aktuellen Ergebnis und markiert das span.outcome_evaluation_end.result als interrupted, sodass Sie ein neues Ergebnis starten können.
  • Nach der endgültigen Ergebniswertung kann die Sitzung als Konversationssitzung fortgesetzt oder ein neues Ergebnis gestartet werden. Die Sitzung behält die Verlaufshistorie des vorherigen Ergebnisses.

Benutzerereignis „Outcome definieren"

Nur ein Ergebnis gleichzeitig unterstützt, aber Sie können mehrere Ergebnisse nacheinander verketten. Dazu senden Sie ein neues user.define_outcome-Ereignis nach dem Terminalereignis des vorherigen Ergebnisses.

Dies ist das Ereignis, das Sie senden, um ein Ergebnis einzuleiten. Es wird bei Empfang zurückgesendet, einschließlich eines processed_at-Zeitstempels und einer 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
}

Outcome-Evaluierung gestartet

Wird ausgegeben, sobald der Grader eine Evaluierung über eine Iterationsschleife startet. Das Feld iteration ist ein 0-indizierter Revisionszähler: 0 ist die erste Evaluierung, 1 ist die Neubewertung nach der ersten Überarbeitung usw.

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

Outcome-Evaluierung läuft

Heartbeat, der ausgegeben wird, während der Grader läuft. Das interne Denken des Graders ist undurchsichtig: Sie sehen, dass es funktioniert, nicht was es denkt.

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

Outcome-Evaluierung beendet

Wird ausgegeben, nachdem der Grader eine Iteration bewertet hat. Das Feld result gibt an, was als Nächstes geschieht.

ErgebnisNächster Schritt
satisfiedSitzung wechselt zu idle.
needs_revisionAgent startet einen neuen Iterationszyklus.
max_iterations_reachedKeine weiteren Evaluierungszyklen. Der Agent kann eine letzte Überarbeitung durchführen, bevor die Sitzung zu idle wechselt.
failedSitzung wechselt zu idle. Wird zurückgegeben, wenn die Rubrik grundlegend nicht zur Aufgabe passt, z. B. wenn die Beschreibung und die Rubrik sich widersprechen.
interruptedWird nur ausgegeben, wenn outcome_evaluation_start bereits vor der Unterbrechung ausgelöst wurde.
{
  "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"
}

Überprüfung des Outcome-Status

Sie können entweder auf dem Event-Stream auf span.outcome_evaluation_end lauschen oder GET /v1/sessions/:id abfragen und outcome_evaluations[].result lesen:

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

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

Abrufen von Lieferergebnissen

Der Agent schreibt Ausgabedateien in /mnt/session/outputs/ im Container. Sobald die Sitzung untätig ist, rufen Sie sie über die Files API ab, die auf die Sitzung beschränkt ist:

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?

  • Erstellen Sie eine Rubrik
  • Erstellen Sie eine Sitzung mit einem Ergebnis
  • Outcome-Ereignisse
  • Benutzerereignis „Outcome definieren"
  • Outcome-Evaluierung gestartet
  • Outcome-Evaluierung läuft
  • Outcome-Evaluierung beendet
  • Überprüfung des Outcome-Status
  • Abrufen von Lieferergebnissen