Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

TagMemory

v1.0.0

标签化长期记忆系统。当用户说"记住..."时存储记忆,当用户问"我之前..."时查询记忆,定期生成总结并询问确认,主动核对记忆正确性。支持标签(#偏好、#决定、#项目等)、BM25搜索、时间范围查询、人类审核机制。

0· 89·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for luckyboybs/tag-memory.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "TagMemory" (luckyboybs/tag-memory) from ClawHub.
Skill page: https://clawhub.ai/luckyboybs/tag-memory
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install tag-memory

ClawHub CLI

Package manager switcher

npx clawhub@latest install tag-memory
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
功能描述(本地标签化记忆、BM25 搜索、人类审核、定期总结)与代码实现(Python SQLite 数据库、BM25、去重、核对与汇总模块)总体一致. 但 openclaw.plugin.json 声明的 entry='src/skill.js' 与仓库中实际的 Node 入口 (src/index.js) 不一致;plugin 还列出两个 hook 文件 (src/hooks/...),这些 hook 文件在清单中缺失。
Instruction Scope
SKILL.md 指示通过运行本地 Python CLI 存取 ~/.openclaw/workspace/skills/tag-memory 下的数据,行为局限于本地文件/SQLite 数据库(符合‘本地存储’的声明)。指令/示例命令假定存在 python3、以及特定路径,然而这些二进制依赖并未在元数据中声明。未发现指令会把数据发送到外部网络,但 config.json 指定了 llm.provider='minimax'——若 summarizer/verifier 调用远端 LLM,则会产生外部网络调用,需要确认这些模块如何被配置与认证。
Install Mechanism
无安装规范(instruction-only),这降低了供应链风险,但仓库包含可执行代码(Node + Python)。没有 install spec 意味着文件会按原样被读取并在运行时通过 spawn/CLI 调用。重要隐患:技能在运行时需要 python3 和 node,但元数据未声明任何必需二进制(不一致)。
!
Credentials
技能声明不需要任何环境变量或凭证,但 config.json 指定了 llm.provider='minimax' 和 model='MiniMax-M2.5'。如果 summarizer/verifier 模块调用远端 LLM,会需要 API 凭证(未声明),这与 'Required env vars: none' 不一致。另一个不一致点:openclaw.plugin.json 声明 runtime=node/entry=src/skill.js(不存在),表明元数据没有同步到实际实现。总体上请求的环境权限(无)与代码可能需要的外部访问(LLM)不匹配。
Persistence & Privilege
技能没有设置 always:true,也未请求修改其它技能或全局配置。它在本地创建/使用 SQLite 数据库(默认路径在用户家目录下)。该持久性(在用户目录写入 DB)是技能功能所必需且可预期,但值得注意:它会在用户主目录下存储记忆数据,用户应了解该文件的位置与备份/加密要求。
What to consider before installing
主要注意点: 1) 代码会在本地创建并写入 ~/.openclaw/workspace/skills/tag-memory/data/memory.db(SQLite),请确认你允许在该路径存储敏感记忆。 2) 虽然元数据声称不需要任何环境变量,config.json 指向了一个 LLM 提供者(minimax)。在安装前确认 summarizer/verifier 模块是否会调用网络 LLM,若会,询问需要哪些 API 凭证以及如何安全配置(凭证不应放在公开位置)。 3) 元数据不一致:openclaw.plugin.json 的 entry 指向不存在的 src/skill.js,且列出的 hooks 文件也缺失;同时代码实际需要 python3 和 node 来运行,但元数据未声明这些依赖。请向作者确认正确的入口文件、缺失的 hook 文件、以及明确的运行时依赖(python3、node、可能的 LLM SDK)和网络行为。 4) 如果你 want to proceed: run the code in an isolated environment (container or VM), inspect summarizer.py and verifier.py for external network calls, and back up / review the DB path before use. If you cannot verify the LLM calls and required credentials, treat the skill as untrusted for sensitive data.
src/index.js:16
Shell command execution detected (child_process).
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.

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

latestvk971mbbjcev16628b2eexxftg183w300
89downloads
0stars
1versions
Updated 4w ago
v1.0.0
MIT-0

TagMemory - 标签化长期记忆系统

版本

  • 当前版本: 1.0.0
  • 核心功能: 标签存储、BM25搜索、人类审核、定期归纳

功能描述

让 AI 记住用户的重要信息(偏好、决定、项目等),并支持人类审核确保记忆准确。

