Skip to content

会话与记忆 ​

每段对话都是持久的。REPL 每个回合都把完整对话快照到 ~/.hipmmcode/sessions/<id>.json,连同活跃模型、智能体人格与军团 —— 续接即恢复整个工作上下文。

续接 ​

bash
hipmmcode resume                 # 列出最近会话(当前项目)
hipmmcode resume sess_abc123     # 按 id(或任意唯一后缀)恢复
hipmmcode resume daimao          # 按 /rename 起的名字恢复
hipmmcode -c                     # 继续最近一次会话
hipmmcode resume --all           # 跨所有项目列出

REPL 里:

/sessions                  # 列出
/resume sess_abc123        # 把当前聊天热切换到某个已存会话
/resume daimao fork        # 以「新分叉会话」方式续接
/rename refactor-sprint    # 给会话起个好记的名字(也可作为 @ 对端别名)
/peer list                 # 列出本机正在跑的会话
/peer accept               # 接受暂挂的跨会话来信
/branch                    # 就地分叉,在副本里继续
/fork <prompt>             # 在对话的后台副本上运行一个 prompt

v0.11.0+:/resume 现在精确还原上下文用量条而非显示 0% 直到下一回合。上一回合的真实 prompt-token 数被持久化并在 --resume(启动)和会话内 /resume 时恢复,底栏显示的百分比与关闭前一致。

裸 /resume 打开会话选择器 —— 每行显示 id、名字(来自 /rename)、时间与回合数:

hipmmcode
› /resume

Sessions  本项目 · 最新在前
❯ refactor-sprint  sess_9f2c… · 12 回合 · 5 分钟前 · deepseek-anthropic/deepseek-v4-flash
  daimao           sess_a3b1… · 41 回合 · 2 小时前 · anthropic/claude-opus-4-8
  (未命名)         sess_77e0… · 3 回合 · 昨天

Enter 恢复 · f 分叉 · Esc 取消

本机跨会话 @(v1.0.1) ​

打开两个(或更多)正在跑的 HiPMMCode 会话后,可以用 @名字 给另一个会话发消息。这是本机 Unix socket,不是跨机器 bridge:。

/rename alpha              # 当前会话叫 alpha,立刻可被 @alpha 点到
@beta 帮我看一下这段 diff  # 发给本机另一个已命名会话
/peer list                 # 看本机在线会话
/peer accept               # 或 /peer refuse [id]

命名规则:字母开头,后面是字母、数字、.、_、-,最长 32 个字符。自动生成的第一句标题不会进入 @ 列表,避免把所有历史会话都倒出来。桌面端在侧边栏重命名会话,效果与终端 /rename 相同,不必再执行额外命令。

来信策略:

配置效果
crossSessionInbound=accept直接收下并作为新的一轮用户消息
crossSessionInbound=hold暂挂,用 /peer accept 或 /peer refuse 处理
crossSessionInbound=refuse拒绝

dialogExpiry 默认 5 分钟(60s / 5m / 10m / never),也可用 HIPMMCODE_USER_DIALOG_TIMEOUT_MS 覆盖。对方收到后不会把上一条回复折叠进“执行过程”。

生成过程中再发一条:已生成内容保留。当前这条优先执行(类似终端的 Send now);后续消息排队,等当前轮结束后再跑。切换会话再回来,正在生成的内容也不会丢。

v1.3.0 起,恢复、回退、导入、导出都在全屏终端里用面板完成,不用退出全屏。终端重启后会回到同一个会话。

分叉与回退 ​

  • --fork-session(CLI)/ fork(REPL)—— 复制历史开新会话 id,原会话不动。
  • /rewind [n](/checkpoint、/undo)—— 回到之前的某个点;可选恢复对话、代码或两者。
  • --resume-session-at <n> —— 恢复到某会话第 N 个用户回合之后的状态。

在手机上接着做 ​

/rcl 或 /rc 打开远程控制后,手机上的 HM Bot 可以接着这个会话,开远程之前的对话也会同步过去。手机还能接着电脑上保存的对话继续。见远程控制。

上下文管理 ​

长会话会顶到模型上下文上限。hipmmcode 多层应对:

  • 上下文 HUD —— 状态栏实时显示压力:[████░░░░░░] 42% 85k/200k,按各模型真实窗口感知。
  • /compact [focus] —— 把历史摘要为结构化简报,替换为单条压缩回合。约 150K token 换 ~5K。带焦点(/compact 认证重构)可偏向某条线索。
  • 自动压缩(autoCompactEnabled,默认开)—— 接近上限自动执行;autoCompactWindow 可提前触发。
  • 微压缩(apiMicrocompactEnabled,默认开)—— 先静默清退过期工具结果,比整体压缩省得多。
  • /context —— 按类别的 token 拆解;/tokens 看总量;/cost 看估算花费。

持久记忆 ​

hipmmcode 按项目维护文件式记忆,位于 ~/.hipmmcode/projects/<key>/memory/:

  • MEMORY.md —— 索引,每次会话载入上下文。
  • 每条事实一个 markdown 文件,带 frontmatter(name、description、type: user|feedback|project|reference)。

记忆的写入时机:

触发配置
/remember —— 立刻从最近对话提炼—
/exit / Ctrl+D 时autoMemoryOnExit(默认开)
无头 exec 结束时autoMemoryOnExec(默认关)或 --auto-memory
每个回合后autoMemoryOnEveryTurn(默认关;耗 token)

读取:会话启动时注入相关记忆。memoryRelevanceSelector=true 用廉价模型挑选 ≤5 个最相关文件(替代 token 重叠启发)。用 /memory list 与 /memory <name> 管理(打开编辑器)。总开关:autoMemoryEnabled=false 或 HIPMMCODE_DISABLE_AUTO_MEMORY=1。

模型也可在对话中经 SaveMemory 工具自己存记忆。

兼容的记忆布局

~/.claude/projects/<key>/memory/ 存在时也会被读取,已有的记忆树可直接沿用。

项目说明 ​

会话启动时从工作区加载项目说明:HIPMMCODE.md、AGENTS.md、CLAUDE.md(及 .claude/CLAUDE.md、CLAUDE.local.md),以及 .hipmmcode/rules/ / .claude/rules/ 下的规则片段。/init 扫描项目生成或改进说明文件。排除模式用 instructionExcludes。

转写与导出 ​

  • Ctrl+O / /transcript —— 全屏转写视图。
  • /export [file] —— 对话导出 Markdown。
  • /copy [n|all] —— 复制最近(或第 N 条、或全部)助手消息。
  • /history —— 打印原始消息日志。
  • /recap —— 一行会话摘要;离开 ≥5 分钟回来自动出"欢迎回来"回顾(awayRecap)。

费用跟踪 ​

bash
hipmmcode cost           # 聚合已存会话的用量(本项目)
hipmmcode cost --all     # 跨所有项目
hipmmcode cost --json    # 机器可读

会话内 /cost 给出实时 token + $ 估算。