会话管理
Gemini CLI 包含强大的会话管理功能,可以自动保存您的对话历史。这使得您可以在中断工作后,从上次离开的地方继续,回顾过去的交互,并有效地管理您的对话历史。
每次与 Gemini CLI 交互时,您的会话都会自动保存。这一过程在后台自动进行,无需任何手动操作。
- 保存内容: 完整的对话历史,包括:
- 您的提示和模型的响应。
- 所有工具的执行(输入和输出)。
- 令牌使用统计(输入/输出/缓存等)。
- 助手思维/推理摘要(当可用时)。
- 保存位置: 会话存储在
~/.gemini/tmp/<project_hash>/chats/。 - 范围: 会话是项目特定的。切换到不同的项目目录,将切换到该项目的会话历史。
您可以恢复以前的会话,以在恢复所有先前上下文的情况下继续对话。
启动 CLI 时,您可以使用 --resume (或 -r)标志:
-
恢复最新会话:
Terminal window gemini --resume这将立即加载最近的会话。
-
按索引恢复: 首先,列出可用的会话(请参阅列出会话),然后使用索引号:
Terminal window gemini --resume 1 -
按 ID 恢复: 您还可以提供完整的会话 UUID:
Terminal window gemini --resume a1b2c3d4-e5f6-7890-abcd-ef1234567890
从交互式界面
Section titled “从交互式界面”当 CLI 正在运行时,您可以使用 /resume 斜杠命令打开会话浏览器:
/resume这将打开一个交互式界面,您可以在其中:
浏览: 浏览您过往会话的列表。
预览: 查看会话日期、消息计数和第一条用户提示词等详细信息。
搜索: 按下 / 进入搜索模式,然后输入以通过ID或内容过滤会话。
选择: 按下 Enter 恢复选定的会话。
要从命令行查看当前项目的所有可用会话列表:
gemini --list-sessions输出示例:
Available sessions for this project (3):
1. Fix bug in auth (2 days ago) [a1b2c3d4] 2. Refactor database schema (5 hours ago) [e5f67890] 3. Update documentation (Just now) [abcd1234]您可以删除旧的或不需要的会话以释放空间或清理历史记录。
从命令行: 使用 --delete-session 标志以及索引或ID:
gemini --delete-session 2从会话浏览器:
- 使用
/resume打开浏览器。 - 导航到您想要删除的会话。
- 按下
x。
您可以在 settings.json 文件中配置Gemini CLI如何管理您的会话历史。
为防止您的会话历史无限制增长,您可以启用自动清理策略。
{ "general": { "sessionRetention": { "enabled": true, "maxAge": "30d", // Keep sessions for 30 days "maxCount": 50 // Keep the 50 most recent sessions } }}enabled:(布尔值)会话清理的主开关。默认为false。maxAge:(字符串)保持会话的时间长度(例如 “24h”、“7d”、“4w”)。超过此时间的会话将被删除。maxCount:(数字)保留的最大会话数。超过此数量的最旧会话将被删除。minRetention:(字符串)最小保留期限(安全限制)。默认为"1d";此期限内的新会话永远不会被自动清理删除。
您还可以限制单个会话的长度,以防止上下文窗口变得过大和昂贵。
{ "model": { "maxSessionTurns": 100 }}maxSessionTurns: (数字)在单个会话中允许的最大轮次(用户与模型交换)。设置为 -1 表示无限制(默认值)。
达到限制时的行为:
- 交互模式: CLI 显示一条信息消息,并停止向模型发送请求。您必须手动开始一个新会话。
- 非交互模式: CLI 以错误退出。**