2026年8月18日
之前章节我们已经注册过监听器、注册过工具、也写过 ctx.effect()。 你有没有想过:一个插件究竟从什么时刻开始「运行」,又在什么时刻开始「卸载」? 本章节介绍 Cordis 插件模型与生命周期状态机,也就是 Fiber 状态机。 Fiber 是什么 每个被加载的插件都拥有一个 Fiber 作用域。 Fiber 可以理解成插件实例的执行单元,……
阅读全文
2026年8月18日
工具是 Agent 用来干活的函数,模型看到工具定义后决定调用。 本章节我们将用 defineTool 写出第一个工具 greet,并让模型真的调用它。 工具是什么 工具(tool)是一个描述清晰的函数,包含名称、说明、参数和输出格式。 模型在生成回复时,可以根据这些信息发起调用。 在 dsh 里,工具通过 ctx.tools.register 注册到工具注册表。 defineTool 的完……
阅读全文
2026年8月18日
前面几章节我们学会了用 defineTool 注册工具,也学会了用事件系统监听各种扩展点。 但现在有个疑问:模型发出一条工具调用之后,到工具真正执行、结果回到模型,中间到底走了哪些环节? 本章节我们将讲清楚 dsh 的「工具执行流水线」,以及如何用钩子插件实现权限门禁。 一句话:一次工具调用会按固定顺序经过多个环节……
阅读全文
2026年8月18日
上一章节讲了三角色的概念,这一篇我们将按照官方教程把它写成代码。 我们要实现一个叫 myCap 的能力:输入一段文本,输出全部大写,它小到一眼看懂,又完整覆盖 Definition、Provider、Consumer 三个包。 三步走:Service Definition(抽象类 + 类型)→ Service Provi……
阅读全文
2026年8月18日
上一章节创建了 hello-plugin 组合包,这一篇把它安装进一个 profile。 安装步骤在 DeepSeek Harness 组合包 bundle 与 profile:两个 manifest 的基础上进行,可先回看那篇的两个 manifest。 本章节我们将同时回答一个关键问题:多个组合包的配置叠加时,到底谁覆盖谁。 这由生效配置的加载顺序决定。 加载顺序:生效配置的分层……
阅读全文
2026年8月18日
本章节介绍三种安装方式:npm 一键安装、源码安装、Python SDK。 安装前准备 DeepSeek Harness 的运行时基于 Node.js,官方推荐的一键安装方式不需要任何额外依赖。 源码安装还需要 pnpm 与 Git。 Python SDK 方式需要 Python 3.10 及以上版本。 操作系统:Linux、macOS 或 Windows 均可 Python SDK 支持 Linux x64 / arm64 与 macOS 14+(ar……
阅读全文
2026年8月18日
之前我们以及学会了独立运行的插件,但多数插件要用别人的能力:工具注册表、LLM、Agent。 本章节我们将介绍如何声明依赖,以及框架如何保证依赖就绪后才执行 apply。 什么是服务 服务是一个插件向其他插件公开的命名能力。 在 Harness 中,tools、llm、agents 都是服务,它们挂载在 ctx 上……
阅读全文
2026年8月18日
本地安装已经跑通了,我们可以把插件分发给别人使用。 发布到注册表不是必须的,有三种途径:npm、tarball、Git。 三者对构建产物的要求完全不同,选错会在用户侧踩坑。 三种分发方式对比 官方文档给出三种分发方式,核心区别在于是否分发预构建产物。 方式 用户安装命令 安装到的是什么 是否需要……
阅读全文
2026年8月18日
上一篇 DeepSeek Harness 第一个插件 写好了 hello-plugin 的源码,接下来我们把它加载进 Web UI。 这里我们会用到两个东西:patch 覆盖层 cordis.yml 和 –patch 启动参数。 scratch-plugin 目录结构 之前我们创建了 scratch-plugin/src,现在再加一个 cordis.yml。 整个临时项目的结构如下: <span>scratch</span><span>-</span><span>plugin</span><span>/</span><span> </span><sp……
阅读全文
2026年8月18日
什么是 DeepSeek Harness? DeepSeek Harness 是一个用于运行和管理 AI 编码 Agent 的工具。它让你能够以可重复、可观测的方式执行任务,并跟踪每一步的耗时、Token 消耗和失败重试情况。对于想要深入理解 Agent 行为的开发者来说,Harness 提供了一个清晰的框架。 入门教程:用一个项目讲清楚 InfoQ 上的一篇极简教程(sig……
阅读全文