OpenCode 会话管理:长对话不断线,多项目随时切
【免费下载链接】termaiA powerful AI coding agent. Built for the terminal.项目地址: https://gitcode.com/gh_mirrors/te/termai
在 OpenCode 里,会话不只是聊天记录:标题、token 用量、花费都跟着它走。这篇从"上下文快爆、项目来回切找不到讨论"这类真实痛点出发,讲讲 OpenCode 会话管理如何续接长对话、在多项目间随时切,以及会话数据怎么落在本地 SQLite 里。
你大概率踩过这几个坑
跟 AI 聊到一半,token 快把窗口吃满,直接报上下文超长——只能手动把前面聊的重点再喂一遍,或者干脆从头再来。
手上五个项目在跑,昨天那个 bug 讨论到第几步了?翻聊天记录翻到怀疑人生,终端AI助手多对话切换基本全靠肌肉记忆,一回头就断片。
更烦的是花销:一个会话跑了多少 token、折算多少钱,答完就忘,月底对账单全靠猜。
打开就能用的操作
| 操作 | 快捷键/命令 | 说明 |
|---|---|---|
| 新建会话 | ctrl+n | 开一条新讨论,标题自动生成,可后改 |
| 切换会话 | ctrl+s | 弹出会话列表,↑/j、↓/k 移动,Enter 确认,Esc 关闭 |
| 命令面板 | ctrl+k | 查内置命令、执行自定义操作 |
| 切换模型 | ctrl+o | 换 provider 或模型,当前会话不丢 |
| 非交互提问 | opencode -p | 跑一条 prompt 即走,适合脚本调用 |
脚本场景里直接这样用:
opencode -p "帮我看看这个 Go 项目的入口在哪" -f json上下文快爆了怎么办
每次模型回完,OpenCode 就把当前累计 token 和上下文窗口比一比,占到 95% 且配置里开了 autoCompact,就自动把这段对话压成一条总结存进会话,后续从总结之后接着聊。上下文爆了不用手动清场,长对话自己续上。
数据到底存哪了
会话、消息全在一个本地 SQLite 文件 opencode.db 里,默认放在 .opencode 数据目录下,连接和建表逻辑见 SQLite 建库与迁移入口。全局配置走用户配置目录(~/.config/opencode),所以会话数据存在哪一查便知,备份就是拷一个文件的事。
两个容易忽略的细节
每个会话上挂着 Cost 字段,模型每回一次话都按 token 用量往里面累加,盯 AI 花销不用另找报表。
ParentSessionID 让 agent 工具派出去的子任务各自开小会话、挂在主会话下,查起来有层级,清理时也不会误伤主线讨论。
下次对话快满别慌,让它自己续;想切回昨天的讨论,ctrl+s一下就到。
【免费下载链接】termaiA powerful AI coding agent. Built for the terminal.项目地址: https://gitcode.com/gh_mirrors/te/termai
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考