低风险 — 风险评分 15/100
上次扫描:10 小时前 重新扫描
15 /100
memory-palace
AI Agent 持久化记忆管理系统,支持语义搜索、时间推理、知识图谱和 LLM 增强功能
Memory Palace 是一个合法的 AI Agent 持久化记忆管理系统,代码结构清晰,无恶意行为。主要风险为文档覆盖不全(未声明读取配置)和依赖版本未锁定(供应链风险),但均不属于严重安全问题。
技能名称memory-palace
分析耗时68.9s
引擎pi
可以安装
可信使用。建议:1) 在 SKILL.md 中补充声明 config 读取行为;2) 对 Python 依赖添加版本锁定。

安全发现 3 项

严重性 安全发现 位置
低危
配置文件读取未声明 文档欺骗
代码从 ~/.openclaw/openclaw.json 读取 LLM 提供商配置(包含 API key),但 SKILL.md 未声明此行为。虽为合法功能需求,但应补充说明。
path.join(process.env.HOME || '/root', '.openclaw', 'openclaw.json')
→ 在 SKILL.md allowed-tools 或文档中补充说明需要访问 OpenClaw 配置文件
src/llm/subagent-client.ts:92
低危
Python 依赖无版本锁定 供应链
check-vector-deps.cjs 和 install-vector-model.sh 中 pip install 未指定版本,可能遭受依赖劫持攻击。
execSync('pip install sentence-transformers numpy')
→ 改为: pip install sentence-transformers==x.x.x numpy==x.x.x 或使用 requirements.txt
scripts/check-vector-deps.cjs:148
低危
硬编码系统路径 敏感访问
vector-service.py 和 vector-search.ts 使用硬编码路径 /data/agent-memory-palace/*,在多用户共享环境可能存在路径冲突或权限问题。
project_dir = '/data/agent-memory-palace'
→ 使用用户可配置的路径或临时目录
scripts/vector-service.py:57
资源类型声明权限推断权限状态证据
文件系统 READ WRITE ✓ 一致 SKILL.md 声明 Bash(npx memory-palace:*) 等效 filesystem:WRITE;代码读写 workspaceDir 目录
命令执行 WRITE WRITE ✓ 一致 src/background/vector-search.ts:128 spawn('python3', ...) 启动本地 Python 服务
网络访问 NONE READ ✓ 一致 src/llm/subagent-client.ts 读取 ~/.openclaw/openclaw.json 获取 LLM API key,调用外部 API;…
环境变量 NONE READ ✓ 一致 src/llm/subagent-client.ts:92-93 读取 OPENCLAW_CONFIG_PATH, HOME 等环境变量
57 项发现
🔗
中危 外部 URL 外部 URL
https://hf-mirror.com
AGENTS.md:114
🔗
中危 外部 URL 外部 URL
https://keepachangelog.com/en/1.0.0/
CHANGELOG.md:5
🔗
中危 外部 URL 外部 URL
https://semver.org/spec/v2.0.0.html
CHANGELOG.md:6
🔗
中危 外部 URL 外部 URL
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
CODE_OF_CONDUCT.md:119
🔗
中危 外部 URL 外部 URL
https://www.contributor-covenant.org
CODE_OF_CONDUCT.md:124
🔗
中危 外部 URL 外部 URL
https://www.contributor-covenant.org/faq.
CODE_OF_CONDUCT.md:127
🔗
中危 外部 URL 外部 URL
https://www.contributor-covenant.org/translations.
CODE_OF_CONDUCT.md:128
🔗
中危 外部 URL 外部 URL
https://clawhub.com/skills/memory-palace
README.md:51
🔗
中危 外部 URL 外部 URL
https://opencollective.com/eslint
package-lock.json:46
🔗
中危 外部 URL 外部 URL
https://eslint.org/donate
package-lock.json:113
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/@types/node/-/node-20.19.37.tgz
package-lock.json:237
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/@types/uuid/-/uuid-10.0.0.tgz
package-lock.json:247
🔗
中危 外部 URL 外部 URL
https://opencollective.com/typescript-eslint
package-lock.json:273
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/base64-js/-/base64-js-1.5.1.tgz
package-lock.json:685
🔗
中危 外部 URL 外部 URL
https://www.patreon.com/feross
package-lock.json:695
🔗
中危 外部 URL 外部 URL
https://feross.org/support
package-lock.json:699
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/bl/-/bl-4.1.0.tgz
package-lock.json:706
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/buffer/-/buffer-5.7.1.tgz
package-lock.json:731
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/canvas/-/canvas-3.2.1.tgz
package-lock.json:806
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/chownr/-/chownr-1.1.4.tgz
package-lock.json:821
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/decompress-response/-/decompress-response-6.0.0.tgz
package-lock.json:922
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/deep-extend/-/deep-extend-0.6.0.tgz
package-lock.json:938
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/detect-libc/-/detect-libc-2.1.2.tgz
package-lock.json:991
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/end-of-stream/-/end-of-stream-1.4.5.tgz
package-lock.json:1029
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/expand-template/-/expand-template-2.0.3.tgz
package-lock.json:1524
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/fs-constants/-/fs-constants-1.0.0.tgz
package-lock.json:1640
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/github-from-package/-/github-from-package-0.0.0.tgz
package-lock.json:1755
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/ieee754/-/ieee754-1.2.1.tgz
package-lock.json:1889
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/inherits/-/inherits-2.0.4.tgz
package-lock.json:1930
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/ini/-/ini-1.3.8.tgz
package-lock.json:1937
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/mimic-response/-/mimic-response-3.1.0.tgz
package-lock.json:2439
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/minimist/-/minimist-1.2.8.tgz
package-lock.json:2468
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz
package-lock.json:2478
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/napi-build-utils/-/napi-build-utils-2.0.0.tgz
package-lock.json:2492
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/node-abi/-/node-abi-3.89.0.tgz
package-lock.json:2506
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/node-addon-api/-/node-addon-api-7.1.1.tgz
package-lock.json:2519
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/once/-/once-1.4.0.tgz
package-lock.json:2623
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/prebuild-install/-/prebuild-install-7.1.3.tgz
package-lock.json:2751
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/pump/-/pump-3.0.4.tgz
package-lock.json:2789
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/rc/-/rc-1.2.8.tgz
package-lock.json:2810
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/readable-stream/-/readable-stream-3.6.2.tgz
package-lock.json:2826
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/safe-buffer/-/safe-buffer-5.2.1.tgz
package-lock.json:2926
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/semver/-/semver-7.7.4.tgz
package-lock.json:2982
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/simple-concat/-/simple-concat-1.0.1.tgz
package-lock.json:3143
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/simple-get/-/simple-get-4.0.1.tgz
package-lock.json:3164
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/string_decoder/-/string_decoder-1.3.0.tgz
package-lock.json:3204
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/strip-json-comments/-/strip-json-comments-2.0.1.tgz
package-lock.json:3283
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/tar-fs/-/tar-fs-2.1.4.tgz
package-lock.json:3306
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/tar-stream/-/tar-stream-2.2.0.tgz
package-lock.json:3319
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/tunnel-agent/-/tunnel-agent-0.6.0.tgz
package-lock.json:3379
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/typescript/-/typescript-5.9.3.tgz
package-lock.json:3483
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/undici-types/-/undici-types-6.21.0.tgz
package-lock.json:3516
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/util-deprecate/-/util-deprecate-1.0.2.tgz
package-lock.json:3533
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/uuid/-/uuid-9.0.1.tgz
package-lock.json:3540
🔗
中危 外部 URL 外部 URL
http://mirrors.tencentyun.com/npm/wrappy/-/wrappy-1.0.2.tgz
package-lock.json:3668
🔗
中危 外部 URL 外部 URL
https://www.python.org/downloads/
scripts/check-vector-deps.cjs:84
📧
提示 邮箱 邮箱地址
[email protected]
scripts/ab-test/final-test.ts:48

目录结构

71 文件 · 646.0 KB · 21167 行
TypeScript 39f · 11909L Markdown 20f · 4158L JSON 3f · 3751L Python 3f · 671L JavaScript 4f · 580L Shell 1f · 98L
├─ 📁 bin
│ └─ 📜 memory-palace.js JavaScript 140L · 4.7 KB
├─ 📁 docs
│ ├─ 📝 AB-TEST-REPORT.md Markdown 210L · 6.1 KB
│ ├─ 📦 comparison-chart.svg 7.4 KB
│ ├─ 📝 README.zh-CN.md Markdown 267L · 6.3 KB
│ ├─ 📝 README.zh-TW.md Markdown 243L · 5.7 KB
│ ├─ 📝 ROADMAP.md Markdown 276L · 6.6 KB
│ └─ 📝 v1.1-llm-integration.md Markdown 600L · 13.8 KB
├─ 📁 examples
│ ├─ 📝 project-memory.md Markdown 55L · 1.7 KB
│ └─ 📝 user-preferences.md Markdown 42L · 1.2 KB
├─ 📁 references
│ ├─ 📝 examples.md Markdown 232L · 4.4 KB
│ └─ 📝 tools.md Markdown 323L · 5.3 KB
├─ 📁 scripts
│ ├─ 📁 ab-test
│ │ ├─ 📝 AGENTS.md Markdown 72L · 2.1 KB
│ │ ├─ 📜 debug-wednesday.ts TypeScript 51L · 1.9 KB
│ │ ├─ 📜 final-test.ts TypeScript 386L · 21.5 KB
│ │ ├─ 📜 report.ts TypeScript 588L · 21.3 KB
│ │ ├─ 📜 run-jarvis-test.ts TypeScript 255L · 8.4 KB
│ │ ├─ 📜 run-test.ts TypeScript 555L · 15.7 KB
│ │ ├─ 📜 test-data.ts TypeScript 453L · 13.8 KB
│ │ ├─ 📜 test-queries.ts TypeScript 209L · 6.8 KB
│ │ ├─ 📜 test-time-reasoning.ts TypeScript 47L · 1.4 KB
│ │ └─ 📜 verify-hits.ts TypeScript 67L · 2.0 KB
│ ├─ 🐍 ab-test-vector.py Python 182L · 6.2 KB
│ ├─ 📜 check-vector-deps.cjs JavaScript 170L · 5.4 KB
│ ├─ 🔧 install-vector-model.sh Shell 98L · 2.9 KB
│ ├─ 📜 test-score.ts TypeScript 29L · 1015 B
│ ├─ 🐍 test-vector.py Python 186L · 6.3 KB
│ ├─ 🐍 vector-service.py Python 303L · 10.2 KB
│ └─ 📜 verify-skill.ts TypeScript 183L · 7.5 KB
├─ 📁 src
│ ├─ 📁 background
│ │ ├─ 📜 compress.ts TypeScript 353L · 9.5 KB
│ │ ├─ 📜 concept-expansion.ts TypeScript 371L · 12.2 KB
│ │ ├─ 📜 conflict.ts TypeScript 329L · 10.1 KB
│ │ ├─ 📜 scheduler.ts TypeScript 94L · 2.4 KB
│ │ ├─ 📜 time-reasoning.ts TypeScript 407L · 12.3 KB
│ │ └─ 📜 vector-search.ts TypeScript 355L · 9.2 KB
│ ├─ 📁 cognitive
│ │ ├─ 📜 cluster.ts TypeScript 192L · 5.8 KB
│ │ ├─ 📜 entity.ts TypeScript 234L · 6.6 KB
│ │ └─ 📜 graph.ts TypeScript 346L · 9.4 KB
│ ├─ 📁 llm
│ │ ├─ 📝 AGENTS.md Markdown 87L · 2.9 KB
│ │ ├─ 📜 concept-expander.ts TypeScript 201L · 6.1 KB
│ │ ├─ 📜 experience-extractor.ts TypeScript 220L · 6.3 KB
│ │ ├─ 📜 index.ts TypeScript 65L · 1.2 KB
│ │ ├─ 📜 smart-compressor.ts TypeScript 261L · 7.5 KB
│ │ ├─ 📜 subagent-client.ts TypeScript 748L · 19.6 KB
│ │ ├─ 📜 summarizer.ts TypeScript 239L · 6.5 KB
│ │ ├─ 📜 time-parser.ts TypeScript 246L · 7.4 KB
│ │ └─ 📜 types.ts TypeScript 174L · 3.8 KB
│ ├─ 📁 tests
│ │ ├─ 📜 experience.test.ts TypeScript 340L · 11.7 KB
│ │ ├─ 📜 llm.test.ts TypeScript 313L · 9.8 KB
│ │ ├─ 📜 manager.test.ts TypeScript 358L · 11.1 KB
│ │ └─ 📜 time-concept.test.ts TypeScript 336L · 12.8 KB
│ ├─ 📝 AGENTS.md Markdown 61L · 2.8 KB
│ ├─ 📜 experience-manager.ts TypeScript 318L · 9.6 KB
│ ├─ 📜 index.ts TypeScript 91L · 2.7 KB
│ ├─ 📜 manager.ts TypeScript 711L · 20.4 KB
│ ├─ 📜 storage.ts TypeScript 412L · 11.8 KB
│ └─ 📜 types.ts TypeScript 315L · 6.2 KB
├─ 📁 tests
│ ├─ 📁 integration
│ │ ├─ 📜 mock-vector-search.ts TypeScript 329L · 8.6 KB
│ │ └─ 📜 openclaw-integration.test.ts TypeScript 728L · 22.7 KB
│ └─ 📜 cli.test.js JavaScript 214L · 6.4 KB
├─ 📝 AGENTS.md Markdown 159L · 5.3 KB
├─ 📝 CHANGELOG.md Markdown 92L · 2.8 KB
├─ 📝 CODE_OF_CONDUCT.md Markdown 127L · 5.1 KB
├─ 📝 CONTRIBUTING.md Markdown 66L · 1.4 KB
├─ 📜 eslint.config.mjs JavaScript 56L · 1.5 KB
├─ 📝 INTEGRATION-REPORT.md Markdown 203L · 4.9 KB
├─ 📝 OPENCLAW-INTEGRATION-PROPOSAL.md Markdown 332L · 9.8 KB
├─ 📋 package-lock.json JSON 3687L · 125.6 KB
├─ 📋 package.json JSON 45L · 1.2 KB
├─ 📝 README.md Markdown 349L · 8.7 KB
├─ 📝 SKILL.md Markdown 362L · 6.7 KB
└─ 📋 tsconfig.json JSON 19L · 490 B

依赖分析 3 项

包名版本来源已知漏洞备注
sentence-transformers * pip 无版本锁定
numpy * pip 无版本锁定
uuid ^9.0.0 npm 已锁定版本

安全亮点

✓ 代码结构清晰,无混淆或 Base64 编码执行
✓ 使用正则转义防止注入攻击 (src/manager.ts:38 escapeRegExp)
✓ 无凭证收割或数据外泄行为
✓ vector-service 绑定 127.0.0.1 仅本地访问
✓ 无远程 shell 或 C2 通信
✓ 测试覆盖完善,有集成测试
✓ 文件锁机制防止竞态条件