4.2 pi-journal:自动日志报告
为什么需要日志
你开了一天 pi,做了很多事:
- 上午修了两个 bug,顺带重构了一个模块
- 下午配置了 CI 流水线,写了一堆测试
- 晚上研究了一个新方案,更新了记忆文件
到了晚上你想回顾:“今天到底干了什么?“你翻 git log,全是碎片化的 commit;翻记忆文件,只记了关键结论;翻会话记录,十几个会话不知道从哪看起。
💡 你需要一个“自动日报“——把散落在 git、记忆、会话中的活动汇总成一份可读的报告。
pi-journal 做什么
pi-journal 采集三种数据源,自动生成 Markdown 格式的日报/周报:
| 数据源 | 采集内容 |
|---|---|
| Git 活动 | 扫描 ~/.pi/agent/git/ 下所有仓库,统计提交数、文件变更、增加/删除行数 |
| 记忆变更 | 扫描全局和项目记忆目录,找出时间范围内的文件变更 |
| 会话活动 | 扫描 pi 会话记录,统计会话数、工具调用、编辑操作、活跃时长 |
使用方式
命令:/journal
# 今天的日报(默认)
/journal
# 指定时间范围
/journal yesterday
/journal this_week
/journal 3d # 最近 3 天
/journal 2025-05-27 # 指定日期
工具:journal
AI 也可以主动调用 journal 工具来生成报告。当你说“写个日记“、“今天做了什么”、“写周报“时,AI 会自动触发。
生成的报告格式
# 📓 日报 — 2025-05-27
## Git 活动
- **pi-shepherd** (2 commits, +45/-12)
- 新增 tool_result 规则支持
- 修复优先级排序 bug
- **pi-context-manager** (1 commit, +30/-5)
- 添加 aging 自动淘汰功能
## 记忆变更
- 新增: debug_anti_pattern.md
- 更新: coding_standards.md
## 会话活动
- 019e6494 (45m) — Shepherd 规则引擎重构
- 工具调用: 23, 编辑: 8
- 019e6203 (30m) — Context aging 功能实现
- 工具调用: 15, 编辑: 5
## 摘要
- 总提交: 3
- 总会话: 12
- 总编辑: 43
最佳实践
✅ 推荐用法
- 每日收工前:
/journal生成日报,回顾今天做了什么 - 周五总结:
/journal this_week生成周报 - 让 AI 写:直接说“写个今天的日记“,AI 会调用工具生成
⚠️ 注意事项
- 报告中的“AI 总结“部分需要 AI 在生成后补充
- Git 活动只扫描
~/.pi/agent/git/下的仓库,不包含系统其他位置的 git 仓库 - 会话活动依赖 pi 的会话记录存储
工作原理
用户输入时间范围
↓
parseTimeRange() → 解析为 since/until 时间戳
↓
┌─────────────┬──────────────┬──────────────────┐
│ Git 活动 │ 记忆变更 │ 会话活动 │
│ 自动发现仓库 │ 扫描 memory/ │ 从 session-analyzer│
│ git log 统计 │ 文件时间戳 │ 获取会话列表 │
└──────┬──────┴──────┬───────┴────────┬─────────┘
↓ ↓ ↓
renderReport() → 汇总渲染为 Markdown
↓
输出报告
下一步
pi-journal 解决了“回顾过去“的需求。但有时候你需要的不只是回顾——你需要找到某个具体的会话,看 AI 当时是怎么想的。下一节我们来看 pi-session-analyzer 的详细用法。