dsh-moments-aieo:把品牌被 AI 搜索引用的 AIEO 交付方法打包成 DSH 技能包

前言

用户向 AI 搜索提问时品牌能否被引用,正在成为一条值得经营的渠道。对应的方法论叫 AIEO(GEO/AEO 这类实践),实际交付大致分四步:先诊断品牌在各平台的可见度,再做定位、产出内容,最后持续跟踪效果。

问题是这些步骤通常散落在文档和个人经验里,方法在团队之间复用基本靠人。如果你在用 DeepSeek Harness(DSH),顺理成章的做法是把方法打包成技能包,让模型按需加载执行。DSH 的理念是一切皆插件,这类方法型资产正好有落点。下面介绍 dsh-moments-aieo,一个按这个思路做的技能包。

这是什么

dsh-moments-aieo 是 Kenerlee 维护的 DeepSeek Harness 技能包,当前版本 0.1.0,MIT 许可。一句话定位:它把让品牌被 AI 搜索引用的 AIEO(GEO/AEO)交付方法打包为一个 bundle,诊断 → 定位 → 内容 → 监测四个阶段由同一条问题库串联。

四个阶段,一条问题库

问题库是贯穿全程的关键工件,各环节对它的操作不同:

  1. 诊断做品牌 AI 可见度诊断,产出报告,并起草问题库初稿;
  2. 定位基于 AIEO 改编的 April Dunford 方法做定位分析,迭代问题库;
  3. 内容阶段消费问题库;
  4. 监测周期性跟踪可见度、share-of-voice、内容质量与转化,以问题库为对标。

乱序运行是允许的,只是产出的问题库较弱。

技能清单

bundle 共带 6 个技能:5 个带 moments-aieo- 前缀,外加一个落地页复刻工具;内容阶段没有单设技能。

技能 用途
moments-aieo-diagnosis 品牌 AI 可见度诊断,产出报告并起草问题库初稿
moments-aieo-positioning 基于 AIEO 改编的 April Dunford 方法做定位分析,迭代问题库
moments-aieo-query-miner 仅从白名单平台导出中挖掘真实搜索词,拒绝编造
moments-aieo-monitoring 周期性跟踪可见度、share-of-voice、内容质量与转化
moments-aieo-dashboard 把监测报告渲染为交互式 HTML 仪表板
moments-landing-page-cloner 高保真落地页复刻

一个细节:moments-aieo-query-miner 只认白名单平台导出里的真实搜索词,拒绝编造。对这类依赖数据源质量的工作,这是个实用的硬约束。

安装与启用

先安装插件。直接从 GitHub 拉:

dsh plugin --profile web add github:Kenerlee/dsh-moments-aieo

或者从本地克隆安装:

dsh plugin --profile web add file:/path/to/clone

插件要求运行环境的 ctx.skills(inject: ['skills'])。装好后,把包加入 ~/.dsh/profiles/web/package.json 的 bundles 列表:

{ "dsh": { "profile": { "bundles": [
  "@deepseek-ai/dsh-base",
  "@deepseek-ai/dsh-web-app",
  "dsh-moments-aieo"
] } } }

这一步通常可以省掉:bundle 自带的 cordis.patch.yml 会自动插入该行,无需手动改 profile。

安装完成后,不启动 DSH 也能验证配置是否生效:

dsh --profile web --dump-config | grep -A 4 'id: moments-aieo'

如果你在改技能本身,可以把 skillsDir 指到自己的工作目录,在 ~/.dsh/profiles/web/cordis.patch.yml 里按 id 覆盖:

- id: moments-aieo
  config:
    skillsDir: /absolute/path/to/your/skills

插件只有两个配置项:skillsDir 默认指向包内 skills/ 目录;providerName 默认是 moments-aieo

配置 Playwright MCP

诊断与监测两个技能要驱动真实的 AI 搜索平台,这一步靠 Playwright。dsh 经 @deepseek-ai/dsh-mcp-client 接入 MCP 服务器,工具按 mcp__<serverName>__<rawName> 的形状注册,技能正文里的工具名写作 mcp__playwright__browser_*,所以把 server 命名为 playwright 即可解析:

- insert:
    - id: mcp-playwright
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: playwright
        command: npx
        args: ['@playwright/mcp@latest']

不配这段,两个技能仍能运行,产出技术审计和报告骨架;缺的是平台可见度测量部分。

挂载实现与模型体验

对想自己写技能包的人,这个插件的挂载方式值得参考。

插件本体很薄:通过 @deepseek-ai/dsh-skill-filesystem 挂载自带的 skills/ 目录,includeDefaultRoots 设为 false,整套技能以单一 provider 名注册。好处是不会与 ~/.dsh/skills~/.agents/skills 里的同名技能冲突,也不依赖扫描宿主目录。

模型侧的体验是间接的,经 @deepseek-ai/dsh-tool-skill 完成:技能名与截断后的描述进入模型的技能目录,模型用 skill(name) 加载对应 SKILL.md 及其资源;路径、provider 排名、挂载配置这些对模型不可见。KV Cache 的代价也只落在目录上:注册一次性给目录摘要增加 8 行,技能正文只在模型主动加载时才进入历史。

适用场景与注意

适合谁:做 AIEO/GEO 交付的团队或个人,希望诊断、定位、监测这几步在 DSH 内可复现、可执行。注意这是中文优先的技能包:所有 AIEO 技能正文都是中文,评分标准假定中文 AI 搜索平台,目标平台不是中文时需要自行评估适配。

安装前有几件事要做:

  1. 插件以当前 dsh 进程的权限运行,诊断和监测还会经 Playwright 驱动浏览器访问真实平台,先读源码确认行为符合预期;
  2. 审计成本不高:无构建步骤,插件本体是约二十行的纯 .mjs 文件;
  3. 确认许可证(MIT)与你的使用方式相符。

已知限制:

  • frontmatter 里的 allowed-tools 键在 dsh 下不生效:解析器只读 namedescriptionwhenToUsemetadata 和两个调用标志,不报错也不限制,该键仅为 Claude Code 兼容保留。技能正文中的工具名已改为 dsh 拼写(readglobweb_fetch)。
  • Web 模式下 host-level provider 被禁用(dsh-web-app 设 skill-filesystem: disabled)。本 bundle 全局注册,preset agents 读合并目录仍可见;把 preset 与全局注册隔离的部署则看不到这套技能。
  • 诊断技能的成套客户实例不在仓库内分发。

结尾

dsh-moments-aieo 把「诊断 → 定位 → 内容 → 监测」的 AIEO 交付方法做成了由问题库串联的 DSH bundle:诊断起草、定位修正、内容消费、监测对标。做 AI 搜索可见度的团队可以把它当作能直接装上就用的起点,再通过 skillsDir 接入自己的技能目录。跑完诊断后,也可以在仓库的 GitHub Discussions 提交分数与行业(无需品牌名),聚合数据会回流仓库。

  • GitHub:https://github.com/Kenerlee/dsh-moments-aieo
  • 社区目录页(独立站点):https://www.skillhub.cn/plugins/Kenerlee/dsh-moments-aieo
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