Skip to main content
破坏性变更只会随新的带日期版本发布。 以下条目均为当前版本内的非破坏性变更,客户端应能容忍新端点、新的可选请求字段、新的响应字段与响应头、响应侧枚举新值。

2026-10-14

触发器
  • reuse_session 更新:更新保持 reuse_session 的触发器时,修改 agent_id、agent_version、environment_id 或 resources 现在返回 400 failed_precondition_error。此前这些修改会被接受,但不会作用到托管会话,该会话沿用创建时的配置。需要修改时,先将 session_mode 切换为 new_session,或新建触发器。
  • 平台发起的运行:平台为托管触发器发起的运行(例如梦境策略的活跃度检查)现在记录 context.type: "system",不再记录为归属触发器创建者的 manual 上下文。按 context.type 分支的客户端须接受 system。
会话事件流
  • 增量预览改为可选:会话与线程事件流默认不再包含 agent.delta 事件。需要继续接收增量预览时,设置新增的 include_deltas=true 查询参数;只消费完整事件的调用方不再接收增量流量。

2026-10-10

自托管 worker 停止
  • worker 停止:中断会话在取消完成后可以释放工作行,即使仍保留排队输入。租约释放后,显式 Continue 重新将工作入队。使用 user.interrupt 停止会话执行,使用工作行 stop 请求 worker 停止。
  • 停止完成:工作行 stop 不传 final_status 时进入 stopping;worker 取消工具、完成结果回写后提交 final_status: completed,仍忙碌的会话会被取消。空闲 worker 可以直接提交 completed,释放租约但不取消会话;活跃执行或新输入返回 409 failed_precondition_error。会话 work token 可以停止自己的工作行,REST 不接受 force 或 reason。
工具确认与自定义工具
  • 工具回复:always_ask 工具产生 agent.tool_use,等待 user.tool_confirmation。使用 type: custom 声明的工具产生 agent.custom_tool_use,由客户端执行并提交 user.custom_tool_result。两类回复均通过 data.event_id 指定请求,不传 session_thread_id,同一调用以首条有效回复为准。
  • 等待中的线程:requires_action 和 stop_reason.event_ids 标识待返回的确认与自定义工具结果。每个线程收到全部待返回回复后恢复执行,会话级列表汇总所有等待线程。子线程状态、请求和回复出现在会话事件流中,由顶层 session_thread_id 标识所属线程。

2026-10-09

  • MCP 工具在工具集与单个工具均未设置 load_mode 时改为按需加载:模型先获得名称,需要时再加载 schema。需要保留原加载行为时,设置 load_mode: eager,让 schema 随每次请求发送;不支持按需加载的模型仍使用 eager 加载。
  • default_toolset_20260901 中的 search_image_by_text 与 search_image_by_image 采用同一默认规则,其他内置工具仍为 eager。

2026-09-24

  • project 插件引用接受 version: "latest",每次唤醒时解析为采用版本。省略版本仍在写入时固定为最新发布版本。official 引用必须省略版本,任何显式值都返回 400 invalid_parameter_error。

2026-09-23

  • 提示词校验:创建和更新会话时,无效的 agent_overrides.system 模板返回 400 invalid_parameter_error。
  • 执行事件:新增 agent.model_started 和 agent.tool_started 事件,标记模型请求与工具执行的开始。流式调用在各自首个片段产生 agent.thinking_started 和 agent.message_started,非流式调用不产生这两个事件。可用 agent.model_started 到首个 agent.delta 计算 TTFT。
  • 配置通知:并发更新按提交顺序产生 session.updated,该事件不标识运行中的执行何时采用新配置。

2026-09-21

项目插件
  • 项目插件:POST /v1/plugins 和 POST /v1/plugins/{id}/versions 发布不超过 64 MiB 的 .zip 包,返回 201 与插件、版本和校验结果,两者均接受 Idempotency-Key。POST /v1/plugins/validate 只校验而不发布;不可发布的包返回 200 和 ok: false 的校验结果。
  • 插件版本与归档:GET /v1/plugins/{id}/versions 按语义版本从新到旧列出,GET /v1/plugins/{id}/versions/{version}/content 下载 application/zip。POST /v1/plugins/{id}/archive 返回 204,插件退出读取 API,项目内名称释放,已有精确版本引用继续有效。
  • 插件选择:GET /v1/plugins 接受 scope 为 official 或 project,省略返回两者,org 和 user 返回 400 invalid_parameter_error。Plugin 新增 scope、status 和 latest_version,version 仍表示配置写入时固定的版本。
  • 会话插件:创建和更新接受 agent_overrides.plugins,以与 skills 相同的三态语义替换冻结智能体的插件集合。official 条目省略 version,project 条目可以指定已发布版本。
