目标状态
读完本指南,你会拥有一个自己运行的每周检查。每周五早上 9 点,DeepSeek Harness 以无头模式自动醒来,跑四项检查(排名、AI 答案露面、内容新鲜度、外链),把结果追加到工作区里一个带日期的文件,全程大约三分钟。而你花十五分钟,喝着咖啡读 diff 就够了。
适合谁: 已经跑过本系列安装文章、Harness 无头模式能用的任何人。需要什么: 一个工作区文件夹、一套提示词集(见下文)、一台定时触发时开着的电脑。"完成"长什么样: 一个 weekly-snapshots/ 文件夹,每次运行一个带日期的文件,加上一屏能看完的变化摘要。
全文演示站点是 Moonlight Roasters(moonlightroasters.example),本系列里反复出现的同一个虚构波特兰烘焙商。

一张图看完整个自动化:定时、运行、存档、读 diff。
自动化之前:先定基线
自动化好不好,取决于背后的提示词集。一次性把它配好,每周运行就变成例行公事。从本系列提示词库里的四项检查开始——一次真实 headless 运行把它们变成了一份现成的清单:
检查 | dsh 任务 | 预期输出 |
|---|---|---|
排名 |
| 表格:关键词 → 位置 → URL → 与上周的对比 |
AI 答案露面 |
| 平台 → 是否被引用(是/否)→ 引用上下文 |
内容新鲜度 |
| 页面 → 最后修改时间 → 陈旧标记 → 需要行动 |
外链 |
| 外链域名 → 锚文本 → 状态(新增/丢失) |
这张表里烙着两条设计规则。第一,每项检查都有确定的输出形态(带列名的表格),这样周与周之间的对比才是同类比较。第二,检查与升级规则匹配:排名掉 5 位以上、引用丢失、核心页面陈旧,各自意味着不同的问题,要用不同的方式处理。
把这张表存成工作区里的 weekly-checklist.md,把示例关键词换成你自己的真实关键词。之后智能体可以重新加载它——定时运行干的就是这件事。
第 1 步 — 手动跑一次 headless,存到文件
排期之前,先手动完整跑一遍提示词集,确认输出确实落到文件里。创建快照文件夹,跑一条 headless 任务并重定向输出:
mkdir -p weekly-snapshots
dsh --profile headless "generate the weekly GEO snapshot for moonlightroasters.example and 3 target queries: for each query, paste the current AI answer, note whether we are mentioned or cited, and list any new sources that appeared. Output as a table. Keep the answer under 200 words." > weekly-snapshots/2026-08-14.md检查文件:你应该能看到一张这样的表(来自本系列基线运行的真实输出):
检查 | dsh 任务 | 预期输出 |
|---|---|---|
排名 |
| 关键词 → 位置 → URL → 与上周对比 |
AI 答案露面 |
| 平台 → 是否被引用 → 引用上下文 |
内容新鲜度 |
| 页面 → 最后修改时间 → 陈旧标记 → 需要行动 |
外链 |
| 域名 → 锚文本 → 状态(新增/丢失) |
如果文件是空的或运行报错,趁你在盯着,现在就修。首次运行常见问题:工作区路径跟 headless 期望的不一致(macOS 把 /tmp 解析为 /private/tmp——用真实路径),或 profile 名称不对(用 dsh --help 列 profile,或查 ~/.dsh/profiles/)。
一个关于 AI 答案检查的诚实说明:Harness 无法直接看到 ChatGPT 或 Perplexity 的界面内部。提示词让模型报告它知道的 AI 可见性情况——这是代理信号,不是真实爬取。作为周与周之间的趋势信号非常好用;但它不是地面真相。想要更硬的证据,就把你自己抓到的真实 AI 答案贴进提示词(GEO 文章里的引用缺口提示词就是这么干的)。
第 2 步 — 定时执行
现在把每周提示词集包进一个脚本,让调度器指向这个脚本。这样调度保持简单,逻辑集中在一个可编辑文件里。
在工作区创建 geo-weekly.sh:
#!/bin/bash
cd /path/to/your/workspace
dsh --profile headless "read weekly-checklist.md, then generate today's weekly SEO snapshot for the checks listed, output as tables" >> weekly-snapshots/$(date +%Y-%m-%d).md加上执行权限:chmod +x geo-weekly.sh。手动测一次——应该出现第二个带日期的文件。
Linux:cron
crontab -e加一行(每周五 9 点触发;cron 里 5 代表星期五):
0 9 * * 5 /path/to/your/workspace/geo-weekly.shmacOS:launchd
macOS 跑的是 launchd,不是 cron。创建 ~/Library/LaunchAgents/com.moonlight.geo-weekly.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.moonlight.geo-weekly</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/path/to/your/workspace/geo-weekly.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Weekday</key>
<integer>5</integer>
<key>Hour</key>
<integer>9</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>加载它:
launchctl load ~/Library/LaunchAgents/com.moonlight.geo-weekly.plist以后卸载:launchctl unload ~/Library/LaunchAgents/com.moonlight.geo-weekly.plist。
重要: 在笔记本上,周五 9 点的运行只有机器醒着才会发生。常开的台式机或服务器给你可靠的运行;笔记本只有醒着的时段有。这是硬件属性,不是工具的——把日子和时间调到你的机器真正开机的时候。
第 3 步 — 读每周 diff
快照文件会累积;价值在于差异。每周把新文件和上一份对比:
diff weekly-snapshots/2026-08-14.md weekly-snapshots/2026-08-21.md或者用 diff --side-by-side / 合并工具,视图更好看。值得行动的变化:
- 引用出现 — 你的 GEO 修复奏效了。记下你上周用了哪个修复;这就是证据。
- 引用丢失 — 模型更新或新对手出现。用当前答案重跑 GEO 文章里的引用缺口审计。
- 答案里出现新来源 — 一个你从没见过的品牌。这是未来一个月的覆盖目标。
- 排名掉 5 位以上 — 压倒一切的一项检查。在下一次定时运行前调查。
- 页面陈旧 — 用 SEO 工作流文章里的内容新鲜度分诊提示词。
把读 diff 的时间固定下来(比如周五 15 分钟)。如果仪式连续两周以上超过这个时间,需要收紧的是提示词集,不是调度。
应对破坏性变更
DeepSeek Harness 是开发者预览版。插件和 API 会随版本变化,上个月还能跑的提示词可能在一次更新后失败。三个便宜的习惯让自动化活着:
- 锁定版本。 仓库升版本、你的工作流出问题时,你可以退回去。刻意安装而不是一直吃
@latest:
npx @deepseek-ai/dsh@0.1.0-rc.6 --version- 保留上次的好输出。 在新运行成功之前,永远别删上一份快照。diff 仪式本来就要旧文件;如果一次运行失败,旧文件也是智能体过去行为的记录。
- 更新后测试。 升级 Harness 后,先手动跑一次脚本,再信任定时。两分钟,零意外。
维护
- 每周快照文件每周增长几百字节;想清理的话,删掉一年以上的就行。
- 每季度重新审视关键词集。清单文件是纯文本,更新调度就是编辑一个文件。
- 如果某项检查不再有用(比如外链从来不变化),砍掉它。一个你信任的监控仪式,好过一个你无视的全能仪式。
FAQ
这要花很多钱吗?每周四次短 headless 运行,token 成本不到一分钱。真正的成本是你读 diff 的 15 分钟——这就是格式纪律重要的原因。
需要一直开着网页 UI 吗?不需要。无头模式是独立进程,调度直接触发它。UI 和调度器互不干扰。
我的机器是笔记本,9 点不开机。怎么办?选一个笔记本真正开机的时段,或者把脚本放到一台常开的机器上(服务器、家里的 NAS、云 VM)。脚本是可移植的。
Harness 更新把提示词搞坏了怎么办?锁定版本、保留上次好输出(上面的习惯)。升级时先手动跑一遍,再信任调度。
它能自动完成整个 SEO 工作吗?能收集和分析,不能替你发布。每周快照告诉你什么变了、该怎么办。行动永远留给人——本来就该这样。
本系列其他文章
- DeepSeek Harness 是什么?93k 星开源智能体平台入门指南
- 如何安装 DeepSeek Harness 并运行第一个任务(2026 图文教程)
- DeepSeek Harness 做 SEO:7 个工作流 + 复制即用提示词
- DeepSeek Harness 做 GEO:如何让 ChatGPT、Perplexity 和 Google AI Overviews 引用你
- DeepSeek Harness 提示词库:35 条复制即用的 SEO & GEO 提示词(免费)
- DeepSeek Harness CLI 速查表 + 新手故障排查
作者:Camille Rhodes,Auspia 自动化工作流负责人,搭建过 30+ 增长系统。Camille 撰写定时 AI 工作流、监控系统,以及自己运行的系统。











