session-log

star 0

Write session work logs to memory/YYYY-MM-DD.md. Use at the end of every session to record completed work, learnings, and outputs. Automatically appends to existing daily log or creates new file. Follows the session log format: `### [HH:MM] agent:name - topic`.

PETERS820-art By PETERS820-art schedule Updated 3/5/2026

name: session-log description: Write session work logs to memory/YYYY-MM-DD.md. Use at the end of every session to record completed work, learnings, and outputs. Automatically appends to existing daily log or creates new file. Follows the session log format: ### [HH:MM] agent:name - topic.

Session Log Skill

在 session 结束时自动记录工作内容到 memory/YYYY-MM-DD.md

触发条件

自动触发:

  • Session 即将结束时(用户说"结束 session"、"今天先到这"等)
  • 完成一个重要任务后

手动触发:

  • "记录一下今天的工作"
  • "写入 session 日志"
  • "保存这个 session 的内容"

工作流程

1. 获取当前日期 → YYYY-MM-DD
2. 获取当前时间 → HH:MM
3. 获取 agent 名称 → agent:main / agent:nico 等
4. 检查文件是否存在 → memory/YYYY-MM-DD.md
5. 不存在 → 创建新文件(使用模板)
6. 存在 → 读取文件,追加新 session(在 *最后更新:* 之前)
7. Git 提交变更

输出格式

### [HH:MM] agent:名称 - 工作主题

**完成事项:**
- 事项 1
- 事项 2

**学到东西:**
- 知识点 1

**踩坑记录:**
| 问题 | 原因 | 解决方案 |
|------|------|---------|
| xxx | xxx | xxx |

**产出物:**
- 文件/技能路径

**待办同步:**
- [ ] 需要同步给其他 agent 的事项

使用方法

方式 1:自然语言调用

用户说:

记录一下今天的工作

AI 回复:

好的,让我记录这个 session 的工作内容...

[调用 session_log 工具]

✅ Session 日志已写入 memory/2026-03-01.md

方式 2:命令行调用

python scripts/session_log.py "agent:main" "工作主题" "工作内容(Markdown)"

方式 3:Python API

from scripts.session_log import append_session_log

append_session_log(
    agent_name="agent:main",
    topic="YouTube 学习技能",
    content="创建了 youtube-learning 技能包..."
)

标准模板

新建文件模板

# 📅 YYYY-MM-DD - 每日 Session 日志

> **说明:** 本文件记录当天所有 session 的工作内容。每个 session 以 `---` 分隔。

---

## 📝 Session 日志

### [HH:MM] agent:名称 - 工作主题

**完成事项:**
- 事项 1

**产出物:**
- 文件路径

---

## 📊 今日统计

- **Session 数量:** 1
- **Git 提交:** 1

---

*最后更新:YYYY-MM-DD HH:MM GMT+8*

关键规则

  1. 追加模式 - ❌ 禁止覆写!✅ 在文件末尾追加

    • ⚠️ 多 Agent 协作必读: 写入前必须先 read 检查文件是否已有其他 agent 的内容
    • 正确做法:readedit(追加)或 write(仅当文件不存在)
    • 错误案例:agent:main 直接 write 覆盖了 agent:neon 的内容
  2. 时间戳 - 使用 24 小时制 HH:MM(GMT+8)

  3. Agent 标识 - 必须写 agent:名称

  4. 分隔符 - 每个 session 用 --- 分隔

  5. Git 提交 - 写完立即 commit

  6. Memory Boundary Contract - 📋 必须遵守的写入边界

    • 启动时必读: MEMORY_BOUNDARY.md(workspace 根目录)
    • 写入位置矩阵:
      文件 用途 示例
      memory/YYYY-MM-DD.md session facts, progress notes, blockers 今天的工作日志
      MEMORY.md durable preferences/decisions 仅 main session 写长期记忆
      .memory/.topics/*.md distilled cross-day knowledge 归档后的主题知识
      TOOLS.md environment/runtime parameters 端口、路径、命令别名
      .projects/<id>/* project state, execution logs 项目状态和归档
    • 禁止模式:
      • ❌ 禁止把项目复盘写入 TOOLS.md
      • ❌ 禁止在 group/shared context 写 private long-term memory
      • ❌ 禁止在多个层级重复写入相同完整内容
    • Session 结束最低要求:
      1. 更新 memory/YYYY-MM-DD.md.projects/<id>/logs/YYYY-MM-DD.md
      2. 确保 active projects 有 nextAction
      3. 如果 durable preference/decision 变更,更新 MEMORY.md(仅 main session)
  7. DashScope Provider 认证 - ⚠️ 常见踩坑点

    • 问题: Turix / 其他技能中 DashScope provider 认证失败
    • 原因: endpoint 配置错误(国内 key 用国际 endpoint,或反之)
    • 解决方案: 根据 API Key 来源选择 endpoint
      • 国内 Key → https://dashscope.aliyuncs.com
      • 国际 Key → https://dashscope-intl.aliyuncs.com
    • 验证方法: 先用 dashscope CLI 测试 key 是否有效
    • 配置示例:
      # 国内 Key
      provider: dashscope
      endpoint: https://dashscope.aliyuncs.com
      apiKey: sk-xxxxx(国内申请)
      
      # 国际 Key
      provider: dashscope
      endpoint: https://dashscope-intl.aliyuncs.com
      apiKey: sk-xxxxx(国际申请)
      
  8. 多 Agent 文件写入协议 - 📝 协作文档必读

    • 写入 memory/YYYY-MM-DD.md 前必须:
      1. read 检查文件是否存在
      2. 如果文件不存在(报错 ENOENT 或 404)→ 用 write 创建新文件(带模板头)
      3. 如果文件存在 → 用 edit 追加(在文件末尾 *最后更新:* 之前)
      4. ❌ 禁止直接 write 覆盖(会丢失其他 agent 的内容)
    • 适用文件:memory/*.md.memory/*.md 等共享日志

判断流程图

开始
  ↓
read memory/YYYY-MM-DD.md
  ↓
文件存在?
  ├─ 是 → read 内容 → edit 追加 → git commit
  └─ 否 → write 创建(带模板)→ git commit

代码示例(Python)

from scripts.session_log import append_session_log

# 自动处理:文件不存在则创建,存在则追加
append_session_log(
    agent_name="agent:main",
    topic="Discord 客户端更新问题",
    content="..."
)

代码示例(PowerShell)

$filePath = "memory/$(Get-Date -Format 'yyyy-MM-dd').md"

if (Test-Path $filePath) {
    # 文件存在 → 追加
    $content = Get-Content $filePath -Raw
    $content += "`n### [HH:MM] agent:name - topic`n..."
    Set-Content $filePath $content -Encoding UTF8
} else {
    # 文件不存在 → 创建(带模板)
    $template = "# 📅 $(Get-Date -Format 'yyyy-MM-dd') - 每日 Session 日志`n..."
    Set-Content $filePath $template -Encoding UTF8
}

示例

示例 1:技能创建

### [17:56] agent:main - YouTube 视频学习工作流

**任务背景:**
用户想让 OpenClaw 根据 YouTube 链接自主学习视频内容。

**探索过程:**
1. Bilibili 尝试(失败)- 无字幕 API
2. YouTube 尝试(成功)- youtube-transcript-api

**产出物:**
- `skills/youtube-learning/SKILL.md`
- `scripts/learn_from_youtube.py`

**技术细节:**
- 优先中文字幕,回退英文
- Windows PowerShell 编码问题处理

**后续优化:**
- [ ] 支持 B站
- [ ] 长视频分段总结

示例 2:配置调试

### [16:30] agent:main - 浏览器自动化配置

**完成事项:**
- 安装 Chrome + OpenClaw Browser Relay 扩展
- 配置 Gateway Port: 18789, Relay Port: 18792
- 成功接管用户 Chrome 浏览器

**踩坑记录:**
| 问题 | 原因 | 解决方案 |
|------|------|---------|
| 扩展红色感叹号 | Relay 未启动 | `openclaw browser start` |
| tabs 为空 | 没激活标签页 | 点击扩展图标激活 |

**学到东西:**
- Relay Port = Gateway Port + 3
- Chrome 扩展模式 vs 独立浏览器模式对比

错误处理

错误 原因 解决方案
文件被锁定 其他进程占用 等待 1 秒后重试
Git 提交失败 无变更 跳过提交
编码错误 Windows GBK 统一用 UTF-8
覆盖其他 agent 内容 未先 read 直接 write ✅ 写入前必须 read 检查
DashScope 认证失败 endpoint 配错(国内/国际) 根据 Key 来源选 endpoint

相关文件

  • memory/SESSION_LOG_GUIDE.md - 完整规范文档
  • scripts/session_log.py - Python 工具脚本
  • memory/YYYY-MM-DD.md - 每日日志文件
  • skills/memory-archive - 每周归档技能(不同职责)

与 memory-archive 的区别

维度 session-log memory-archive
触发时机 每个 session 结束 每周/定期
职责 实时写入原始记录 归档、蒸馏、清理
输出 memory/YYYY-MM-DD.md .memory/.topics/*.md
频率 高频(每天多次) 低频(每周一次)
内容 详细工作记录 精炼主题知识

自动化建议

在 SOUL.md 或 AGENTS.md 中添加:

## Session 结束前

- [ ] 调用 `session-log` skill 写入工作内容
- [ ] 确认时间戳和 agent 名正确
- [ ] Git 提交并 push

或在 HEARTBEAT.md 中添加:

- 检查是否有 session 结束前未写入日志
- 提醒用户确认 session 内容已记录

本技能所有 agent 必须使用,确保多 session 协作时信息不丢失!

Install via CLI
npx skills add https://github.com/PETERS820-art/session-log-skill --skill session-log
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
PETERS820-art
PETERS820-art Explore all skills →