DAG

DAG,Directed Acyclic Graph,有向无环图,一种简单的图结构。

A
B
C
D
E

DAG包含一系列的节点和有向边,从任一节点出发都不会形成回路。

DAG和工作流

我们可以通过DAG在工作流场景中来构建一个Graph。
在这里插入图片描述
工作流中的节点为一系列组件,例如HTTP请求,LLM、Agent等等,这些组件通过一系列边连接起来,组成一个DAG。由于DAG的特性,流程在正常情况下总会结束,但也因为DAG的无环特性,所以无法直接执行例如迭代、循环等有回流的流程,所以我们将这些带环的操作抽象成一个节点,在节点内部处理。在节点内部,也是一个完整的DAG,并可以多层嵌套。

DAG实现的工作流

我们使用dagrs来实现AI工作流,dagrs是一个国内团队发起并维护的一个DAG的rust实现,我们在次基础上做了一个改造,以失配工作流的场景。

值得注意的是,dagrs由消息驱动,使用channel来传递消息,所有节点在Graph启动时会同时运行,我们可以通过channel来监听这些节点的消息,消息到达后执行业务逻辑。

我们目前已经实现了一些基础节点,并会持续的添加更多的符合不同业务场景需要的节点。

在这里插入图片描述

工作流的其他实现方式

除了DAG外,使用链表结构也可实现工作流,使用链表的好处是可以惰性的启动节点,减少不表的消息传递,还可以直接执行带环逻辑,但是由于链表前后指针的问题,可能会导致实现起来比较复杂。

结语

我们通过Rust构建的AI知识库系统,集成了MCP、工作流以及即将实现的多Agent,正在面向企业提供试用,我们将致力于打造一个安全可靠的知识库平台,为企业降本增效。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