KsADK

运行时架构

KsADK 运行时把控制、执行与呈现拆成三个稳定边界:Agent Kernel 负责可信控制,Harness 与 PluginHost 负责装配和生命周期,Provider 负责框架原生执行。执行结果进入统一事件事实链,再投影到 API、Studio 与托管界面。

KsADK 总体技术架构

分层与主线

使用入口
  → Agent Kernel
  → PluginHost 装载插件组合
  → Harness 为 Activation 选择一个 Provider
  → Provider 原生执行
  → RuntimeEvent v2
  → SessionEvent 日志
  → API / Studio / 托管界面投影

共用能力不占据主执行链。上下文、工具、安全、MCP、Skill、沙箱、记忆和观测通过能力总线注入 Harness;Provider 仍然保留框架特定的线程、checkpoint 和事件语义。

核心包

Package责任
ksadk.kernel控制许可、准入、Inbox、lease、fencing、状态与恢复
ksadk.harnessHarness 配置、工具、沙箱、reasoner 与原生 RuntimeAdapter
ksadk.plugins插件契约、组合编译、解析、PluginHost、Provider 与子代理桥接
ksadk.eventsRuntimeEvent v2、身份、存储、reducer、回放与协议投影
ksadk.scheduler本地 Scheduler Lite、日历计算、任务存储与控制命令分发
ksadk.runtime跨 Runner、Harness、Codex 与 A2A 的运行控制接口
ksadk.serverFastAPI 应用、标准 API、本地 Studio 和协议入口
ksadk.conversationsturn 编排、输入规范化、会话写入和协议 payload
ksadk.sessions本地及可插拔的会话存储
ksadk.runners历史框架项目的 Runner 适配层

启动与入口

agentengine runagentengine web 和标准 API 最终进入同一运行时边界。

  1. CLI 或 Server 解析项目目录、环境变量与 agentengine.yaml
  2. 显式配置或检测逻辑确定 Runner、Harness 或插件化 Provider 路径。
  3. 应用装配 FastAPI 路由、生命周期、认证和会话入口。
  4. Agent Kernel 对需要可信控制的请求执行准入与状态保护。
  5. Harness 创建 Activation,绑定共用能力并选择 Provider。
  6. Provider 执行原生框架逻辑,事件进入统一事实链。

agentengine.yaml 应明确声明框架与入口点。检测失败属于项目装载问题,不应在导入用户代码后才表现为运行错误。

Agent Kernel:可信控制边界

Agent Kernel 不执行具体 Agent 逻辑。它把影响安全与一致性的控制语义集中到一个可验证边界。

能力约束
许可与准入未通过许可校验的控制命令不会进入执行路径
Inbox 与顺序控制命令先持久化,再由 Worker 有序领取
Lease 与 fencing过期持有者不能继续写入新的状态
并发与背压队列容量、重复命令和并行处理使用稳定错误语义
取消与恢复取消、恢复、交互回包与 checkpoint 目标显式分离
状态一致性运行状态、控制回执与事件写入共享写入保护

存储后端决定耐久等级:内存适合本地或单进程临时运行,SQLite 适合本地持久化,PostgreSQL 用于需要跨进程接管与事务 fencing 的托管运行时。配置为持久模式却缺少后端时应启动失败,不做静默降级。

Harness 与 Provider:执行边界

Harness 是稳定宿主,不是新的 Agent 框架。它统一控制入口、工具接入、会话连续性、上下文和事件出口,但不重写 Provider 的原生执行模型。

Harness / Host 负责Provider 负责
Activation 创建与关闭框架原生执行
插件图和能力绑定私有线程、checkpoint 或会话状态
权限准入与健康检查原生工具调用和事件语义
profile fencing 与原子切换能力矩阵中声明的 cancel、resume、checkpoint 行为
统一事件出口将执行结果映射为可适配的 Provider 事件

