Skip to content

Releases: suzike/Agent2Canoe

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

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 设备矩阵。当前限制和验收边界见
开发状态

Agent2Canoe v0.3.0 — AI 安全治理稳定版

Choose a tag to compare

@suzike suzike released this 05 Aug 00:26

Agent2Canoe v0.3.0

v0.3.0 是 Agent2Canoe 的首个完整 AI 安全治理稳定版。它把 Codex、Claude Code
和其他 MCP 客户端对 CANoe 的自然语言驱动,收敛为“发现、规划、确认、执行、回读、
审计”的可验证工程闭环。

发布亮点

  • 20 个服务端策略动作、46 个 MCP 工具和 53 个 REST 路由;
  • Provider 无关 LLM 规划契约、能力指纹、严格 Schema 和服务端复核;
  • 参数绑定、短时、单次确认令牌,替代布尔确认和客户端自报批准;
  • API Key 摘要、mTLS、五级角色、操作者及批准者/执行者审计;
  • SQLite 持久化、JSONL 镜像、幂等结果和 dry-run-first 恢复检查点;
  • 跨进程独占租约、FIFO 排队、过期接管和自动写操作门禁;
  • 可预览、冲突检测、回读和回滚的网络事务;
  • 环境基线、XL Driver 只读快照和硬件映射预览;
  • 隔离的 UDS SecurityAccess Provider 与 Seed/Key 全链路脱敏;
  • Measurement Setup 服务端托管导出和 SHA-256 产物证据;
  • 测试历史、Fisher/Wilson 统计、分层冲突、工程等效性和标准报告导出。

从 v0.3.0-dev.0 到稳定版

稳定版在初始预发布基础上新增或完善了只读硬件库存、环境漂移基线、多会话租约、
诊断安全访问、Measurement Setup 导出、测试历史持久化、保留策略、自包含 HTML 报告、
显著性分析、按台架/标签分层以及显式容差工程等效性判断。相对预发布累计增加超过
9000 行经过测试的实现与文档。

不兼容与升级提示

  • confirmed=trueconfirmed_step_ids 不再具有授权作用;必须迁移到确认令牌;
  • REST/MCP 默认启用 SQLite 持久化,部署方应明确数据库和可选 JSONL 镜像位置;
  • 多客户端共享 CANoe 时应使用同一个持久化数据库以获得跨进程租约;
  • 历史查询默认隐藏原始厂商 payload;只有显式 include_raw=true 才返回;
  • 测试等效性只在调用方预先给出 equivalence_margin_pp 时评估;
  • 更新代码或安装包后必须重启 Codex/Claude Code 的 MCP 进程,才能加载新工具 Schema。

验证

门禁 结果
默认测试 396 passed,27 skipped
自动化维护子集 147 passed
Python CI 3.10、3.12、3.14
维护面 Ruff 通过
MkDocs strict 通过
wheel 与 sdist 通过
CANoe 12.0.75 MCP 样本 打开、发现、测量启停与状态回读通过

27 个跳过项是需要真实 CANoe 许可和明确 opt-in 的集成测试,不会在默认测试中自动启动
或修改 CANoe。物理硬件写映射、具体 ECU 算法和有效日志源导出不在本次通用验证声明内。

发布资产

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

GitHub Release 工作流从 v0.3.0 标签对应源码重新构建两个包并生成校验清单;可选
PyPI 发布继续由仓库变量和受保护环境显式控制。

后续

v0.4.x 将优先推进测试证据包归档、可组合工程模板、官方 XL Driver 原生枚举与真实
硬件矩阵。完整状态和未关闭风险见
开发状态

Agent2Canoe v0.3.0-dev.0 — Safe LLM planning preview

Choose a tag to compare

@suzike suzike released this 30 Jul 10:35

Agent2Canoe v0.3.0-dev.0

这是 Agent2Canoe v0.3.0 集成开发线的首个预发布版本,面向 Codex、
Claude Code 和其他 MCP 客户端的安全 CANoe 自动化验证。

此版本是 Pre-release,不会替代 v0.2.0 稳定版的 Latest 状态。

核心新增

  • 增加供应商无关的 LLM 结构化规划适配器。
  • 增加 get_planning_contractplan_model_output MCP 工具。
  • 增加 GET /planning/contractPOST /plans/model REST 接口。
  • 使用能力快照 SHA-256 指纹绑定模型所见 CANoe 工程上下文。
  • 使用动作级 JSON Schema、参数白名单、输出大小与步骤数量限制约束模型。
  • 增加短时、单次、参数绑定的确认令牌,替代布尔确认。
  • 增加 SQLite 计划、审计、幂等结果和恢复检查点持久化。
  • 增加 API Key 摘要认证、mTLS 和五类角色权限。
  • 增加可预览、冲突检测、回读验证和补偿回滚的网络事务。
  • 增加 CANoe 版本 provider、兼容矩阵和逐分区运行时能力探针。

LLM 安全边界

模型只负责提出候选计划,不能直接访问 CANoe COM。服务端会拒绝:

  • 模型提交的步骤 ID、确认状态、令牌或凭据;
  • 不在 Schema 中的动作和参数;
  • 过期或来自其他会话的能力指纹;
  • Markdown 围栏、重复 JSON 字段、NaNInfinity
  • 模型臆造的信号、系统变量、诊断设备和测试模块;
  • 绕过专项协议的网络事务或恢复操作。