核心能力

  • 🏷️ 标签化存储 - 为记忆打上语义标签
  • 🔍 BM25 搜索 - 快速准确的关键词搜索
  • ⏰ 时间标签 - 按时间段查询历史记忆
  • 🤝 人类审核 - 确认/修正/删除记忆
  • 📊 定期归纳 - 生成阶段性总结
  • 🛡️ 隐私优先 - 本地存储,不上传云端

标签体系

标签用途示例
#偏好用户偏好习惯"喜欢 tabs 缩进"
#决定重要决策"选择了 PostgreSQL"
#项目项目背景"在做电商项目"
#人人物信息"项目经理是张三"
#事件发生的事情"上周系统宕机了"
#知识学到的知识"学会了用 Docker"
#错误犯过的错误"之前选错了方案"

使用场景

场景 1:用户说"记住..."

用户: "记住,我喜欢用 tabs 缩进,不喜欢 spaces"
智能体: 
  执行命令存储记忆
  回应: "✅ 已记住!你偏好 tabs 缩进"

调用方式:

cd ~/.openclaw/workspace/skills/tag-memory && python3 src/cli.py --json store << EOF
{"content": "用户偏好 tabs 缩进,不喜欢 spaces", "tags": ["#偏好", "#编程"]}
EOF

场景 2:用户问"我之前..."

用户: "我之前为什么选择了 PostgreSQL?"
智能体:
  执行命令查询记忆
  回应: "根据记录,你当时选择 PostgreSQL 是因为性能更好"

调用方式:

cd ~/.openclaw/workspace/skills/tag-memory && python3 src/cli.py --json query << EOF
{"query": "PostgreSQL 选择 原因", "tags": ["#决定"]}
EOF

场景 3:查询偏好

用户: "我的编程偏好是什么?"
智能体:
  执行命令查询
  回应: "根据记忆,你的偏好包括:喜欢 tabs 缩进..."

场景 4:查看所有记忆

用户: "我记住了哪些东西?"
智能体:
  执行命令列出
  回应: "📋 你共记住了 10 条记忆..."

调用方式:

cd ~/.openclaw/workspace/skills/tag-memory && python3 src/cli.py list

场景 5:核对记忆

用户: "我有哪记忆需要确认?"
智能体:
  执行命令获取待核对列表
  主动询问用户确认

调用方式:

cd ~/.openclaw/workspace/skills/tag-memory && python3 src/cli.py --json verify-pending << EOF
{"max_count": 3}
EOF

场景 6:生成总结

用户: "总结一下这周我们讨论了什么"
智能体:
  执行命令生成总结
  展示给用户确认

调用方式:

cd ~/.openclaw/workspace/skills/tag-memory && python3 src/cli.py --json summarize << EOF
{"days": 7}
EOF

场景 7:确认总结

智能体: "这是阶段性总结... 这对吗?"
用户: "对,存档"
智能体:
  执行确认命令
  回应: "✅ 总结已存档"

调用方式:

cd ~/.openclaw/workspace/skills/tag-memory && python3 src/cli.py --json summarize-confirm << EOF
{"feedback": "confirm"}
EOF

CLI 命令速查

命令用途
store存储记忆
query <内容>查询记忆
list列出所有记忆
stats查看统计
verify-pending待核对列表
summarize [--days N]生成总结
summarize-confirm [feedback]确认总结

Agent 追踪

每条记忆都会记录是哪个 agent 产生的:

字段说明
agent_idagent 标识(main/agent-bot2/agent-bot3 等)
🤖在查询结果中显示

存储时指定 agent_id:

echo '{"content": "内容", "tags": ["#标签"], "agent_id": "main"}' | python3 src/cli.py --json store

查询结果示例:

1. ❓ [-1.22分] 这是小学蛋 agent 的记忆
   🏷️ #测试 | 📅 2026-03 | 🤖 agent-bot2

设计理念

TagMemory 的核心理念是人类参与记忆维护

存储 ──→ 闲时核对 ──→ 定期归纳 ──→ 确认存档
  │          │            │           │
  ↓          ↓            ↓           ↓
打标签    纠正错误      生成总结     用户确认

为什么这样做?

  1. AI 自动存储的记忆可能有错误
  2. 没有人类审核,错误会累积
  3. 定期归纳 + 确认 = 确保记忆准确
  4. 闲时核对 = 发现错误及时纠正

与 LCM 的关系

系统用途数据
LCM对话压缩/上下文管理AI 自己和用户说了什么
TagMemory用户记忆/知识管理用户告诉 AI 的重要信息

两者互补,不会冲突。

Comments

Loading comments...