> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Run Outcome • AI Agent SDK

> RunOutcome: Closed, canonical description of how an agent run ended.

# RunOutcome

> Defined in the [**Run Outcome**](../modules/run_outcome) module.

<Badge color="blue">AI Agent</Badge>

Closed, canonical description of how an agent run ended.

Attributes:
reason: One of `completed | hard_timeout | cancelled | aborted | failed`.
output: Partial or final text, if any.
error: Redacted message when `reason == "failed"`.

## Properties

<ResponseField name="reason" type="TerminalReason">
  No description available.
</ResponseField>

<ResponseField name="output" type="Optional[str]">
  No description available.
</ResponseField>

<ResponseField name="error" type="Optional[str]">
  No description available.
</ResponseField>

## Methods

<CardGroup cols={2}>
  <Card title="completed()" icon="function" href="../functions/RunOutcome-completed">
    Class method.
  </Card>

  <Card title="from_exception()" icon="function" href="../functions/RunOutcome-from_exception">
    Normalise a raised exception into a canonical terminal outcome.
  </Card>

  <Card title="succeeded()" icon="function" href="../functions/RunOutcome-succeeded">
    True only when the run completed normally.
  </Card>
</CardGroup>

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/agent/run_outcome.py#L37">
  `praisonaiagents/agent/run_outcome.py` at line 37
</Card>
