Dingtalk Group Saver
v1.0.0自动在钉钉群中被@时保存群ID和群名,双写至JSON和MEMORY.md实现持久化和跨Session共享。
Security Scan
OpenClaw
Benign
medium confidencePurpose & 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.
latest
DingTalk Group Saver
版本: 2.0.0
描述: 当在钉钉群里被@时,自动保存群 ID 和群名字到 memory 中(双写持久化)
🎯 功能
当收到钉钉群消息且被@时:
- 自动提取群 ID (conversationId)
- 自动提取群名字
- 双写存储:
- JSON 文件:
memory/dingtalk-groups.json(结构化数据) - Markdown 文件:
MEMORY.md(长期记忆,所有 Session 可读)
- JSON 文件:
📁 文件结构
~/.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 启动时自动加载
- ✅ 人类可读,便于手动编辑
- ✅ 与系统配置、主人画像等长期记忆在一起
🔧 使用方式
无需手动调用! 自动触发:
- 在钉钉群里@小牛马
- 机器人回复消息
- 自动保存群信息到:
memory/dingtalk-groups.jsonMEMORY.md
📋 查看已保存的群
# 查看 JSON 数据
cat ~/.openclaw/workspace/memory/dingtalk-groups.json
# 查看 MEMORY.md 中的群列表
grep -A 10 "钉钉群列表" ~/.openclaw/workspace/MEMORY.md
🎯 使用场景
| 场景 | 说明 |
|---|---|
| 新群@机器人 | 自动记录群信息 |
| 发送群消息 | 从 MEMORY.md 查找群 ID |
| 群管理 | 维护已知群列表 |
| Session 切换 | 新 Session 自动继承群信息 |
⚠️ 注意事项
- 只在被@时触发(避免记录所有群)
- 群名字可能为空(API 限制)
- 首次保存后,后续@会更新
lastActiveAt和mentionCount - MEMORY.md 中的表格会自动同步更新
🔄 更新日志
- v2.0.0 - 新增 MEMORY.md 双写,保证所有 Session 可读
- v1.0.0 - 初始版本,仅保存到 JSON 文件
由 OpenClaw 技能系统自动加载 🐂🐎
Comments
Loading comments...
