能力函数 API

配置与生成接口

接入方把能力函数传给工厂,工厂生成 ChatRuntimeAdapter。相同业务动作同名,但两层参数不同:Core 提供统一 input,Adapter 编码成 body 后调用接入函数;接入函数返回原始响应,Adapter 解码并向 Core 提交事实。

创建配置生成的 adapter 方法区别
runrun接入函数接收协议 body;adapter 方法接收统一 input 与既有 messages
resumeresume接入函数接收后端 eventId;adapter 方法接收 Core 保存的 from 游标
steersteer接入函数接收编码后的 body;adapter 方法接收追加 input
abortabort发起远端取消;等待事件或历史确认终态
regenerate / editregenerate / edit新 runId 承接回答,targetRunId 标识被重做的轮次
historyhistory接入函数返回 Response;adapter 方法返回 HistoryResult;cursor 可选
subscribeconnectsubscribe 建立原始事件流;connect 确保会话接通并处理复用、路由与缓冲
无start(ingress)绑定 Core 事实入口,返回解绑函数;普通接入方不实现

不需要自行实现 start 或持有 ingress;只有直接实现底层 ChatRuntimeAdapter 才会涉及它们。底层 run/regenerate/edit 返回 Promise<boolean>,resume 返回 Promise<void | boolean>,steer/abort 返回 Promise<boolean>。这些返回值不替代后端终态事实。

能力函数完整约定

普通能力回调不接收 signal。SDK 在释放运行时时取消 Response 的 reader,或调用异步迭代器的 return();自定义事件流必须在 return() 中移除监听并结束 pending next(),不要关闭其他会话共享的连接。回调返回前的请求超时由应用自己的网络客户端管理。资源释放不请求后端停止。

能力函数参数返回值
run(必填)sessionId, runId, body无 subscribe:StreamResult;有 subscribe:受理 Response
subscribesessionIdStreamResult;resolve 时监听和缓冲必须已经就绪
resumesessionId, runId, eventId;协议需要时含 body无 subscribe:StreamResult;有 subscribe:受理 Response
steersessionId, runId, body受理 Response
abortsessionId, runId;协议需要时含 body受理 Response
regenerate / editsessionId, runId, targetRunId, body与 run 相同
historysessionId, cursor?协议历史的 Response
type StreamEvent<Event> = { data: Event; eventId?: string };
type StreamResult<Event> = Response | AsyncIterable<StreamEvent<Event>>;

未提供的能力不挂到 adapter,UI 按有效能力显示执行操作。historyPaging 表示允许历史翻页,与独立方法无关;唯一 history 方法负责第一页与后续页,是否还有内容由 hasMore/cursor 决定。

HTTP 失败和抛错表示调用未完成;受理成功不等于执行完成。流关闭不能推断 completed。OpenAI 工具循环可以在同一 runId 下多次调用 run。

完整边界见公开 API 契约。