Skip to content

fix: 修复 v2.8.5 工具结果历史、文本动作解析、空预留输出上限及北向 OTel - #4328

Merged
jeffwu-1999 merged 17 commits into
mainfrom
hotfix/v2.8.5
Nov 13, 2026
Merged

jeffwu-1999 merged 17 commits into
mainfrom
hotfix/v2.8.5

Conversation

@JasonW404

@JasonW404 JasonW404 commented Nov 11, 2026 •

Copy link
Copy Markdown
Member

本 PR 修复 v2.8.5 中的工具结果历史渲染、CodeAgent 文本动作解析、空输出预留导致的隐式生成上限,以及北向服务 OTel 链路问题。VERSION 为 v2.8.5,源分支为 hotfix/v2.8.5,目标分支为 main。

修改范围:

  • 工具结果历史渲染与去重:恢复 v2.8.2 以 assistant 角色、只读已完成动作记录呈现历史的方式,使用真实工具调用、输入、执行结果及错误构建记录。对等价的标准输出和返回值去重,保留不同结果、日志中的重复行、False/空值、脱敏、上下文压缩、结果摘要及经授权的原始输出召回能力,避免模型自行描述的执行结果替代运行时证据。
  • CodeAgent 文本动作解析:支持大小写不敏感、有序的代码动作及普通 HTML/说明文字,协议分类器将 Markdown 引用示例视为数据。同一响应包含代码和候选最终答案时,保留普通流式输出,执行合法代码、将真实结果追加到上下文并继续 CodeAgent 循环。保留要求模型依据真实结果确认或修订候选答案的提示词,不增加 observer 流式拦截或额外的运行时答案确认阶段。
  • 空输出预留:有效 default_output_reserve_tokens 为空且未显式指定输出预算时,不再将内部兜底预留作为 max_tokens=4096 发给模型。内部仍保留用于输入容量、压缩阈值及上下文检查的规划预算;显式模型/Agent/请求预算、快照校验和有界溢出恢复保持生效。诊断信息区分内部规划预留与实际发送的输出上限。此项产品代码仅修改 openai_llm.py(新增 38 行、删除 13 行);含测试和资产说明共 7 个文件(新增 429 行、删除 18 行)。
  • 北向服务 OTel:开启 HTTP 埋点,将 W3C trace context 传递至 Runtime,并统一 Docker、Helm 监控配置。/nb/ 覆盖原有 /nb/v1/generate_title 路由,/agent/internal/northbound/ 覆盖 Runtime 内部调用;显式 URL 排除配置仍优先。

验证结果:

  • 历史渲染、输出协议及 OTel 验证批次(43b6a2bd9):1303 项产品单元测试、25 项测试基础设施单元测试通过;TPC-D3-001 的 35 项运行时检查、NB-OTEL-001 的 3 项真实模型/Phoenix 检查,以及新旧解析路径的 8 组容器历史验证通过。覆盖工具执行一次、真实结果进入后续模型请求、普通流式行为、跨服务 trace 父子关系、未授权请求及断连后的持久化运行继续完成。
  • 空输出预留验证批次(最新提交 72a308497):24 个独立模块共 901 项产品单元测试通过;8 个正式 D1 组件用例共 11 项检查通过,分别统计。19 项针对性回归覆盖空预留省略参数、显式预算、采样参数回退、实际流式响应、历史压缩、最终上下文容量检查、快照一致性及有界溢出恢复。
  • 正式组件验证通过真实容量解析器、预算计算器、Agent 配置、模型适配器和 OpenAI 客户端,以受控 HTTP transport 核对实际请求 JSON。修改前可复现隐式派发及采样回退仍发送 4096 的问题,修复后通过。
  • 正式测试资产校验、版权头检查及 git diff --check 通过。更新描述时,最新提交 72a308497 的 12 项 GitHub 检查全部通过,包括自动单元测试、已配置的 AMD64/ARM64 镜像构建、CodeQL 及变更覆盖率检查。

本机部署验证:

