1 · 概览与架构
KTH 是一套企业级 AGI 智能体平台,内核是 DeepSeek Harness(DSH)——一套「一切皆插件」的 Cordis 宿主。 本页讲清三件事:KTH 由什么组成、为什么不另起平台、以及你要写的插件落在哪一层。
KTH 是什么#
KTH 是面向企业场景的智能体平台:把「模型 → 智能体 → 工具/MCP/技能 → 工作流 → 应用 → 交付渠道 → 观测审计 → 回流微调」 这条链,用 DSH 的「一切皆插件」重新组装成四套平台。
- 内核不自研:运行时就是 DSH(
kth-runtime),KTH 不改宿主。 - 四套平台共用一条闭环:Apps 跑出的真实会话 → Gate 采集轨迹与用量 → Forge 做下一轮微调 → Studio 把新模型注册成路由。
- 每个产物都是插件,也都能被上一层引用为节点——这是「一切皆插件」的直接结果。
四套平台(一句话)
| 代号 | 平台 | 一句话 |
|---|---|---|
| KTH Studio | 智能体开发平台 | 新建智能体 / 多智能体 / 一键工作流;MCP、工具、插件、技能的注册与生成。 |
| KTH Forge | 大模型推理与微调平台 | 数据 → 选微调类型与模板 → Agent 编排微调 → 部署 → 评测 → 注册进 Studio。 |
| KTH Gate | 网关 · 审计 · 安全平台 | 全链轨迹;身份 / 权限 / 限流 / 路由 / 计费 / 内容管控。 |
| KTH Apps | 应用业务平台 | 画流程 → 生成前端 + 接口 + bus-<应用>-agents 插件 → 挂路由 → 多端发布。 |
四组件模型(硬约束)#
部署交付物只有四个组件:组件名 = 产物目录名 = tarball 包名前缀;层级来自插件库的目录前缀。 不要再引入 governance / channel / agent / model / marketplace 等层级。
| 组件 | 包名前缀 | 插件库目录前缀 | 内容 |
|---|---|---|---|
kth-runtime | — | — | DSH 运行时,唯一来源是 deepseek-harness。 |
kth-infra | kth-infra-* | infra-* | 基础设施:配置台账、数据库连接池、会话认证。 |
kth-base | kth-base-* | base-* | 基础能力:账号 / 角色 / 菜单 / 权限。 |
kth-bus | kth-bus-* | bus-* | 业务插件:具体应用(前台页面 + 后台配置 + 业务 API)。 |
包名前缀 = 层级 = 产物目录。看到 kth-bus-xxx 就知道它属于 kth-bus 组件、来自插件库的 bus-xxx/。
为什么不另起平台#
DSH 已经把这些能力做成了可复用的 seam(能力缝)。KTH 不重写它们,只做产品化: 一张配置台账、一套账号权限、一套共享库、一批业务插件。四平台本质上是这些 seam 的组合与管理界面。
| 平台要的能力 | DSH 原生 seam |
|---|---|
| 跑一个智能体 / 多智能体委派 | ctx.agents、ctx.subagents |
| 模型 provider 与路由 | ctx.llm(registerAdapter / stream) |
| 工具 / MCP / 技能 | ctx.tools、@deepseek-ai/dsh-mcp-client、ctx.skills |
| 凭据 | ctx.credentials |
| 工作流 / 定时 / Webhook | packages/workflow、packages/schedule、packages/webhook |
| 动态装卸插件 | ctx.loader、ctx.pluginManager |
| 可观测 / 身份 | packages/telemetry、packages/identity |
KTH 只补齐 DSH 不管的那部分(产品化四件套):
kth-base-permission + kth-infra-auth:账号、角色、菜单、会话。
kth-infra-configmanagement:运行期可调项走台账,读取顺序「台账 > 代码缺省」。
kth-infra-database-postgresql + 一批 kth-bus-*。
不引入第二套平台、不脱离 DSH;画布上每个节点类型都必须对应一个 DSH 运行时能力——平台不允许「无法落地」的节点。
本文档面向谁 · 读完能做什么#
要在 KTH 上开发的工程师:前端 / 全栈 / 后端不限,但需要能读 TypeScript、会用命令行与 Git。
- 在本地跑通 DSH 基座 + 一个业务插件。
- 看懂 patch 装配、访问路径、构建产物三件事。
- 照模板开发自己的业务插件并挂到
localhost:3080。
架构与数据流#
前端业务页面、后台配置页面都同源托管在宿主里,插件通过 DSH 的原生 seam 干活:
浏览器 / 多端
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
│ 业务前台 │ │ 配置后台 │ │ 平台首页 │
│ /bus-xx/ │ │ /bus-xx/admin/ │ │ / │
└───────┬────────┘ └───────┬────────┘ └───────┬────────┘
│ HTTP(同源 · localhost:3080)
▼ ▼ ▼
┌───────────────────────────────────────────────────────────────┐
│ DSH 宿主(webServer seam · 具名路由 + tapIndex) │
│ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ kth-bus-* 业务插件(自注册页面 + 业务 API) │ │
│ ├───────────────────────────────────────────────────────┤ │
│ │ kth-base-* 账号 · 角色 · 菜单 · 权限 │ │
│ │ kth-infra-* 会话认证 · 配置台账 · 数据库连接池 │ │
│ ├───────────────────────────────────────────────────────┤ │
│ │ DSH 原生 seam:ctx.agents · ctx.llm · ctx.tools │ │
│ │ ctx.skills · ctx.subagents · ctx.credentials │ │
│ │ packages/workflow · packages/schedule · telemetry │ │
│ └───────────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────────────┘
│ ▲
▼ │
配置台账(Git 外的运行期配置) 凭据 seam(值不入库)
术语表#
| 词 | 含义 |
|---|---|
| 插件 | DSH 的部署与运行单元(一行 cordis.patch.yml),也是平台里「可拖拉拽的节点」的底座。 |
| 智能体 | ctx.agents 里跑起来的一次会话实体;配置 = 模型 + 提示词 + 工具 + 技能 + MCP + 参数。 |
| 节点 | 工作流画布上的一个方框;每个节点背后都是一个 DSH 插件 / 服务调用。 |
| 能力包 | 「智能体 + 它的工具/MCP/技能 + 提示词」的打包产物,发布后即成为可复用节点。 |
| 台账 | 运行期可调的配置(配置中心 kth-infra-configmanagement);读取顺序「台账 > 插件代码缺省」。 |
| 四组件 | kth-runtime / kth-infra / kth-base / kth-bus——交付物只有这四个。 |