Chat Recorder
这个技能用于将当前对话上下文中尚未记录的部分,增量追加到日志文件中。
核心机制:断点续传
为了避免重复记录或遗漏,本技能采用 “第 N 轮” 序列号机制:
- 检查:先读取日志文件,找到已记录的最大轮次
N。 - 同步:从当前对话上下文的第
N+1轮开始,将所有后续对话依次追加写入。 - 完整性:如果文件不存在,则从第 1 轮开始全量写入。
操作步骤
-
准备工作
- 用户 (Author): 优先获取 Git 用户名,若无则回退到系统用户名。
- 执行
git config user.name,若有返回值则作为<username>。 - 若无,则执行
whoami作为<username>。
- 执行
- 日期 (Date): 获取当前日期 (格式
YYYY-MM-DD)。 - 目标路径:
./workspaces/devs/<username>/。 - 文件名:
<YYYY-MM-DD>-chat-log.md。
- 用户 (Author): 优先获取 Git 用户名,若无则回退到系统用户名。
-
文件状态检查
- 尝试读取文件:检查目标文件是否存在,并读取其最后 50 行内容。
- 提取进度 (Last Index):
- 在文件内容中查找格式为
### [第 N 轮]的标记。 - 提取最大的
N值作为“已记录轮次”。 - 如果文件不存在或未找到标记,则
N = 0。
- 在文件内容中查找格式为
-
执行写入 (初始化)
- 如果 N=0 (新文件):
-
创建文件并写入头部:
# Chat Log **Author**: <username> **Date**: <YYYY-MM-DD> ---
-
- 如果 N=0 (新文件):
-
执行写入 (增量追加)
-
遍历上下文:回顾当前的对话历史(User Input + AI Response)。
-
筛选:忽略前
N轮对话,只处理第N+1轮及之后的对话。 -
追加:对每一轮新对话,生成一个对话块并追加到文件末尾。
-
格式规范:
### [第 <当前轮次> 轮] **User**: <该轮次的用户输入内容> **AI**: <该轮次的 AI 回复摘要> ---
-
注意事项
- 准确计数:务必准确计算当前对话在整个上下文中的轮次(Sequence Number)。
- 格式严格:严格遵守
### [第 N 轮]的格式,以便下次读取时能正确解析。 - 隐私与安全:不要记录敏感信息(如密码、API Key)。
Scan to join WeChat group