afgo-dsh:把 AsterFire Go 科学计算平台接进 DSH 的工作流插件

前言

做 DSH(DeepSeek Harness)二次开发的人,常遇到一种尴尬:云端算力平台有自己的命令行工具,但那个工具要么是十几 MB 的 Go 二进制、要登录才能下载,要么跟 Agent 的技能约定完全没关系。你想在 DSH 里让 Agent 提交一个蛋白质设计任务、查一下分子动力学跑完没有、把结果从云盘拉下来,就得自己再去包一层。

afgo-dsh 是 YueSunhao 维护的一个 DSH 插件,落地的正是这层麻烦。它底层是一份纯 Python 标准库客户端,直接对着星使智算平台(AsterFire Go,sidereus-ai.com)的 REST 契约说话,同时以「DSH 插件」和「通用 Agent 技能」两种形态发布。下面按它的定位、能力、安装、用法和注意事项介绍一遍。

这是什么

一句话:afgo-dsh 把 AsterFire Go 的科学计算能力(蛋白质设计、分子动力学、生物信息学、DFT/量子化学等)包装成 DSH 可调用的工具集合,底层不依赖官方 CLI,也不需要 pip install 任何依赖。

仓库地址 https://github.com/YueSunhao/afgo-dsh,主语言是 Python,许可证 MIT,GitHub 星标为 0。README 中对自己的定位写得很清楚:一个仓库,两种用法,底层是同一份客户端。

它和官方 asterfire CLI 的关系需要先讲清。官方 CLI 本身就是这套 REST API 的包装层,其发布说明称全部 71 个业务操作统一通过 /open/v1 和 Asterfire-Token 调用;而 CLI 二进制挂在飞书文档附件里,需要登录才能下载。afg 直接对同一套契约说话,因此安装方式从「下载 9–10 MB 二进制、配 PATH」变成「git clone 即可」,依赖只有 Python 3.8+ 标准库。两者可以共存:afg 不会碰 ~/.asterfire/ 下的官方配置。

核心功能

插件暴露的能力分模块,README 给出的能力表如下。

账号:info(当前账号 / 档位 / 团队)、models(可用模型)。

工具箱:agents(71 个 Agent)、kits list(393 个 Kit)、kits schema(输入要求)。

云盘:cloud list / upload / download。

Agent 任务:tasks create / send / list / get / status / files / stop / rename / delete。

Kit 计算:kits submit(新任务)、kits run(挂在已有任务里)。

工作流:wf 全套,覆盖创建、校验、执行、状态、执行记录、谱系、节点输出/日志/重试/停止/输入、导入导出 YAML、模板市场。

开发者:dev 镜像与工具包,需要账号具备开发者权限。

兜底:raw <METHOD> <PATH> 直接打任意端点。

完整的 74 个操作、参数和请求体字段见仓库 reference/api.md,原始契约见 reference/openapi.json。

安装为 DSH 插件后,工具列表会多出五个原生工具:

工具 作用 主要 action
afg_platform 账号、模型、Agent / Kit 目录与输入 schema、健康检查 info models agents kits kit_schema health
afg_files 云盘上传 / 下载 / 列举 upload download list
afg_tasks Agent 任务与 Kit 提交、跟踪、取产物 create send get status files kit_submit kit_run …
afg_workflows 多步工作流定义、校验、执行、节点输出 create validate execute status node_outputs …
afg_raw 任意端点兜底 任意 METHOD + path

调用路径固定为三跳,没有中间服务:Agent 读 SKILL.md 决定调用 → 执行 scripts/run.sh 或 scripts/run.ps1,落到 scripts/afg.py → 以 Asterfire-Token 请求头 HTTPS 请求 sidereus-ai.com/api/open/v1/<path>。Base URL 默认 https://sidereus-ai.com/api,可用 --base-url 或 AFG_BASE_URL 改。认证只需一个请求头,没有 OAuth、cookie 或浏览器登录。响应信封恒为 {success, data},错误响应附带 status_code。

安装与启用

装成 DSH 插件有三条命令,按 README 原文照列:

# 从 GitHub 直装(现在就能用,已实测)
dsh plugin --profile desktop add github:YueSunhao/afgo-dsh

# 本地仓库(开发时)
dsh plugin --profile desktop add /path/to/afgo-dsh

# npm(发布后可用)
dsh plugin --profile desktop add afgo-dsh

装完必须重启 DSH,插件在进程内加载,不重启不会出现。

插件配置写在 cordis.patch.yml 的 insert 行里,~/.dsh/profiles/desktop/cordis.patch.yml 可覆盖:

