MisakaNet 是 dpharness.com 插件清单里的失败经验库,官方定位是 failure-memory protocol 的参考实现——Git 驱动、零依赖优先的 AI Agent 失败经验知识网络。作者 Ikalus1988,Apache 2.0 许可,493 star,393 条 canonical lessons、333 个 nodes,官网 misakanet.org。
它适合放在云上:无服务器、无数据库、无守护进程,一台 ECS 就能当团队的共享失败经验节点。但云环境有三件本地不会遇到的事——安全组、端口暴露、出网策略。这篇按操作顺序走一遍。
一、实例、镜像与安全组
规格两档:只做验证或单人使用,1 vCPU 2 GiB 够用;要同时跑 Agent、Node 和检索脚本,建议 2 vCPU 4 GiB 起,系统盘 40 GiB ESSD。镜像选 Ubuntu 22.04 或 24.04 LTS,Python 3 与 Node 的安装源最省事。
安全组在开实例时一起配好,原则只有一条:入方向只放行你自己的来源 IP,不要对 0.0.0.0/0 开放。SSH 的 22 端口填你的出口公网 IP。出方向默认放通,先不用动。
二、两个硬前置:Python 与 Node ≥20
先补 Python。零依赖指的是仅使用 Python 标准库,省掉的是基础设施而不是解释器,所以 Python 环境是硬前置;走 CLI 路径还要一个包:
python3 --version # 确认 Python 3 可用
pip3 install misakanet-core # CLI 路径需要这个包
再装 Node。engines 声明 >=20.0.0,dsh 验证基线是 Node 22.19,用 NodeSource 源装 20 以上 LTS 最稳,装完复核 node -v。
三、装 dsh 与 MisakaNet
按需求选安装形态,再补上技能包复制这一步,最后验证链路:
dsh plugin --profile web add misakanet # npm 形态:skill 与 CLI 面
dsh plugin add git+https://github.com/Ikalus1988/MisakaNet.git # git 形态:含 MCP 服务器
mkdir -p ~/.dsh/skills && cp -r skills/misakanet ~/.dsh/skills/ # 让 failure-memory SKILL 可被发现
python3 search_knowledge.py "pip install timeout" # 有结果返回即通
四、3080 端口:优先走 SSH 隧道
DSH Web 默认监听 127.0.0.1:3080,只对本机回环开放,公网访问不到。最省事的用法是在本地开一条 SSH 隧道:
ssh -L 3080:127.0.0.1:3080 -N root@<你的ECS公网IP> # 本地端口转发
保持运行,本地浏览器访问 127.0.0.1:3080 即可。它不改监听地址、不需要额外鉴权层,也不多开一个公网攻击面。要让团队访问,优先叠一层带鉴权的反向代理,而不是把 3080 直接对 0.0.0.0/0 打开。
五、出网:npm registry 与 misakanet.org
走 Remote MCP 这条路径,ECS 必须能出网访问 misakanet.org(端点 https://misakanet.org/mcp);走 npm 安装还要能到 npm registry。ECS 绑公网 IP 或配了 NAT 时默认能出网,只需确认出方向没被自己收窄。注意这条路径的配置必须带 Token——url 之外还要有 headers: { "Authorization": "Bearer YOUR_TOKEN" }。
四个必须避开的坑
坑一:以为「零依赖」就是不用准备 Python
现象:仓库拉到 ECS 上直接跑 python3 search_knowledge.py "...",报错找不到命令或提示缺包。
原因:零依赖是相对第三方库说的,不是相对解释器说的;Python 环境是硬前置,CLI 路径还要额外 pip install misakanet-core。
解决方案:先跑通 python3 --version 再补依赖;只做验证就走 clone 路径。
坑二:Remote MCP 忘了带 Token
现象:按方式 A 配好 mcpServers,只填了 url,调用一律失败,日志像是鉴权被拒。
原因:Remote MCP 的配置必须带 Authorization: Bearer YOUR_TOKEN,Token 不是可选项。
解决方案:按完整结构补齐 headers;Token 放环境变量或配置管理,别写进仓库与镜像。
坑三:安全组对 0.0.0.0/0 开放
现象:把 22 和 3080 的来源填成 0.0.0.0/0,很快在日志里看到大量异常登录尝试。
原因:0.0.0.0/0 意味着全互联网可访问,而云上机器从开机起就在被扫描。
解决方案:入方向按「最小可用」写——22 只放行你自己的出口 IP,3080 尽量不开;确需开放也只放行固定来源 IP。
坑四:出网被自己收窄,装包与 Remote MCP 一起失败
现象:pip install 或 npm 安装超时,Remote MCP 也连不上,但 ping 公网是通的。
原因:出网路径不完整——npm 安装要能到 npm registry,Remote MCP 要能到 misakanet.org;出方向被改过或 NAT 过严时,只会在具体域名上报错。
解决方案:分别验证两个目标是否可达,再回头调安全组出方向或 NAT,别凭感觉反复重装。
上线前的最小验证清单
python3 --version 与 node -v 符合要求;搜索能返回结果;SKILL 已在 ~/.dsh/skills 下;安全组入方向没有 0.0.0.0/0;3080 走 SSH 隧道;出网能到 npm registry 与 misakanet.org。
想对照看还有哪些值得装的插件、各自的环境前置:更多精彩内容请访问dpharness