免授权费 · 无常驻进程 · 为 agent 而生

给 agent 一条诚实的 ECU 烧录线。

汽车刷写的现状是 vFlash:按席位收费、Windows GUI、agent 开不动的 COM API。AI 时代,烧录知识的编写成本坍塌了——agent 能照着 OEM 规格书起草烧录计划,剩下的价值在闭环:生成计划 → 校验指纹 → 带 保护地烧录 → 收集失败证据 → 重新生成。FlashPilot 就是为这个闭环而生。

为什么做 FlashPilot

💰

授权费是旧时代的税

刷写是工程活,不该按席位订阅。FlashPilot 免授权费,从开发机到 CI 到产线,想跑多少跑多少。

🤖

GUI 和 COM API,agent 开不动

上一代工具的自动化入口是 COM API 和 GUI 宏——agent 的母语是命令行。无常驻进程的 CLI、确定性 JSON 输出,一条命令跑完整条烧录链。

🔍

失败不该是一句报错

刷写失败时,传统工具让人开厂商工具翻日志。FlashPilot 落下有界、带指纹、可审计的失败证据,agent 自己诊断、自己重试,不用人插手。

设计原则

声明式烧录计划

一份 JSON 描述一个 ECU:段(内联 / BIN / Intel HEX / S-record)、会话、安全访问、擦写校验例程、时序、恢复策略、电源守卫、期望指纹——可版本化、可评审、可复用。

指纹门禁,先验证后动手

expectedFingerprint 把镜像钉死在计划里;指纹不对,在任何驱动调用之前就拒绝——刷错的成本是一次变砖,不是一次重跑。

安全默认

编程电源守卫轮询电流,越界即断电中止;破坏性计划明说;失败恢复 retry / resetAndRetry 二选一。默认就是安全的,而不是配置出来的。

退出码永不撒谎

0 成功 · 1 断言失败 · 2 用法错误 · 3 未找到 · 4 传输错误;每条命令打印一个 JSON 对象——camelCase、字段名稳定、错误文本有界,不用抓屏去猜。

三步开始

1

装上引擎

Racket 包一行装好,引擎与 CLI 即在本地可用。

git clone https://github.com/turinglambdaai/flashpilot.git cd flashpilot raco pkg install --auto --name flashpilot --link racket
2

内置模拟 ECU 空跑闭环

默认传输是内置模拟 ECU——真实的 ISO-TP/UDS 栈,全程无需硬件,CI 里也能跑完整烧录闭环。

racket app/cli.rkt flash examples/plan.sim.json
3

换上真车

改传输参数指向真实 ECU:SocketCAN(Linux)、PEAK PCAN(Windows)或 DoIP 以太网。

racket app/cli.rkt flash plan.doip.json --transport doip --host 192.168.0.1

下载

路线图