Skip to content

Agent2Canoe v0.4.0 — 真实 CANoe 离线回放与 MCP 工程闭环

Latest

Choose a tag to compare

@suzike suzike released this 05 Aug 05:29

Agent2Canoe v0.4.0

v0.4.0 将 Agent2Canoe 从“具备 AI 安全治理能力的 CANoe 接口”推进到经过真实工程
验证的离线回放闭环。Codex、Claude Code 或其他 MCP 客户端现在可以从空白配置开始,
挂载数据库和离线源、运行测量、保存退出,并在重开后验证工程资产是否真正持久化。

发布亮点

  • 30 个策略动作、58 个 MCP 工具和 53 个业务 REST 路由;
  • create_configurationApplication.New 创建非模板工程并验证目标 CFG;
  • 显式附着和受控退出 CANoe,避免 MCP 连接到错误的自动化实例;
  • DBC/ARXML/XML 数据库列举、挂载及绝对路径读回;
  • ASC/BLF/LOG/MDF/MF4 离线源增删、配置模式切换及失败回滚;
  • 保存、退出、重开后的数据库、离线源、模式和保存状态硬断言;
  • MCP COM 后端使用固定 STA 工作线程和 Windows 命名互斥,降低跨进程争用;
  • 网络事务和直接 add_network 均拒绝抢占已有软件通道;
  • 真实验收脚本记录调用、状态、文件大小和 SHA-256,并输出 PowerShell 5.1 可读 JSON。

真实 CANoe 验证

验证环境为已许可的 CANoe 12.0.75 /pro,使用真实 EVBUS DBC 和 165 MB
Logging_T109NoTrigger.asc

场景 结果
从空白创建 AfterBlow_T109.cfg 成功,created_from_template=false
DBC 与 ASC 加载 路径读回成功
Offline 回放 启动成功并由 CANoe 自动停止
保存、退出、重开 配置路径、Offline 模式、数据库和离线源全部保持
正向 MCP 证据 31 次调用、5 次状态轮询,playback_completed=true
CAN1 抢占负向测试 INVALID_NETWORK_TRANSACTION,写前写后均为 CAN/CAN1
负向测试清理 通过 MCP 恢复原 AfterBlow_T109.cfg [Offline]

真实验证只证明上述 CANoe 版本、许可证、工程资产和桌面会话组合。其他 CANoe 版本、
硬件配置及工程类型仍应执行各自的实机回归;Mock 结果不能替代该结论。

升级提示

  • 升级安装包或源码后必须重启 MCP 进程,客户端才会刷新 58 个工具的 Schema;
  • 新建配置应先 list_networks,复用空白工程自带的 CAN1;
  • 若 CAN1 已属于 CAN,应把业务 DBC 挂载到该网络,不要再创建 EVBUS/CAN1
  • 所有数据库、离线源、模式、保存和退出操作仍需要参数绑定的单次确认令牌;
  • CANoe 12 COM 不提供 Graphics 窗口创建、曲线配置或 PNG 截图接口,本版不会用自绘图
    冒充 CANoe Graphics;需要该能力时应使用预配置工程或单独审计 GUI 自动化适配器。

质量门禁

门禁 发布结果
默认测试 410 passed,27 skipped
自动化维护子集 161 passed
Python CI 3.10、3.12、3.14
维护面 Ruff 通过
MkDocs strict 通过
wheel 与 sdist 通过
真实 CANoe 正向/负向 MCP 通过

27 个跳过项需要已许可 CANoe 并显式启用,不会在默认测试中修改本机工程。旧核心测试
仍存在历史 Ruff 债务,CI 继续门禁主动维护面;本版没有借发布进行无关全仓格式化。

发布资产

  • agent2canoe-0.4.0-py3-none-any.whl
  • agent2canoe-0.4.0.tar.gz
  • SHA256SUMS.txt

GitHub Release 工作流从 v0.4.0 标签对应源码重新构建 wheel 与 sdist,并生成同批产物
的 SHA-256 清单。可选 PyPI 发布仍由仓库变量和受保护环境显式控制。

后续路线

v0.5.x 将优先推进可签名证据包、工程模板、Measurement Setup 专用实机回归、官方
XL Driver 原生枚举与真实 VN 设备矩阵。当前限制和验收边界见
开发状态