PicGo × DeepSeek Harness:让 AI Agent 把本地文件变成链接

2026-08-14 | 作者:Molunerfinn

PicGo × DeepSeek Harness:让 AI Agent 把本地文件变成链接

你的 AI Agent 刚写了一份漂亮的 README。它画了图表、截了图,把 ![](./chart.png) 塞进了 Markdown。你 commit、push,然后——图片裂了。文件在你的磁盘上,别人谁也看不到。

今天我们发布 @picgo/dsh-plugin,也就是 DeepSeek Harness 的官方 PicGo 插件。它给你的 AI Agent 补上了一直缺少的一项能力:把本地文件变成公开链接。

它补上了什么缺口

DeepSeek Harness(dsh)是 DeepSeek 开源的 AI Agent 工作台,核心理念是一切皆插件。它已经能把图片给 AI Agent 看了——你粘贴一张截图,模型就能看到。这个方向是通的。

反方向却不通。它没有内置的方式把文件从你的磁盘放到互联网上。而这恰恰是 AI Agent 在写文档、发布报告、分享构建产物时需要的。

PicGo 解决这个问题已经很多年了。现在它直接接入你的 AI Agent。

真正不一样的地方

这是通用上传工具给不了你的:插件会使用你在 PicGo 里已经配置好的图床。

如果你三年前就把 GitHub 设成了图床,它就上传到 GitHub。如果你用的是 Amazon S3、腾讯云 COS、七牛、又拍云或 SM.MS,它就用那个。如果你装了第三方 PicGo 上传插件,那也能用——插件会从你的 PicGo 主目录加载插件。

不用重新配置,也不会多出一份凭证副本。你现有的配置,现在你的 AI Agent 也能用了。

从没用过 PicGo?那它默认使用 PicGo Cloud,登录一次就能开始用免费额度。

安装

dsh plugin --profile web add @picgo/dsh-plugin

然后照常启动:

dsh --profile web

就这样。下面是它在 DeepSeek Harness 里运行的样子:

在 DeepSeek Harness 中运行的 PicGo 插件

你能得到什么

1. picgo_upload 工具

每当有本地文件需要变成链接时,AI Agent 会自己调用它,不需要你开口。

返回结果是结构化数据,而不是一段文字,这点比听起来更重要。在 Harness 的 Code Mode 下,AI Agent 可以直接基于它写程序:

const { uploaded } = await tools.picgo_upload({ paths: ['/tmp/chart.png'] })
console.log(uploaded[0].imgUrl)

每个上传结果都带有 imgUrl、fileName、type(处理这次上传的上传器)、size、width 和 height。不用再从句子里解析 URL。

2. /picgo 命令

有时候你不想浪费一轮模型调用,只想要一个链接。

命令作用
/picgo上传剪贴板里的图片
/picgo <path>...上传一个或多个文件
/picgo status显示当前图床和登录状态
/picgo login [token]登录 PicGo Cloud
/picgo logout退出登录

这些命令直接运行——不花 token,也不会往上下文窗口里塞任何东西。

注意,剪贴板上传只能通过这个命令来触发。模型永远拿不到上传剪贴板的能力,因为它没法知道剪贴板里是什么。这个决定只能由你明确地做出。

3. 内置的 Skill

插件自带一个 Skill,教模型什么时候该上传——往文档里插截图是最主要的场景——以及同样重要的,什么时候不该上传:你指定了具体目的地时、你想要一份本地副本时、文件看起来敏感到需要先确认时。

首次运行

如果你从没配置过 PicGo,上传会走 PicGo Cloud,需要登录一次:

/picgo login

它会打开浏览器,完成后回报结果。已经在 PicGo Cloud 控制台拿到 token 了?那 /picgo login <token> 立刻就能登录。

这里有一个刻意的设计:模型永远不会替你执行这条命令。 没有 token 时,登录会阻塞等待浏览器回调——AI Agent 如果去执行,整个会话就会卡住。所以插件会让模型把操作说明转告给你,然后等你来做。

已经在用 GitHub、S3 或其他图床了?那上面这些都跟你无关。你现有的配置会原样使用,不涉及任何登录。

配置

每个字段都有可用的默认值。可以在你的 profile 的 cordis.patch.yml 里覆盖:

- id: picgo
  name: '@picgo/dsh-plugin'
  config:
    silent: true
    timeoutMs: 120000
字段默认值含义
configPath''PicGo 配置文件;为空时使用 ~/.picgo/config.json
silenttrue屏蔽 PicGo 的控制台输出和日志写入
timeoutMs120000单次上传的等待时长
registerSkilltrue注册内置的 picgo-upload Skill
registerCommandtrue注册 /picgo 命令
announceSignIntrue提示未登录的 PicGo Cloud 用户使用 /picgo login

有个坑值得提前知道:patch 会替换一行的整个 config,而不是按 key 合并,所以你想保留的每个字段都要重新写一遍。

关于公开链接

上传后的链接是公开可访问的。任何拿到 URL 的人都能打开,文件删除后也可能还会被缓存一段时间。对于要放进文档的截图和图片来说这没问题——而这也是它绝大多数时候的用途。

但如果是合同 PDF 或者含有内部数据的压缩包,上传之前请三思。内置的 Skill 会让模型在文件看起来敏感时先跟你确认,但最终的判断还是在你。

常见问题

问:用这个插件需要 PicGo 账号吗?

答:只有把 PicGo Cloud 当图床时才需要。如果你已经在 PicGo 里配置了 GitHub、S3、腾讯云 COS、七牛或其他任何图床,插件会直接使用它,不涉及任何登录。

问:我装的第三方 PicGo 上传插件能用吗?

答:能。插件会从你的 PicGo 主目录加载上传器,所以你为命令行或桌面端安装的任何插件,你的 AI Agent 都能用。

问:AI Agent 能上传我剪贴板里的任何东西吗?

答:不能,这是有意为之。剪贴板上传只能通过你自己输入的 /picgo 命令触发,模型没有任何办法触发它。

问:需要什么版本的 Node.js?

答:Node ^22.19.0 || >=24.0.0,和 DeepSeek Harness 自身的要求一致。

问:它能和 PicGo 桌面端一起用吗?

答:它读取的是桌面端写入的同一个 ~/.picgo/config.json,所以图床和设置是共享的。插件在进程内完成上传,不需要桌面端保持运行。

试试看

dsh plugin --profile web add @picgo/dsh-plugin

源码在 GitHub 上,包发布在 npm。DeepSeek Harness 目前是开发者预览版,迭代很快——如果某个版本把东西搞坏了,请提个 issue。

如果你用的是其他 AI Agent,PicGo 也提供了 Agent Skills,适用于任何支持 Skills 格式的工具。

上传愉快!