已用最新提交构建 AMD64 nexent/nexent:v2.8.5,更新 Config、Runtime、Northbound、MCP 四个服务。持久化挂载及原有网络连接保持一致,其余受检容器未重建;Config/Runtime/Northbound/Web 的 HTTP 检查均返回 200。镜像内 SDK 代码哈希与源码一致,部署后的 Runtime 内 19 项针对性回归全部通过。另通过真实模型执行一次不保存会话的发票技能创建,约 15 秒完成,正常生成技能正文和摘要且无错误事件;运行日志确认该模型请求未发送 max_tokens。

已知限制及范围边界:

  • 可选结构化输出配置下的回归问题暂不修复,常规文本 CodeAgent 创建路径未开启该配置。
  • 旧版兜底路径仍可能将完整最终答案中引用的字面量 <code> 误判为未完成动作,造成不必要的重试;前端复用答案位置时,后续答案可能显示在先前答案的位置。这些问题暂不处理。
  • 模型可能在普通文本 content 中输出 <||DSML|| calls> 等调用控制标记,偏离 Nexent 的 <code>...</code> 动作协议。关闭协议自动修复的旧版兜底路径可能将这类文本当作最终答案直接结束运行,其中的代码不会执行。该问题已在本机工作台会话中确认,本 PR 暂不修复,也不声明支持 DSML 调用格式;前述“合法代码正常执行”的验证不覆盖此类不受支持的格式。
  • 省略 max_tokens 后,实际输出上限由供应商决定;内部规划预留不保证实际生成长度。真实模型冒烟及受控组件测试不代表所有供应商兼容性验收。
  • 未重跑浏览器 D4 和全部功能清单,上述结果限于列明的验证边界,不代表完整浏览器或所有功能验收通过。
  • 此前导出的离线镜像包尚未针对最终变更重新导出。镜像归档、凭据和本机部署适配不包含在本 PR 中。
image image

@codecov

codecov Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.90164% with 5 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
sdk/nexent/core/agents/output_protocol.py 94.54% 1 Missing and 2 partials ⚠️
sdk/nexent/core/agents/core_agent.py 75.00% 1 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

@JasonW404 JasonW404 changed the title [WIP] Fix output protocol parsing and runtime execution history for v2.8.5 [WIP] Fix agent output history and Northbound tracing for v2.8.5 Nov 11, 2026
@JasonW404 JasonW404 changed the title [WIP] Fix agent output history and Northbound tracing for v2.8.5 [WIP] Fix CodeAgent tool-result history and output protocol Nov 12, 2026
JasonW404 and others added 4 commits November 12, 2026 14:22
)

* fix(observability): trace northbound requests through complete streaming responses

* test: align northbound monitoring environment precedence

* test: keep split northbound validation rooted in its checkout
@JasonW404 JasonW404 changed the title [WIP] Fix CodeAgent tool-result history and output protocol [WIP] Fix v2.8.5 history, output protocol and Northbound OTel Nov 13, 2026
@JasonW404 JasonW404 changed the title [WIP] Fix v2.8.5 history, output protocol and Northbound OTel fix: restore CodeAgent history and fix output protocol and Northbound OTel for v2.8.5 Nov 13, 2026
@JasonW404
JasonW404 marked this pull request as ready for review November 13, 2026 03:14
@JasonW404 JasonW404 changed the title fix: restore CodeAgent history and fix output protocol and Northbound OTel for v2.8.5 fix: correct v2.8.5 history, output protocol, output budgets and Northbound OTel Nov 13, 2026
@JasonW404 JasonW404 changed the title fix: correct v2.8.5 history, output protocol, output budgets and Northbound OTel fix: 修复 v2.8.5 工具结果历史、输出协议、空预留输出上限及北向 OTel Nov 13, 2026
@JasonW404 JasonW404 changed the title fix: 修复 v2.8.5 工具结果历史、输出协议、空预留输出上限及北向 OTel fix: 修复 v2.8.5 工具结果历史、文本动作解析、空预留输出上限及北向 OTel Nov 13, 2026
@jeffwu-1999
jeffwu-1999 merged commit 628b53d into main Nov 13, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants