Dingtalk Group Saver

v1.0.0

自动在钉钉群中被@时保存群ID和群名,双写至JSON和MEMORY.md实现持久化和跨Session共享。

1· 475·5 current·5 all-time
byjohnson@jiangzhiyu
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
技能名和描述(在被@时保存群 ID 与群名并持久化到 memory)与包含的代码/元数据一致:index.js 读取/写入 ~/.openclaw/workspace 下的 JSON 存储并尝试更新 MEMORY.md。没有请求与目的不符的外部凭据或工具。唯一异常是代码在生成的 MEMORY.md 节中写入一条硬编码的“数据来源”路径(/Users/jiangzhiyu/...),这是开发痕迹但并不改变存储行为。
Instruction Scope
SKILL.md 声称“双写(JSON + MEMORY.md)”,但实现上 index.js 会始终写入 JSON 文件,而对 MEMORY.md 的更新有前提(文件必须存在且包含特定章节/标记),否则会跳过更新。updateMemoryMd 使用章节标题和代码块结束标志来查找替换区域,若 MEMORY.md 格式与预期不符则不会更新。代码没有读取或发送到外部网络,也未访问除 HOME/USERPROFILE 以外的环境变量或其它系统凭据。
Install Mechanism
无安装规范;技能为 instruction + 单个 JavaScript 文件且不从外部 URL 下载或提取任何二进制,因而不会在安装阶段引入第三方代码或远程依赖。
Credentials
未声明需要任何密钥或凭据。运行时仅使用 HOME 或 USERPROFILE 环境变量来定位用户的 ~/.openclaw/workspace 路径,这是与其目的相符的最小权限访问。
Persistence & Privilege
技能会在用户的 OpenClaw workspace 下创建/写入 memory 文件,这与其“跨 Session 共享长期记忆”的目的匹配。flags 未设置 always:true,也不会修改其他技能或系统范围配置。
Assessment
要点与建议: - 功能与说明基本一致:安装后该技能会在你的主目录下的 ~/.openclaw/workspace/memory/ 创建并写入 dingtalk-groups.json(持久化群信息),并尝试更新同目录下的 MEMORY.md(仅当该文件存在并包含预期章节时才会更新)。 - 注意事项:代码在生成的 MEMORY.md 中插入了一条硬编码的“数据来源”路径(/Users/jiangzhiyu/...),这是开发者残留信息,虽非凭据泄露但显得不规范。若你对此敏感,可在启用前打开 index.js 检查或移除该字符串。 - 兼容性:若你的 MEMORY.md 不包含 SKILL.md 预期的章节或标记,MD 同步会被跳过 —— 这会导致实际行为与文档描述(双写)不完全一致。建议先备份当前 MEMORY.md 和 memory 目录,或在安全环境中测试。 - 隐私与安全:技能不含网络传输代码或第三方依赖,不会把群 ID/群名上传到外部服务;风险主要来自本地文件写入(持久化)。确认是否愿意让技能将群信息写入 ~/.openclaw/workspace 下的文件。

Like a lobster shell, security has layers — review code before you run it.

latestvk97fcjvq9zv1m4aza4qnzdwf75824fst
475downloads
1stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

DingTalk Group Saver

版本: 2.0.0
描述: 当在钉钉群里被@时,自动保存群 ID 和群名字到 memory 中(双写持久化)


🎯 功能

当收到钉钉群消息且被@时:

  1. 自动提取群 ID (conversationId)
  2. 自动提取群名字
  3. 双写存储
    • JSON 文件:memory/dingtalk-groups.json(结构化数据)
    • Markdown 文件:MEMORY.md(长期记忆,所有 Session 可读)

📁 文件结构

~/.openclaw/workspace/skills/dingtalk-group-saver/
├── SKILL.md              # 本文件
└── index.js              # 实现代码

💾 数据存储

1. JSON 文件(结构化)

位置~/.openclaw/workspace/memory/dingtalk-groups.json

{
  "groups": [
    {
      "conversationId": "cid/xxx==",
      "groupName": "测试群",
      "firstSeenAt": "2026-02-26T14:00:00+08:00",
      "lastActiveAt": "2026-02-26T14:00:00+08:00",
      "mentionCount": 1
    }
  ]
}

2. MEMORY.md(长期记忆)

位置~/.openclaw/workspace/MEMORY.md

自动更新 ### 钉钉群列表(推送渠道) 章节,包含:

  • 群名称
  • 群 ID
  • 用途描述

优势

  • ✅ 所有 Session 启动时自动加载
  • ✅ 人类可读,便于手动编辑
  • ✅ 与系统配置、主人画像等长期记忆在一起

🔧 使用方式

无需手动调用! 自动触发:

  1. 在钉钉群里@小牛马
  2. 机器人回复消息
  3. 自动保存群信息到:
    • memory/dingtalk-groups.json
    • MEMORY.md

📋 查看已保存的群

# 查看 JSON 数据
cat ~/.openclaw/workspace/memory/dingtalk-groups.json

# 查看 MEMORY.md 中的群列表
grep -A 10 "钉钉群列表" ~/.openclaw/workspace/MEMORY.md

🎯 使用场景

场景说明
新群@机器人自动记录群信息
发送群消息从 MEMORY.md 查找群 ID
群管理维护已知群列表
Session 切换新 Session 自动继承群信息

⚠️ 注意事项

  • 只在被@时触发(避免记录所有群)
  • 群名字可能为空(API 限制)
  • 首次保存后,后续@会更新 lastActiveAtmentionCount
  • MEMORY.md 中的表格会自动同步更新

🔄 更新日志

  • v2.0.0 - 新增 MEMORY.md 双写,保证所有 Session 可读
  • v1.0.0 - 初始版本,仅保存到 JSON 文件

由 OpenClaw 技能系统自动加载 🐂🐎

Comments

Loading comments...