dsh-agent-sdk

by salathleizhang

0 开发与运行时github收录于 08-23

基于 DeepSeek Harness 的可嵌入、插件化编码 agent 运行时

Embeddable, plugin-based coding-agent runtime built on DeepSeek Harness

安装

dsh plugin --profile web add github:salathleizhang/dsh-agent-sdk

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

DSH Agent SDK 是一个可嵌入、插件化的 coding-agent runtime。它在公开发布的 DeepSeek Harness 包之上提供精简的 TypeScript API,同时保留 Cordis 上下文供可信扩展使用。

默认 runtime 构成完整可运行闭环:DeepSeek 模型路由、持久会话事件、沙箱 Bash、文件读取/写入/编辑、glob、grep、取消、审批和确定性资源释放。Skill、Goal、Job、浏览器工具、Subagent 和 UI 集成不会以空壳方式注册;应用应在 provider、consumer、policy 和生命周期都完整时再添加对应能力。

环境要求

  • Node.js ^22.19.0 或 >=24.0.0
  • 默认 DeepSeek adapter 需要 DEEPSEEK_API_KEY

安装

npm install dsh-agent-sdk

单次调用

import { query } from 'dsh-agent-sdk'

for await (const item of query({
  cwd: process.cwd(),
  prompt: '找出失败的测试并修复。',
})) {
  if (item.type === 'session_event') {
    console.log(item.event.type)
  } else {
    console.log(item.result.text)
  }
}

query() 独占一个新 runtime 和 agent。提前退出迭代器会取消正在进行的工作,并释放两者。

复用 runtime

import { createRuntime } from 'dsh-agent-sdk'

const runtime = await createRuntime()
try {
  const agent = await runtime.createAgent({ cwd: process.cwd() })
  console.log((await agent.prompt('检查这个项目。')).text)
  console.log((await agent.prompt('实现最小且安全的修复。')).text)
  await agent.close()
} finally {
  await runtime.close()
}

一个可复用 agent 同一时间只接受一个 query。

安全和审批

默认 workspace-write 模式将文件与进程操作限制在 codingTools.workspaceRoot,其默认值是 process.cwd()。模型申请单次无限制执行时,如果宿主没有提供 codingTools.onApproval,请求会被拒绝。

使用 codingTools: false 可移除六个内置 coding 工具;使用 spine.toolBash: false 仅移除 Bash。

插件和自定义工具

runtimeSetup 在内置组合加载后收到进程级 Cordis 上下文。createAgent({ setup }) 在 agent 发布前收到 agent 级上下文。两处回调注册的插件和 effect 会随所属 runtime 或 agent 一起释放。

事件流先输出会话日志中已提交的原始事件,最后输出一个 result。消费端应依据 item.type 分支处理,并为未来新增的 SessionEvent 类型制定自己的兼容策略。

开发

npm install
npm run check

组合和生命周期规则见 docs/architecture.md。

许可证

MIT

原始 README: https://github.com/salathleizhang/dsh-agent-sdk/blob/main/README.zh-CN.md ↗