# AutoDecisionPlan

> **Class** in `deepagents_code`

📖 [View in docs](https://reference.langchain.com/python/deepagents-code/auto_mode/AutoDecisionPlan)

Private checkpoint record joining model output to after-model routing.

## Signature

```python
AutoDecisionPlan()
```

## Extends

- `TypedDict`

## Constructors

```python
__init__(
    batch_id: str,
    thread_key: str,
    mode_at_proposal: str,
    effective_approval_mode: NotRequired[str],
    approval_mode_tags: NotRequired[list[str]],
    approval_mode_metadata: NotRequired[dict[str, str]],
    phase: Literal['planned', 'routed'],
    manual_gated_ids: list[str],
    decisions: list[PlannedDecision],
    pending_result_ids: list[str],
    processed_result_ids: list[str],
    counters_applied: bool,
    fallback_reason: str | None,
    review_tool_call_ids: NotRequired[list[str]],
)
```

| Name | Type |
|------|------|
| `batch_id` | `str` |
| `thread_key` | `str` |
| `mode_at_proposal` | `str` |
| `effective_approval_mode` | `NotRequired[str]` |
| `approval_mode_tags` | `NotRequired[list[str]]` |
| `approval_mode_metadata` | `NotRequired[dict[str, str]]` |
| `phase` | `Literal['planned', 'routed']` |
| `manual_gated_ids` | `list[str]` |
| `decisions` | `list[PlannedDecision]` |
| `pending_result_ids` | `list[str]` |
| `processed_result_ids` | `list[str]` |
| `counters_applied` | `bool` |
| `fallback_reason` | `str \| None` |
| `review_tool_call_ids` | `NotRequired[list[str]]` |


## Properties

- `batch_id`
- `thread_key`
- `mode_at_proposal`
- `effective_approval_mode`
- `approval_mode_tags`
- `approval_mode_metadata`
- `phase`
- `manual_gated_ids`
- `decisions`
- `pending_result_ids`
- `processed_result_ids`
- `counters_applied`
- `fallback_reason`
- `review_tool_call_ids`

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/4bfa52000ef65ac623d8ada0cb67f67cbdd663ea/libs/code/deepagents_code/auto_mode.py#L480)