> ## 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.

# Health Result • AI Agent SDK

> HealthResult: Detailed health status of a bot.

# HealthResult

> Defined in the [**protocols**](../modules/protocols) module.

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

Detailed health status of a bot.

Attributes:
ok: Overall health status
platform: Platform name
is\_running: Whether the bot is actively running
uptime\_seconds: Seconds since bot started (None if not running)
probe: Latest probe result (None if not probed)
sessions: Number of active sessions
error: Error message (if unhealthy)
details: Additional platform-specific health details
reason: Health status reason (optional)
last\_activity: Last INBOUND transport activity timestamp (optional)
last\_run\_progress: Last IN-RUN progress timestamp (optional) — refreshed
on real run progress (tool calls, streamed draft edits, token output,
or a periodic heartbeat) so a long, actively-progressing run keeps the
channel BUSY instead of tripping STUCK on wall-clock alone.
active\_runs: Number of in-flight agent turns (busy count)

## Properties

<ResponseField name="ok" type="bool">
  No description available.
</ResponseField>

<ResponseField name="platform" type="str">
  No description available.
</ResponseField>

<ResponseField name="is_running" type="bool">
  No description available.
</ResponseField>

<ResponseField name="uptime_seconds" type="Optional[float]">
  No description available.
</ResponseField>

<ResponseField name="probe" type="Optional[ProbeResult]">
  No description available.
</ResponseField>

<ResponseField name="sessions" type="int">
  No description available.
</ResponseField>

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

<ResponseField name="details" type="Dict[str, Any]">
  No description available.
</ResponseField>

<ResponseField name="reason" type="Optional[HealthReason]">
  No description available.
</ResponseField>

<ResponseField name="last_activity" type="Optional[float]">
  No description available.
</ResponseField>

<ResponseField name="last_run_progress" type="Optional[float]">
  No description available.
</ResponseField>

<ResponseField name="active_runs" type="int">
  No description available.
</ResponseField>

<Accordion title="Internal & Generic Methods">
  * **to\_dict**: Convert to dictionary.
</Accordion>

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/bots/protocols.py#L783">
  `praisonaiagents/bots/protocols.py` at line 783
</Card>