候选计划通过后仍需人工批准副作用步骤,并使用参数绑定令牌执行。

CANoe 12 实机证据

在 Windows x64、Vector CANoe 12.0.75 /pro 上通过 MCP 完成:

  • 打开 Vector Easy.cfg
  • 识别 CANoe 12.0.75legacy-pre-15.3 provider;
  • 发现 19 项能力、2 个网络、1 个数据库和 4 个信号;
  • 启动测量并回读 Running;
  • 停止测量并回读 Stopped。

CANoe 12 的 COM Quit() 偶尔仍会留下无窗口的 -Embedding 进程,该问题继续作为
P2 跟踪;无法唯一识别实例时 Agent2Canoe 不会自动强杀。

验证基线

  • 默认测试:334 passed,27 skipped。
  • Python 3.10 自动化子集:85 passed。
  • Python 3.14 自动化子集:85 passed。
  • Ruff 静态检查:通过。
  • MkDocs 严格构建:通过。
  • sdist、Wheel 构建、内容检查及隔离导入:通过。
  • maindevelop/v0.2.0 GitHub Actions 自动化和静态分析:通过。

安装包

Release 附带:

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

文件完整性以同一 Release 中的 SHA256SUMS.txt 为准。

升级提示

  • 这是开发预发布版;生产项目可继续固定 v0.2.0
  • Codex 和 Claude Code 更新代码后需要重启 MCP 会话,才能看到新增规划工具。
  • 自由自然语言任务应先读取规划契约,再提交模型候选。
  • confirmed=trueconfirmed_step_ids 不再提供授权,调用方必须迁移到确认令牌。
  • 物理 XL Driver 写映射仍保持关闭,仅提供前提审计。

Agent2Canoe v0.2.0 — AI Agent integration release

Choose a tag to compare

@suzike suzike released this 30 Jul 01:50

Agent2Canoe v0.2.0

这是项目完成独立品牌升级后的第一个 Agent2Canoe 集成版本,重点面向
Claude Code、Codex 及其他 AI 智能体驱动 CANoe 的工程场景。

主要新增

  • 建立 agent2canoe 公共 Python 门面、CLI、REST 服务和 MCP Server。
  • 增加运行时 AI 能力清单,让智能体先理解可用动作、约束与确认策略。
  • 增加网络列举、新增、移除和软件通道配置,并覆盖 Python、REST、MCP 与自然语言计划。
  • 增加可序列化测试结果快照,包括通过、失败、其他数量、通过率和报告路径。
  • 增加计划预览、能力校验、dry-run 和写操作显式确认机制。
  • 增加硬件通道映射只读审计,检查 Windows、进程位宽与 XL Driver DLL 前提。
  • 重构中文 README,加入原创场景图、架构图、执行闭环、能力矩阵和质量基线。

安全边界

物理硬件通道写映射在本版本中仍保持关闭。开放前必须满足:

  1. Vector XL Driver SDK 来源及再分发边界可审计。
  2. DLL 位宽、ABI、索引语义与错误恢复经过验证。
  3. 在真实 VN 硬件和目标 CANoe 版本上完成回归。

兼容性

  • 支持 Python 3.10 至 3.14。
  • 运行平台为 Windows。
  • 首选导入路径为 agent2canoe
  • py_canoe 暂作为旧脚本的内部兼容层保留。

验证基线

  • 默认测试:276 passed,27 skipped。
  • Python 3.10 自动化子集:27 passed。
  • Ruff 静态检查:通过。
  • MkDocs 严格构建:通过。
  • sdist、wheel 构建及隔离安装导入:通过。

真实 CANoe 集成测试需要有效的本机 CANoe 许可证,并需显式设置
AGENT2CANOE_RUN_INTEGRATION=1

安装包

本 Release 附带:

  • agent2canoe-0.2.0-py3-none-any.whl
  • agent2canoe-0.2.0.tar.gz

PyPI 发布默认关闭。仓库维护者完成 Agent2Canoe Trusted Publisher 配置后,
可设置仓库变量 PYPI_PUBLISH_ENABLED=true 单独启用。

V0.1.0 — AI-ready CANoe automation baseline

Choose a tag to compare

@suzike suzike released this 29 Jul 23:46

🚀 V0.1.0 — AI-ready baseline

This release establishes the current local development tree as the new public semantic-version baseline for py-canoe.

Highlights

  • Natural-language automation designed for Claude Code, Codex, and other MCP-compatible AI coding agents.
  • Guarded workflow: status → discovery → deterministic plan → validation → confirmation → execution → evidence.
  • Runtime discovery for CANoe networks, signals, variables, diagnostics, tests, and CAPL functions.
  • Dedicated-thread COM backend with session recovery, structured results, and observable events.
  • UDS workflows, test generation/orchestration, requirement traceability, signal analytics, and reports.
  • FastAPI REST/OpenAPI service, SSE event stream, and 12 MCP tools.
  • Deterministic Mock backend for development and CI without CANoe.
  • Original bilingual README artwork and practical Claude Code/Codex integration guide.

Install

uv sync --extra agent
uv run py-canoe-api --mock
uv run py-canoe-mcp --mock

Verification

  • 271 unit and automation tests passed.
  • Ruff, bytecode compilation, documentation build, wheel build, and source distribution build completed.
  • Real CANoe, licensed diagnostic targets, and vehicle hardware require environment-specific integration testing.

See CHANGELOG.md for the complete change record.