Agent2Canoe v0.4.0
v0.4.0 将 Agent2Canoe 从“具备 AI 安全治理能力的 CANoe 接口”推进到经过真实工程
验证的离线回放闭环。Codex、Claude Code 或其他 MCP 客户端现在可以从空白配置开始,
挂载数据库和离线源、运行测量、保存退出,并在重开后验证工程资产是否真正持久化。
发布亮点
- 30 个策略动作、58 个 MCP 工具和 53 个业务 REST 路由;
create_configuration从Application.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.whlagent2canoe-0.4.0.tar.gzSHA256SUMS.txt
GitHub Release 工作流从 v0.4.0 标签对应源码重新构建 wheel 与 sdist,并生成同批产物
的 SHA-256 清单。可选 PyPI 发布仍由仓库变量和受保护环境显式控制。
后续路线
v0.5.x 将优先推进可签名证据包、工程模板、Measurement Setup 专用实机回归、官方
XL Driver 原生枚举与真实 VN 设备矩阵。当前限制和验收边界见
开发状态。