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

# State and approval

> Pause Python agents for human decisions and continue application-owned state.

Use `human_review` for a general checkpoint. Approval-gated and manual tools place exact call IDs in `paused.run.pause.pending_tool_calls`.

```python theme={null}
from phaseo_agent import AgentToolDecision, AgentToolOutput

pending = paused.run.pause.pending_tool_calls

continued = agent.continue_run(
    run=paused,
    client=client,
    approvals=[AgentToolDecision(pending[0].call.id)],
    tool_outputs=[AgentToolOutput(pending[1].call.id, {"status": "complete"})],
)
```

Provide `rejections` for denied calls or `human_input` for a general review pause. Decisions are matched by call ID, not tool name.

Implement `AgentStateAccessor.load(run_id)` and `save(result)` when runs must survive requests or process restarts. Continuation can then load by `run_id`.

## Related

* [Tools](./agent-sdk-tools)
* [Run controls](./agent-sdk-run-controls)