- insert:
    - id: afgo
      name: afgo-dsh
      config:
        python: ""                                  # 留空自动探测;也可写绝对路径
        baseUrl: "https://sidereus-ai.com/api"
        token: ""                                   # 建议留空,用 ~/.afg/config.json
        timeoutMs: 120000

需要留意一点:令牌不要写进 token 字段,那会随 profile 的 package.json 落盘。正确的做法是放在 ~/.afg/config.json,或者用 AFG_TOKEN 环境变量。

如果你走的是按 Agent Skills 约定加载技能这条路,还有另一种装法,把仓库整个 clone 到技能目录。以 DSH 为例:

git clone https://github.com/YueSunhao/afgo-dsh ~/.dsh/skills/afg

DSH 会话内热加载;WorkBuddy 则需重启后在技能列表里生效。目录名建议就叫 afg,与 frontmatter 的 name 一致。

装好后用下面三步验证。第一步拿 API 令牌:登录 https://sidereus-ai.com,点用户头像 → API令牌 → 创建 → 复制完整令牌。第二步写配置文件 ~/.afg/config.json,Windows 上是 C:\Users\<你>\.afg\config.json,内容为 base_url 与 token。第三步运行验证命令:

python3 scripts/afg.py info

能返回 username、tier、workspaces 就说明通了。

典型用法

下面这组命令来自 README 的「跑第一个任务」示例,以 DSSP 这个 Kit 为例。

先看有什么 Kit,再看它需要什么输入:

python3 scripts/afg.py kits list --query dssp
python3 scripts/afg.py kits schema DSSP

提交任务,输入写成文件(README 给出的是 examples/kit-input-dssp.json):

python3 scripts/afg.py kits submit --kit DSSP --input @examples/kit-input-dssp.json

最后查产物、下载:

python3 scripts/afg.py tasks files <task_id>
python3 scripts/afg.py cloud download <文件id> -o report.md

工作流部分,afg_workflows 工具提供 create、validate、execute、status、node_outputs 等 action,把多步计算串成一条可校验、可重复执行的工作流,这正是插件分类落在「工作流」上的直接体现。

Windows 上有两个启动器会自动挑一个真能跑的 Python 3,因为 Windows 上 python3 常是应用商店的假壳子:

bash scripts/run.sh info                                        # macOS / Linux / Git Bash
powershell -ExecutionPolicy Bypass -File scripts\run.ps1 info   # Windows

适用场景与注意事项

适合这群人:要在 DSH 里驱动云端科学计算、希望技能可移植到 WorkBuddy / Claude Code 等 Agent 的开发者;以及不想装 Go 二进制、不想维护额外 Python 依赖的人。

有几个坑需要先看清楚。

分片上传暂不支持。 README 的对比表写明,官方 CLI 支持大文件分片上传,本项目暂不支持,归属到「已知限制」。如果你的输入结构文件很大,这条路走不通。

本地开发装目录会踩 peer 解析的坑。 dsh plugin add <目录> 会被 pnpm 装成 junction 或符号链接,而 Node 按真实路径解析 @deepseek-ai/dsh-tools,从 E:\... 往上找不到 profile 的 peer,会报 ERR_MODULE_NOT_FOUND。解决办法是用 tarball 装(npm pack 后 dsh plugin add ./afgo-dsh-1.2.0.tgz),或者走 github: / npm 这两条装实体目录的路。

插件以当前 DSH 进程的权限运行。 它能读写你的云盘、提交任务、管理文件,等同于你账号的权限范围。安装前应当通读仓库源码,尤其是 scripts/afg.py 与 cordis.patch.yml 注入的配置,并确认许可证(MIT)与你的分发方式兼容。这是社区插件,不是 DeepSeek / 幻方官方分发物。

插件仍在早期。 星标为 0,仓库创建于 2026-11-04,package.json 版本号是 1.2.0。能力表和端点数量(README 称 74 个端点全挂在 /openapi.json 上)仍在变化,使用前以仓库当前 reference/api.md 为准。

相关链接

插件目录页:https://www.skillhub.cn/plugins/YueSunhao/afgo-dsh

GitHub 仓库:https://github.com/YueSunhao/afgo-dsh

许可证:仓库根目录 LICENSE,MIT。

一句话收尾:afgo-dsh 的价值不在于它实现了什么新算法,而在于它把云端的科学计算调用收成了 DSH 里的五个工具和一个可移植技能,代价是限制明确、生态尚早。要不要用,取决于你能不能接受这两条前提。

羽毛球分组比赛记分
小程序二维码

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

小夜