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

# Python

> 在宿主 Python 进程中运行 ReMe，并直接管理其生命周期。

当宿主应用需要进程内调用，并希望管理 ReMe 的启动、任务和关闭时，使用 Python 接入。如果更看重进程隔离或跨语言边界，请改用共享的 [ReMe 服务](/reme/latest/zh/integration/services)。

## 安装 ReMe

ReMe 需要 Python 3.11 或更高版本：

```bash theme={null}
pip install "reme-ai[core]"
```

## 在进程内运行 ReMe

先加载默认配置，再创建一个 `ReMe` 应用，并用 `start()` 和 `close()` 包住所有 job 调用：

```python theme={null}
import asyncio

from reme import ReMe
from reme.config import resolve_app_config


async def main():
    config = resolve_app_config(workspace_dir=".reme")
    app = ReMe(**config)

    await app.start()
    try:
        result = await app.run_job(
            "search",
            query="项目决策",
            limit=5,
        )
        if not result.success:
            raise RuntimeError(result.answer)
        print(result.answer)
    finally:
        await app.close()


asyncio.run(main())
```

`resolve_app_config()` 会加载 ReMe 的默认 job 与 component，再深度合并传入的覆盖项。如果只用 `workspace_dir` 构造 `ReMe`，应用中不会包含默认 job 定义。

## 调用 Job

`run_job(name, **kwargs)` 是异步方法，返回包含 `success`、`answer` 和 `metadata` 的 response。Job 名称和参数来自解析后的配置。在上面已经启动的应用中，可以这样记录一段对话：

```python theme={null}
result = await app.run_job(
    "auto_memory",
    session_id="conversation-42",
    messages=[
        {"role": "user", "content": "记住：每周五发布版本。"},
        {"role": "assistant", "content": "明白了。"},
    ],
)
```

`auto_memory` 等模型任务需要先完成[快速开始中的模型配置](/reme/latest/zh/quickstart#5-按需启用记忆演化)。

## 生命周期规则

* 为相关调用复用同一个应用，不要为每次请求重复构造。
* 在 `run_job()` 前调用 `start()`，确保索引、watcher 和定时任务已经初始化。
* 宿主退出时始终调用 `close()`；使用 `try` / `finally` 最稳妥。
* 同一段会话的多次更新应使用稳定的 `session_id`。
* 进程内运行时，不要再为同一个应用启动独立的 `reme start` 进程。

ReMe 负责返回记忆，宿主应用仍需决定何时召回、什么内容值得长期记录，以及如何使用返回结果。

## AgentScope

使用 AgentScope 构建 Agent 时，应使用第一方 `ReMeMiddleware`，而不是直接构造 `ReMe`。该中间件在 AgentScope 进程内嵌入 ReMe，并可以复用 AgentScope 的 chat 与 embedding model。它通过 `auto_memory` 自动写回对话，同时支持自动检索和 `memory_search` 工具。

使用 `pip install "agentscope[reme]"` 安装可选依赖。AgentScope 不会自动关闭 middleware，因此应用退出时仍需调用 `await memory.close()`。完整示例、控制模式和会话行为见 [AgentScope 长期记忆指南](/versions/2.0.6dev/zh/building-blocks/long-term-memory#reme)。