每个 Activation 只选择一个 Agent Provider。当前插件目录包含 Codex 原生 Provider、KsADK Harness Provider、DSH / Cordis Provider 与 SubagentProvider;它们通过同一宿主契约接入,但不假装拥有相同能力。

插件组合与生命周期

Studio 中可编辑的 Agent revision 先由组合编译器转换为不可变插件图。插件引用使用精确版本,能力声明绑定到明确的 Definition 和 slot,敏感配置只接受 secret reference。

  1. 组合编译器把 runtime、Session、Memory、Context、Renderer、MCP 与 Skill 绑定规范化。
  2. Resolver 生成锁定版本和摘要。
  3. PluginHost 执行解析、权限准入、stage 与健康检查。
  4. 候选图健康后原子切换;失败时保留旧图并清理候选副作用。
  5. 已建立的会话继续持有原 Provider 私有状态,关闭后再回收旧图。

这条生命周期保证“配置可切换”和“运行不被撕裂”同时成立。

共用能力总线

能力注入内容
上下文与提示历史压缩、提示拼装、快照和 contributor 输出
工具与安全工具目录、策略、审批、权限和 secret reference
MCP 与 Skill资源发现、物化后的插件能力和调用入口
沙箱与工作区隔离执行、文件访问和命令边界
记忆与知识Memory 与 KnowledgeBase 上下文
追踪与评测Trace、指标、事件关联和 Eval 数据

能力插件通过只读执行上下文交给 Provider。没有物化插件所有者的 MCP 或 Skill 绑定会在构建阶段拒绝,避免界面显示“已启用”但运行时实际不可用。

自动任务

Scheduler Lite 负责确定性日历计算、本地任务存储和到期分发。任务触发后仍通过 Agent Kernel 与 Harness 进入同一执行链,不创建第二套运行时。

组件责任
SchedulerEngine计算到期任务、维护 occurrence 与重试语义
SchedulerSQLiteStore持久化本地任务和调度状态
AgentControlSchedulerDispatcher把调度触发转换为 AgentControl 命令

事件事实链

ADK、LangGraph、Codex、A2A 与 Harness 事件由各自适配器转换为 RuntimeEvent(schema_version=2)。适配过程保留 source、scope、item 与 event 身份,避免按作者或文本做模糊去重。

阶段责任
框架事件适配保留 Provider 来源与原生 item 身份
RuntimeEvent v2表达 run、item、content、tool、interaction 与 error 事实
SessionEvent 日志持久化顺序、运行状态与恢复所需事实
Reducer 与回放按身份执行 append、replace、completed 和最终结果选择
协议投影生成 Responses、Chat、Studio、A2A 或托管界面所需视图

RuntimeEvent v2 是写入主路径。v1 只保留只读兼容投影;新的运行事件不再写入 v1。

会话与协议

每个 turn 在执行前构造稳定的调用上下文,包括 Agent、用户、Session、输入、附件、模型选项以及启用的记忆和知识。Provider 只读取公开上下文和能力绑定,不依赖 Server 私有全局状态。

Endpoint用途
POST /v1/responses首选标准调用协议
POST /v1/chat/completionsChat Completions 兼容入口
POST /agentengine/api/v1/RunAgentStudio action 风格调用
POST /run_sseADK Web 兼容执行路径
POST /agentengine/api/v1/CancelRun协作式取消
POST /agentengine/api/v1/ResumeRun按声明能力恢复运行

外部客户端优先使用 /v1/responses。Studio 和托管界面通过 SessionEvent 投影与续订接口获得一致视图。

平台边界

KsADK 运行时包含 SDK、CLI、Server、Kernel、Harness、插件宿主、Provider、事件与本地存储。Agent 注册、远端部署生命周期、网关治理、托管 Skill / Sandbox 服务和 OTLP 后端属于外部平台,通过明确契约连接。

公开文档不包含私有网关行为、内部集群路径、私有镜像仓库或客户特定运维流程。

本页导航