# CostTrackingMiddleware

> **Class** in `deepagents_code`

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

Own the thread's cumulative `_session_cost_usd` checkpoint value.

The main agent owns the thread total. Nested instances checkpoint local
deltas before an interrupt can pause their graph, then transfer the completed
subagent total through state for its owning parent graph to checkpoint.

## Signature

```python
CostTrackingMiddleware(
    self,
    *,
    nested: bool = False,
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `nested` | `bool` | No | When `True`, this instance belongs to a subagent. It checkpoints local spend and transfers the completed delta to the owning parent graph through state. (default: `False`) |

## Extends

- `AgentMiddleware[CostState, ContextT]`

## Constructors

```python
__init__(
    self,
    *,
    nested: bool = False,
) -> None
```

| Name | Type |
|------|------|
| `nested` | `bool` |


## Properties

- `trace_policy`
- `state_schema`

## Methods

- [`before_agent()`](https://reference.langchain.com/python/deepagents-code/cost_tracking/CostTrackingMiddleware/before_agent)
- [`abefore_agent()`](https://reference.langchain.com/python/deepagents-code/cost_tracking/CostTrackingMiddleware/abefore_agent)
- [`after_model()`](https://reference.langchain.com/python/deepagents-code/cost_tracking/CostTrackingMiddleware/after_model)
- [`aafter_model()`](https://reference.langchain.com/python/deepagents-code/cost_tracking/CostTrackingMiddleware/aafter_model)
- [`aafter_agent()`](https://reference.langchain.com/python/deepagents-code/cost_tracking/CostTrackingMiddleware/aafter_agent)
- [`after_agent()`](https://reference.langchain.com/python/deepagents-code/cost_tracking/CostTrackingMiddleware/after_agent)

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/caaa7e7c12d214afa5cf0a1afed8eb6232aa6f7b/libs/code/deepagents_code/cost_tracking.py#L2869)