前言¶
DeepSeek Harness (DSH) 采用插件化架构,旨在将各种能力注入到智能体运行时中。对于需要管理自托管代码仓库的开发者来说,直接访问 Gitea 或 Forgejo 等实例通常需要额外的 REST API 封装。maxmilian/dsh-forge 插件正是为了解决这个问题而生,它为 DSH 提供了与 Gitea/Forgejo REST API 对接的工具集,让智能体可以直接读取仓库、Issue、Pull Request 以及 Actions 的上下文。
此插件由用户 maxmilian 维护,采用 MIT 许可证。
核心功能¶
该插件通过 REST API 扩展了 DSH 的能力,具体包括:
- 实例信息:检查配置的 Gitea 或 Forgejo 实例版本。
- 仓库与搜索:列出当前认证用户拥有的仓库;跨可见仓库搜索 Issue 和 Pull Request。
- Issue 与 PR:按仓库和索引读取单个 Issue 或 PR;读取 PR 的 Diff 和变更文件元数据。
- Actions 集成:列出仓库的 Actions 运行与作业,并读取作业的纯文本日志。
- 本地化:支持英文、繁体中文、简体中文和日文的运行时工具元数据本地化。
- 安全与限流:转发取消请求,强制执行请求超时和响应大小限制。
- 并行安全:v0.3 版本的工具被设计为只读,并确保安全地并行执行。
安装与启用¶
安装推荐使用 npm 包,命令如下:
dsh plugin --profile web add @maxhsu/dsh-forge
如果需要从本地检出安装,可以使用:
dsh plugin --profile web add .
从预构建的发布包安装:
dsh plugin --profile web add https://github.com/maxmilian/dsh-forge/releases/latest/download/dsh-forge.tgz
安装完成后,需要在配置文件中设置访问凭证。建议使用环境变量,避免将 Token 直接写入配置文件。
典型用法¶
在调用插件提供的工具前,需要配置环境变量 DSH_FORGE_URL 和 DSH_FORGE_TOKEN。
export DSH_FORGE_URL='https://code.example.com'
export DSH_FORGE_TOKEN='replace-with-a-read-only-token'
dsh --profile web
其中 DSH_FORGE_URL 可以包含子路径(例如 https://example.com/git),插件会自动在末尾追加 /api/v1。如果未配置 URL,调用工具时会返回可操作的配置错误,而不会阻止 DSH 配置文件的启动。
适用场景与注意¶
- 兼容性:DeepSeek Harness 处于开发者预览阶段。该插件已通过测试,兼容
@deepseek-ai/dsh-tools 0.1.7-rc.2。 - 操作模式:当前版本(v0.3)的所有工具均为只读操作,不会创建、更新、合并、重运行或删除远程资源。
- 数据限制:列表类型的端点会将
limit参数限制为 50,以保持模型上下文大小可控。 - 日志格式:Diff 和日志响应保持纯文本格式,以避免 JSON 转义带来的复杂性。
总结¶
maxmilian/dsh-forge 为 DeepSeek Harness 提供了管理自托管 Gitea 和 Forgejo 实例的标准化工具链。它通过 REST API 实现了从版本检查到 Actions 日志读取的完整闭环,适合需要在本地代码仓库中执行代码审查或自动化运维的智能体场景。