Skill flagged — suspicious patterns detected
ClawHub Security flagged this skill as suspicious. Review the scan results before using.
Memory Vector v2.1 (多层知识库)
v2.1.0提供基于BGE-M3模型的自动日志蒸馏生成向量记忆,并支持语义相似度搜索与核心记忆自动更新功能。
⭐ 0· 181·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
The skill's stated purpose (log distillation → embeddings → vector search) is implemented by the JS scripts. However metadata declares no required environment variables while SKILL.md and the code expect several (EMBEDDING_URL, LLM_URL, EMBEDDING_API_KEY, LLM_API_KEY, etc.). Also updateMemoryCore writes a hard-coded '核心记忆' block (including a real-seeming address and commute rules) into MEMORY.md — irrelevant and unexpected for a generic memory tool and potentially a privacy/legal concern.
Instruction Scope
SKILL.md instructs the agent to read memory/*.md logs, call an embedding service and an LLM, create memory/vector/memories.json, and update knowledge files — which the code does. But the code will overwrite/work with files in the current workspace (MEMORY.md, memory/vector/*). The auto-generated MEMORY.md contains hard-coded personal data (not derived from user logs) and the scripts will write into user files without strong safeguards; this broad file modification is outside what a casual user might expect.
Install Mechanism
No install spec or network downloads are present; the skill is provided as Node.js scripts. That is low installation risk compared with remote binary downloads. However the package includes runnable scripts that will be executed by node in the user's workspace.
Credentials
The manifest declares no required env vars, but both SKILL.md and the code rely on several environment variables (EMBEDDING_URL, EMBEDDING_MODEL, EMBEDDING_API_KEY, LLM_URL, LLM_MODEL, LLM_API_KEY, DISTILL_DAYS). The code also contains a bug: httpRequest always injects CONFIG.embedding.apiKey into Authorization header (it does not use CONFIG.llm.apiKey), meaning LLM_API_KEY is declared but not actually used — an inconsistency that could lead to unintended requests or misconfigured credential handling. Requesting API keys is proportionate for contacting embedding/LLM services, but the mismatch between declared and used envs is a red flag.
Persistence & Privilege
The skill does not request 'always:true' and is user-invocable. It writes and updates files inside the agent's workspace (memory/vector/memories.json and MEMORY.md). That file-write behavior is expected for this functionality but merits caution: the scripts will create/overwrite workspace files and back up originals, so run in an isolated directory and review backups before trusting outputs.
What to consider before installing
Things to check before installing or running this skill:
- Review and understand the two included JS files (dist/memory-distill.js and dist/memory-search.js) — they will read and write files under your current working directory (memory/*, memory/vector/*, MEMORY.md).
- Expect to provide or configure embedding and LLM endpoints and API keys (EMBEDDING_URL, LLM_URL, EMBEDDING_API_KEY, LLM_API_KEY). The skill metadata does not declare these, but the scripts will use them; confirm endpoints are local/trusted (defaults point to http://localhost:11434). Do not supply production credentials until you audit the code.
- The distill script contains a bug: it sets the Authorization header using the embedding API key even for LLM calls (CONFIG.embedding.apiKey is reused). If you plan to use a remote LLM service, update/fix the code so the LLM API key is used correctly.
- The updateMemoryCore function writes a hard-coded personal block (address, commuting rules, names). This may be leftover sample data from the author — inspect and remove/replace these lines before running to avoid injecting unintended personal information into your MEMORY.md.
- The provided distill file appears truncated in the supplied listing (the run call ends with a truncated .catch(console.er...), which could indicate an incomplete file; ensure the file is intact and syntactically correct before executing.
- Run the scripts in an isolated test workspace (not your real data), confirm backups are created, and verify the regex-based 'filterSensitiveContent' is sufficient for your threat model — it's not comprehensive and can miss secrets.
If you are not comfortable auditing or editing the code yourself, do not run this skill with sensitive logs or live credentials.Like a lobster shell, security has layers — review code before you run it.
bge-m3vk97e8c1ewwskwbxf1epc681m9h83e095distillvk97e8c1ewwskwbxf1epc681m9h83e095knowledge-basevk97e8c1ewwskwbxf1epc681m9h83e095latestvk97e8c1ewwskwbxf1epc681m9h83e095memoryvk97e8c1ewwskwbxf1epc681m9h83e095ollamavk97e8c1ewwskwbxf1epc681m9h83e095vectorvk97e8c1ewwskwbxf1epc681m9h83e095
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
