会话与历史
会话的使用方式(创建、列出、恢复、导出、生命周期状态等)见会话管理。本页只覆盖 config.json 中 session 段的配置字段。
会话持久化使用 <db-path> 数据库及配套的 <db-path>.payloads/ 内容目录。数据库保存会话记录及内容引用,部分内容保存在外置载荷目录中,不能将单个数据库文件视为全部会话数据。
配置
配置文件位于 <config-dir>/config.json(全局)或 .mogick/config.json(项目级)。大多数场景保留默认值即可。
json
{
"session": {
"heartbeat_interval_ms": 15000,
"command_timeout_ms": 30000,
"max_payload_bytes": 1048576,
"safe_partition_max_concurrency": 10,
"checkpoint_auto_before_run": true
}
}| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
heartbeat_interval_ms | int | 15000 | 宿主会话心跳间隔(毫秒) |
command_timeout_ms | int | 30000 | 宿主命令执行超时(毫秒) |
max_payload_bytes | int | 1048576 | CRP 最大载荷(1 MiB) |
safe_partition_max_concurrency | int | 10 | 每一步只读工具并发上限 |
mcp_local_max_concurrency | int | 3 | 每个本地 MCP server 的并发上限 |
mcp_remote_max_concurrency | int | 20 | 每个远程 MCP server 的并发上限 |
disable_stream_tools_during_step | bool | false | 是否禁止在 LLM 流式阶段启动工具 |
checkpoint_auto_before_run | bool | true | 每轮用户请求前尝试创建检查点 |
max_concurrent_sessions | int | 10 | 单个 Mogick 进程内加载的会话上限 |
max_concurrent_sessions 只约束单个进程,不协调共享同一数据库的多个 Mogick 实例。
存储位置
会话数据库位于 <db-path>,配套载荷目录为 <db-path>.payloads/。数据库路径由当前配置、profile 和发布通道确定。可通过以下方式配置:
| 方式 | 说明 |
|---|---|
MOGICK_DATA_DIR 环境变量 | 设置数据基础目录;实际数据库位置还取决于 profile 和通道,见数据目录 |
memory.db_path 配置字段 | 在 config.json 中显式指定数据库绝对路径,优先级高于 MOGICK_DATA_DIR |
典型用法是将配置文件保留在用户主目录、会话数据库指向外部大容量存储:
bash
export MOGICK_CONFIG_DIR=/home/user/.mogick
export MOGICK_DATA_DIR=/mnt/mogick-data
mogicklast-session.txt(--continue 恢复依赖)和 TUI prompt 历史也会跟随数据库所在目录。完整目录结构见数据目录与环境变量。
存储内容
| 数据类型 | 内容 |
|---|---|
| 元数据 | ID、标题、摘要、时间戳、状态 |
| 对话历史 | 用户输入、模型输出(含流式合并)、思考过程(折叠存储) |
| 工具调用 | 名称、参数、结果、耗时、投影摘要 |
| 权限决策 | 工具审批的完整记录 |
工具结果的持久化内容与发送给模型的内容应区分:持久化可能涉及数据库及配套载荷目录;发送给模型的内容受工具和上下文处理策略限制,可能被截断。备份时不能只复制数据库文件,详见备份范围。
相关文档
路径占位符 <config-dir>、<db-path> 指当前 profile/通道实际生效的路径,见数据目录。