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

# 使用本地内存

`local` 后端把会话保存在进程内存中。它不依赖任何外部服务，也不落盘——进程退出，会话即清空。这是 `ShortTermMemory` 的默认后端。

## 何时使用

* 本地开发与调试；
* 单元测试、示例脚本等临时场景；
* 不需要会话跨进程或跨重启保留时。

## 使用示例

```python lines theme={null}
from veadk import Agent, Runner
from veadk.memory.short_term_memory import ShortTermMemory

stm = ShortTermMemory(backend="local")  # 默认即为 local，等价于不传 backend

agent = Agent(name="demo")
runner = Runner(agent=agent, short_term_memory=stm, app_name="memory_demo")
```

由于 `local` 是默认值，以下三种写法完全等价：

```python lines theme={null}
ShortTermMemory()                    # 使用默认后端
ShortTermMemory(backend="local")     # 显式指定
# 甚至不给 Runner 传 short_term_memory，Runner 会自动兜底创建一个 local
```

<Note>
  若 `Runner` 未收到任何 `short_term_memory` 或 `session_service`，它会自动创建一个 `local` 实例兜底，因此本地跑通一个智能体不需要任何额外配置。
</Note>

## 参数

`local` 没有后端专用配置；仅使用 `ShortTermMemory` 的通用参数，且其中大部分对 `local` 不生效。

### ShortTermMemory 构造参数（local 场景）

| 参数 | 类型 | 默认值 | 对 local 是否生效 | 说明 |
| :- | :- | :- | :- | :- |
| `backend` | `str` | `"local"` | 生效 | 设为 `"local"` 或留空即选择本后端。 |
| `db_url` | `str` | `""` | 生效（覆盖） | 一旦设置，将忽略 `backend`，改用数据库后端。若要保持内存模式，请勿设置。 |
| `backend_configs` | `dict` | `{}` | 不生效 | `local` 不读取此项。 |
| `db_kwargs` | `dict` | `{}` | 不生效 | 仅数据库后端使用。 |
| `local_database_path` | `str` | `/tmp/veadk_local_database.db` | 不生效 | 仅 `sqlite` 使用。 |
| `after_load_memory_callback` | `Callable \| None` | `None` | 生效 | 读取会话后触发的回调，入参为加载到的 `Session`。 |

<Warning>
  `local` 后端不落盘，进程退出后所有会话数据都会丢失，切勿在生产环境用它保存需要长期保留的会话。需要持久化请改用 [SQLite](/productions/veadk/archives/1.0.0/zh/components/session/sqlite)、[MySQL](/productions/veadk/archives/1.0.0/zh/components/session/mysql) 或 [PostgreSQL](/productions/veadk/archives/1.0.0/zh/components/session/postgresql)。
</Warning>

## 环境变量

`local` 后端不读取任何环境变量。