OAuth 路由
  • MCPOAuthCredential 和 CreateVaultOAuthSession 接受 egress_environment_id,发现、动态客户端注册、令牌交换与后台刷新均经过该环境的代理。空字符串清除绑定;新建时省略表示不绑定,更新时省略保留已有绑定。

2026-09-20

  • 插件和技能响应新增用于展示的可选 categories,未分类时省略,声明的分类包括 finance。分类不改变智能体配置。GET /v1/plugins 和 GET /v1/skills 接受 category 过滤列表。

2026-09-19

  • 智能体与会话的 model.reasoning_effort 接受 max,它仍是所选模型可能忽略的提示。

2026-09-17

会话输入与配置
  • 输入容量:会话已有 50 条待处理输入时,新输入返回 400 failed_precondition_error。消费或撤回释放容量,Interrupt 和 Continue 仍可使用。
  • 会话覆盖:agent_overrides 在 mcp_servers、skills 之外新增 tools、model 和 system。roster 只能在创建时覆盖,PATCH 携带它返回 400 invalid_parameter_error。
  • 技能版本:省略版本在写入时冻结为当前版本,"latest" 在每次唤醒时解析,精确版本经过校验后固定使用。同一 skill_id 混用 "latest" 和精确版本返回 400 invalid_parameter_error。
  • 更新事件:session.updated 仅在实际变化时产生,只携带变更字段:生效智能体快照与覆盖文档,或 title。清空全部覆盖产生空 agent_overrides 对象,客户端可安全忽略不识别的事件。
触发器投递与暂停
  • 复用会话:定时和手动 reuse_session 运行跳过上次因执行错误停止的空闲会话(session_failed)和已满队列(session_queue_full)。同一会话连续 3 次因这两类原因跳过才暂停触发器,其他结果重置计数,已有消息和会话自身重试不受影响。
  • 触发器暂停:计划运行自动暂停活跃触发器时发送 trigger.paused webhook。通过 data.id 查询触发器的 paused_reason,普通跳过和手动操作不发送该 webhook。
契约修正与说明
  • 触发器错误:TriggerRun.error 和 PausedReason.error 使用 TriggerError,其仅供展示的 type 为开放字符串,包括 fire_failed、session_failed 和 overlap_in_flight。本次修正 schema 复用 ErrorType 的问题,线上负载不变。
  • 补充既有行为:中断保留待处理输入;触发器更新重新校验未修改的 initial_events;未配置子智能体名单的会话不提供编排工具;重复内置工具集只使用首份声明,不合并配置。请求与响应不变。

2026-09-15

  • 未知 JSON 字段:未声明成员现在返回 400 invalid_parameter_error,路径如 body.unknown_key,此前会被忽略。调用方应移除请求中的额外成员。
  • 时间过滤:智能体和会话列表接受 created_at_gt、created_at_gte、created_at_lt、created_at_lte 及对应 updated_at_* 参数。gt、lt 不含边界,gte、lte 包含边界。
  • 契约声明:OpenAPI 从 3.1.0 升级为 3.2.0;POST /v1/files 和 POST /v1/skills 的 multipart 文件部分采用无类型 schema 与通配编码的标准声明;事件流通过 itemSchema 声明各事件的 event 和 data;创建操作共用一份 Idempotency-Key 参数。线上格式与请求处理行为不变。

2026-09-14

  • 非 nullable 的可选请求字段显式传 null 现在返回 400 invalid_parameter_error,路径如 body.name 或 body.description,此前会被视为省略。省略字段表示不修改,清空时使用该字段说明中约定的空值。

2026-09-13

  • 请求校验现在执行 query、path、header 和 JSON 输入声明的类型、必填、范围、模式、枚举与组合约束。违例返回 400 invalid_parameter_error,校验路径带位置前缀与数组下标,如 body.mcp_servers[2].name、query.page_size。此前部分违例被接受,或在后续校验中使用较短路径与不同消息。调用方应按声明约束检查请求,并使用 error.type 与 param 判断错误,不匹配消息措辞。
  • 未声明的 Content-Type 现在返回 400 invalid_request_error,即使请求体可以解析。JSON 操作使用 application/json,上传使用 multipart/form-data。

