前言¶
在 DeepSeek Harness(dsh)里跑 Agent 时,报告、仪表盘、图表或长文往往先落在工作区文件里。要把这些内容变成别人能打开的链接,常见做法是手动推到静态托管、或依赖各产品自带的「Artifacts / 站点」能力。若你希望链接由 Agent 写好就发、同一链接可原地更新,并把发布记录留在本地可追踪,就需要在 dsh 里接一套明确的发布工具。
下面介绍社区插件 dsh-gh-pages-artifacts(维护者 opdsh):它把 HTML 页面和 Markdown 文档发布到 GitHub Pages,并返回类似 https://you.github.io/dsh-artifacts/q3-report-k3x9ab/ 的可分享 URL。插件定位是在 dsh 内替代 Claude Artifacts 与 Codex 桌面版的 site 功能;当前 GitHub 仓库星标为 0,版本 0.1.1,许可证 MIT。
这是什么¶
dsh-gh-pages-artifacts 是 DeepSeek Harness 的联网类插件:Agent 通过一组 artifact_* 工具创建、列出、读回、更新和删除产物,内容托管在 GitHub Pages 上。分类上属于「联网工具」;目录页见 skillhub.cn,源码与文档在 GitHub。
DeepSeek Harness 的生态理念是「一切皆插件」;skillhub 等社区目录独立于 DeepSeek / 幻方,并非官方应用商店。安装前请自行查看源码与许可证,并记住插件以当前 dsh 进程权限运行。
核心功能¶
Agent 工具¶
| 工具 | 作用 | 需审批 |
|---|---|---|
artifact_publish |
从工作区 path 或内联 content 创建产物,或用 id 原地更新;Markdown 渲染为带浅/深色主题的页面,HTML 原样提供;资源放在 assets |
是 |
artifact_list |
按时间列出产物(id、标题、URL),可用 query 筛选 |
否 |
artifact_read |
分段读产物源码或其它文本文件 | 否 |
artifact_delete |
删除产物;id 不复用,旧链接不会指向新内容 | 是 |
artifact_status |
诊断 token、仓库、Pages 设置及部署是否上线 | 否 |
artifact_repository |
关联/取消关联仓库,或在 shared 与 per-artifact 策略间切换 | 否 |
插件还会注入简短系统提示,并 bundled artifact-pages 技能(可用 /artifact-pages 调用;~/.dsh/skills 或项目内同名技能可覆盖)。
仓库策略¶
shared(默认):所有产物在同一仓库下各占一目录,URL 形如https://<owner>.github.io/<repo>/<id>/。仓库来源优先级:运行时artifact_repository关联 → 配置项repository→owner/repo。per-artifact:每个新产物单独建库<owner>/<repoPrefix><id>(默认前缀artifact-),需具备创建仓库权限的 token。
可在插件设置、repoStrategy 或对话中切换策略;已有产物位置不变,更新/删除通过本地注册表定位。
界面与注册表¶
Web / Desktop 侧边栏 Artifacts 面板列出已发布页面(标题、链接、描述、仓库、更新时间),支持刷新以拉取其它机器上的发布记录,行内确认即可删除(无需再走 Agent 审批)。
本地注册表默认在 $DSH_HOME/gh-pages-artifacts/registry.json(可配置 registryDir),同目录的 index.html 提供可点击索引。可问 Agent「你发布过哪些内容?」或「给我看产物索引」。
环境要求¶
- DeepSeek Harness 0.2.0-rc.2 或更新,且仍在 0.2.x(Web、Desktop 或 CLI)。
- GitHub 账号,以及已启用 GitHub Pages 的仓库(推荐用插件自带的 setup 流程创建)。
- 细粒度 PAT:Contents: Read and write(必需),Pages: Read-only(推荐)。
per-artifact策略需要能创建仓库并配置 Pages 的更高权限 token。 - Node:^22.19.0 或 >=24.0.0(从源码安装构建时需要)。
安装与启用¶
1. 创建仓库并启用 Pages¶
请在终端自行执行(不要交给 Agent),并确保 GitHub CLI 已登录:
node bin/setup.mjs setup --author "Your Name <you@example.com>"
在插件仓库 checkout 目录中运行上述命令;它会在你的账号下创建公开仓库 dsh-artifacts(会先询问),创建 gh-pages 分支并启用 Pages。包发布到 npm 后,也可用 npx dsh-gh-pages-artifacts setup 完成同样步骤。
勿使用 <user>.github.io 个人站点仓库,以免与现有站点根目录冲突。
2. 配置 GitHub token¶
默认从环境变量 GH_PAGES_TOKEN 读取(配置项 tokenEnv 可改名)。不要把 token 粘贴进对话。 可选来源(优先级从高到低):
- 启动 dsh 前的环境变量:
export GH_PAGES_TOKEN=github_pat_... $DSH_HOME/.credentials.yaml(默认~/.dsh/.credentials.yaml,权限600,支持热重载):
version: 1
refs:
GH_PAGES_TOKEN: github_pat_...
- 启动目录或
$DSH_HOME的.env(需重启 dsh;来自项目.env时插件要求配置owner)
3. 安装插件¶
从最新 release 安装(推荐):
dsh plugin --profile web add https://github.com/opdsh/dsh-gh-pages-artifacts/releases/latest/download/dsh-gh-pages-artifacts.tgz
Desktop / Web 可在 插件 → 添加插件 填入同一 URL。安装后重启正在运行的 CLI profile。
从 GitHub 源码安装(安装时会本地构建,需在 profile 的 pnpm-workspace.yaml 的 allowBuilds 中按 dsh 提示放行):
dsh plugin --profile web add github:opdsh/dsh-gh-pages-artifacts
4. 可选配置¶
打开 插件 → GitHub Pages Artifacts,或在 profile 的 cordis.patch.yml 中配置,例如非默认仓库时:
- id: gh-pages-artifacts
config:
owner: your-login-or-org
repo: dsh-artifacts
可用 dsh --profile web --dump-config 查看合并后的配置。常见选项包括 repoStrategy、siteDir('' 或 docs,后者可避免根目录公开清单)、approval、noindex、blockSecrets 等,完整表见仓库 README。
典型用法¶
经过上面的步骤后,可以直接用自然语言驱动 Agent,例如:
- 「把这份 Q3 销售数据做成仪表盘页面并发布。」
- 「为这个仓库的架构写一页摘要并发布。」
- 「你发布过哪些内容?」「更新 id 为
q3-report-k3x9ab的那一页。」 - 若链接未生效或配置异常:「运行
artifact_status检查一下。」
发布成功后 Agent 会回复 Pages URL;同一 id 可多次 artifact_publish 更新,链接不变。Markdown 会转成静态页并保留 source.md;需要复杂交互时可让 Agent 发布 HTML。
适用场景与注意¶
适合谁: 需要在 dsh 里快速产出可分享报告、文档或小型可视化页,且已有或愿意使用 GitHub Pages 的开发者与团队。
公开性: 已发布产物对持有链接的人可见;GitHub Free 下托管仓库也需公开,删除后 git 历史仍可能保留旧版本。插件默认加 noindex、发布/删除前会审批(unless-full-access 下完全权限会话除外),并拦截隐藏文件与疑似凭据内容,但分享范围仍由你决定。
技术约束: 每次变更通过 Git Data API 做原子 commit,不 force-push;拒绝写入已有 Jekyll 站点(有 _config.yml 且无 .nojekyll)或受保护分支。Pages 通常约一分钟内更新,浏览器缓存可能最长约 10 分钟。
安全与权限: Agent 以你的 OS 用户身份运行;path / assets 限定在工作区内,但无法阻止 Agent 主动复制敏感数据到工作区或内联提交——审批提示与人工判断仍是最后一道关。同一 GitHub Pages 源下的 cookie / localStorage 在子路径间共享,敏感场景可考虑独立 org 或自定义域名(可设 baseUrl)。
结尾¶
dsh-gh-pages-artifacts 把「写页面 → 发布 → 固定链接 → 列表/更新/删除」收进 dsh 插件与侧边栏,适合把 Agent 产出直接变成 GitHub Pages 上的可分享 artifact。进一步了解请访问 SkillHub 目录页 与 GitHub 仓库 README(含中文 README.zh.md)。