主题
会话管理
Gemini CLI 包含强大的会话管理功能,可以自动保存你的对话历史。这允许你中断工作并从上次离开的地方继续,查看过去的交互,并有效地管理你的对话历史。
自动保存
每次你与 Gemini CLI 交互时,你的会话都会自动保存。这在后台进行,无需任何手动干预。
- 保存内容: 完整的对话历史,包括:
- 你的提示和模型的响应。
- 所有工具执行(输入和输出)。
- Token 使用统计(输入/输出/缓存等)。
- 助手的思考/推理摘要(如果可用)。
- 位置: 会话存储在
~/.gemini/tmp/<project_hash>/chats/。 - 范围: 会话是项目特定的。切换到不同项目的目录将切换到该项目的会话历史。
恢复会话
你可以恢复之前的会话,以继续对话并恢复所有先前的上下文。
从命令行
启动 CLI 时,可以使用 --resume(或 -r)标志:
恢复最新:
bashgemini --resume这会立即加载最近的会话。
按索引恢复: 首先列出可用会话(参见列出会话),然后使用索引号:
bashgemini --resume 1按 ID 恢复: 你也可以提供完整的会话 UUID:
bashgemini --resume a1b2c3d4-e5f6-7890-abcd-ef1234567890
从交互界面
当 CLI 运行时,你可以使用 /resume 斜杠命令打开会话浏览器:
text
/resume这会打开一个交互界面,你可以:
- 浏览: 滚动浏览过去会话的列表。
- 预览: 查看会话日期、消息数量和第一个用户提示等详情。
- 搜索: 按
/进入搜索模式,然后输入以按 ID 或内容过滤会话。 - 选择: 按
Enter恢复选定的会话。
管理会话
列出会话
要从命令行查看当前项目所有可用会话的列表:
bash
gemini --list-sessions输出示例:
text
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:
bash
gemini --delete-session 2从会话浏览器:
- 使用
/resume打开浏览器。 - 导航到要删除的会话。
- 按
x。
配置
你可以在 settings.json 文件中配置 Gemini CLI 如何管理你的会话历史。
会话保留
为防止历史记录无限增长,你可以启用自动清理策略。
json
{
"general": {
"sessionRetention": {
"enabled": true,
"maxAge": "30d", // 保留会话 30 天
"maxCount": 50 // 保留最近 50 个会话
}
}
}enabled:(布尔值)会话清理的主开关。默认为false。maxAge:(字符串)保留会话的时长(例如 "24h"、"7d"、"4w")。超过此时间的会话将被删除。maxCount:(数字)要保留的最大会话数。超过此数量的最旧会话将被删除。minRetention:(字符串)最小保留期(安全限制)。默认为"1d";比此期限更新的会话永远不会被自动清理删除。
会话限制
你还可以限制单个会话的长度,以防止上下文窗口变得过大和昂贵。
json
{
"model": {
"maxSessionTurns": 100
}
}maxSessionTurns:(数字)单个会话中允许的最大轮次(用户 + 模型交换)。设置为-1表示无限制(默认)。达到限制时的行为:
- 交互模式: CLI 显示信息消息并停止向模型发送请求。你必须手动开始新会话。
- 非交互模式: CLI 以错误退出。