2026-09-10

2026-09-09 预告的持久中断行为现已生效。
  • 中断:空闲会话现在接受中断,返回 202 和 control_epoch,而非 400。会话与活跃线程异步停止,响应与 user.interrupt 确认均不代表完成,需通过获取会话接口核对。可选令牌为 data.expected_control_epoch,过期值返回 409 conflict_error;会话仍处于中断状态时,重复中断不推进控制版本。
  • 继续:POST /v1/sessions/{id}/continue 返回 control_epoch,未中断会话保持不变,正在停止或已终止的会话返回 409 conflict_error。请求被接受不代表启动完成,需核对返回控制版本上的 continue_pending。
  • 排队输入:停止后发送的新输入在收尾完成后恢复执行,保留输入本身不会恢复会话,恢复后保持队列顺序。
  • 归档:运行中的子线程可以归档并取消,会话停止期间也允许操作。父会话未终止时,重复归档子线程返回 204。归档会话在停止期间返回 409 conflict_error,运行期间仍返回 400。

2026-09-09

本日公告持久中断契约,执行行为于 2026-09-10 生效。停止完成与恢复规则见该日记录。
  • 控制状态:线程新增 interrupted、control_epoch;会话新增 stopping、interrupted、control_epoch、continue_pending;事件可含 epoch 与 user.interrupt 确认。
  • 生命周期操作:契约新增无需请求体的 POST /v1/sessions/{id}/continue、空闲会话中断,以及停止后新输入恢复执行。可选的预期控制版本在过期时返回 409 conflict_error,省略则针对当前代次。子线程归档取消活跃执行;仍有生命周期任务或活跃线程时,删除会话返回 409 conflict_error。
  • 触发器输入:initial_events 和待处理事件接受可排队用户消息,不接受此 beta 中的中断命令。reuse_session 触发器会恢复已停止的会话。

2026-09-07

  • 字段错误:JSON 类型与校验失败使用 invalid_parameter_error 和字段路径,union 错误定位到 union 本身;请求级错误使用不带 param 的 invalid_request_error。本次修正此前分类错误或路径不完整的字段错误,缺少 user.message.data 和低于下限的 activity.min_changed_sessions 现在会被拒绝。
  • 不透明 ID:资源 ID 不再声明 pattern 约束。调用方应移除基于旧模式的校验,其范围未覆盖所有已签发 ID。
  • MCP 错误:SessionErrorType 新增 mcp_connection_failed 和 mcp_authentication_failed,用于初始连接或执行中途失败。凭据自动刷新并重试一次仍被拒绝时报告鉴权失败,其他刷新失败不作为会话错误。SessionErrorPayload.mcp_server_name 标识受影响的服务器,其他类型与旧事件不含该字段,应据此定位而不解析消息。
  • 官方环境:GET /v1/environments 新增 official_only,默认 false。

2026-09-06

  • listTriggers 接受 agent_id,按所属智能体过滤。

2026-09-05

  • listMemoryStores 和 listMemories 从按创建时间升序改为最新在前。依赖旧顺序的客户端需要调整处理逻辑。
  • GET /v1/agents 新增 official_only,默认 false。

2026-09-04

  • 仅更新契约声明:各操作声明可选的 kimi-api-version 请求头,线上仍要求 /v1/files* 之外携带,文件端点省略时采用兼容格式。事件流声明已有的 Cache-Control: no-cache、X-Accel-Buffering: no 响应头;共享 429 响应声明已有的 Retry-After,仅用于 rate_limit_reached_error。请求处理行为不变。

2026-09-03

  • batch 文件:向会话挂载 batch 文件返回 400 failed_precondition_error,而非 404 resource_not_found_error,仍不支持挂载。
  • MCP 请求头:智能体和会话的 McpServer 声明接受只写的 headers,用于非敏感连接请求头。更新时,省略或空请求头保留身份未变的服务器(name、type、URL)的原值;非空整体替换,空字符串值删除键,仅大小写不同的重名请求头会被拒绝。
  • 环境代理:EnvironmentProxy.route_all 将全部出站主机经代理转发,并允许空 hosts 列表。平台内部端点绕过代理;limited 下主机白名单不生效,可达性由代理决定。