# perform_upgrade

> **Function** in `deepagents_code`

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

Attempt to upgrade `deepagents-code` using the detected install method.

Only tries the detected method — does not fall back to other package
managers to avoid cross-environment contamination.

## Signature

```python
perform_upgrade(
    *,
    progress: UpgradeProgressCallback | None = None,
    log_path: Path | None = None,
    include_prereleases: bool | None = None,
) -> tuple[bool, str]
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `progress` | `UpgradeProgressCallback \| None` | No | Optional callback invoked for each output line. (default: `None`) |
| `log_path` | `Path \| None` | No | Optional path to persist command output. (default: `None`) |
| `include_prereleases` | `bool \| None` | No | Whether to include alpha/beta/rc releases. When `None`, follows the installed version's channel. Pre-release upgrades require the uv install method; returns failure otherwise. (default: `None`) |

## Returns

`tuple[bool, str]`

`(success, output)` — *output* is the combined stdout/stderr.

---

[View source on GitHub](https://github.com/langchain-ai/deepagents/blob/0412009c5441bef8d75a427e1da8909e33ab5b56/libs/code/deepagents_code/update_check.py#L1019)