图工程加编译器:全局调度AI智能体执行顺序


模型写代码快如闪电,看懂它写的全部代码怎么跑却慢如蜗牛。

AI编程让写代码的成本几乎归零,但每个小改动合在一起后,整个系统到底按什么顺序执行,触发了哪些回调,状态什么时候被谁改了,已经没人能讲清楚,图形工程把应用程序结构画成一张可见的图,编译器能把这张图变成确定性的总指挥。

代码写得对,顺序排得错

一个交易系统收到一笔订单,要先更新仓位,再算风险,最后发布结果,AI模型看到这个描述,刷刷写出一段代码,更新仓位,发布结果,算风险,每一行单独看都对,编译能过,单元测试也能过。

但真实业务要求风险算完才能发布结果,AI把最后两步顺序搞反了,代码里没有任何一个地方写着这个顺序约束,这个约束只在老员工的脑子里,或者藏在某份没人看的架构文档里。

更麻烦的是后面每一次改动,加个重试机制,加个异步队列,加个监控埋点,每个改动单独看都合理,合在一起之后,执行顺序变了好几次,状态可见性乱了,重入问题冒出来了,整个系统的执行模型变成一个没人设计过的混沌体。

一张图胜过千行回调

图工程的做法很简单,把组件画成节点,把依赖关系画成连线,交易进来先到仓位节点,仓位算完流到风险节点,风险算完流到策略节点,策略决策完才到路由节点。

这张图把隐形的控制流变成了看得见的结构,谁依赖谁,谁先谁后,一目了然,比起翻遍几十个回调函数和监听器去拼凑执行顺序,这张图省了太多脑细胞。

而且图工程天然适合AI应用,AI模型调用本身是概率性的,同一个输入可能给不同答案,但图可以规定模型只能在这个框里活动,输出必须经过格式校验,必须过策略检查,高风险操作必须等人批,概率部分被关在笼子里,确定性部分守住笼子门。

图画完了,谁来做总指挥

图把结构说清楚了,但图上只画了节点和连线,具体怎么跑还有很多事没说清楚,B和C谁先跑,B和C能不能同时跑,B没算出变化D还要不要跑,B跑的时候C又发了个事件怎么处理。

这些问题在图上看不见,但运行时必须有人回答,现有的图框架让开发者自己写路由逻辑,手工定义每条边什么时候激活,手工处理并发和回滚,手工管理生命周期。

这比藏在一堆回调里强多了,但还是多了一套要手写的代码,而且这套代码经常跟业务组件里的依赖关系重复,业务组件里Risk已经引用了Position,路由逻辑里还得再写一遍Risk依赖Position,两处维护,迟早对不上。

编译器接过指挥棒

Fluxtion换了个思路,组件用普通Java写,依赖关系用对象引用表达,注解标清楚谁处理什么事件,谁在什么条件下触发,剩下的事交给编译器。

编译器拿到完整的对象图,分析每个节点的输入输出,分析事件传播路径,分析变更传播条件,然后生成一个专门为这张图定制的调度器Java源码,这个源码里包含了事件的准确分发顺序,变更触发条件,生命周期钩子顺序,重入事件排队逻辑。

开发者只写本地行为和结构依赖,全局调度器由编译器生成,不劳你动手,也不劳AI动手。

生成的调度器到底强在哪

第一,结构真相只有一个地方存,改组件关系就是改图,编译器重新生成调度器,不会出现业务模型跟路由逻辑各说各话的情况。

第二,执行顺序是算出来的,不是运气撞出来的,同样的输入,同样的初始状态,同样的版本,每次跑的路径一模一样,调试的时候可以复现,出事的时候可以回放。

第三,生成的Java源码能直接看,能打断点,能git diff,不像黑盒运行时只能靠猜,图也能导出来做可视化审查,开发者同时拿到三份材料,组件声明,依赖图,执行代码,互相印证。

第四,审计和回放是结构自带的能力,不是后来硬贴的补丁,记录输入序列,灌回同一个版本的处理器,决策路径完全重现,金融、安全、合规场景直接省掉一堆手工取证工作。

第五,调度器是为这张图特制的,不是通用引擎硬套的,它知道哪些节点受哪个事件影响,哪些节点没变化就不用访问,跑得比通用引擎快是自然结果。

AI的活变少了,反而更可靠

有了编译器生成的调度器,AI模型的任务范围缩小了,它不用写路由层,不用写调度逻辑,不用写生命周期协调,不用写审计管道,它只需要生成业务组件,声明依赖关系,标注事件语义。

编译器从这些声明里推导出一致的调度器,AI犯错的面积小了,能藏bug的缝隙少了,如果AI把依赖关系标错了,那是一个明确的错误,一眼能看见,而不是藏在回调海洋里的暗礁。

这跟把概率模型关进确定性岛是一个道理,AI负责需要推理和创造的部分,编译器负责需要精确和稳定的部分,各自干各自擅长的活。

动态的部分继续动态,静态的部分交给编译器

有些图必须在运行时动态变化,新节点动态创建,新路径动态生成,人工审批插进来,外部工具调用结果不确定,这些场景通用图运行时仍然有用。

但还有大量图在编译时就完全确定了,业务流程图,审批流,数据处理管道,合规检查链,这些图不需要运行时动态改,它们需要的是稳定、快速、可审计、可回放。

动态部分继续用解释型图运行时,静态部分交给编译器生成特制调度器,两部分可以组合,动态工作流调用编译好的策略和控制图,编译好的控制图再调用底层运营系统。

该灵活的地方灵活,该死板的地方死板。

旧酒装新瓶,压力大不同

增量计算,编译期依赖注入,同步数据流语言,这些技术都不新,但AI生成代码把压力推到了新高度,以前写代码贵,花大力气手搓协调层是合理投入,现在AI三分钟吐一千行,协调层跟不上就是灾难。

图工程让结构可见,执行推断把协调变成编译器输出,开发者和AI的角色都变了,描述组件、规则和依赖关系,编译器把描述变成可以跑、可以查、可以回放的确定性机器。

AI帮我们设计机器,编译器帮我们启动机器。