前面几篇一直在处理单个 Agent 的输入和输出:
到了这里,问题会变成另一种样子。
在真实项目里,Agent 前后往往还会挂一些额外步骤。比如一条用户消息进来以后,程序可能先做这些事:
priority 字段这些步骤不一定都属于 Agent 本体,但它们又确实在同一条调用链上。
LCEL 处理的就是这种场景。
LCEL 是 LangChain Expression Language 的缩写。它不是另一个模型,也不是另一个 Agent API,而是一套把节点接成链路的写法。
节点这个词可以先记得很朴素一点:
只要一段东西能接收输入,再产出输出,它就可以是链上的一个节点。
比如:
上图里这几个方块不是按“类名百科”排出来的,而是在表示一条真实链路:
如果这些步骤都手写成一串 await,当然也能跑。但链路一长,代码就会越来越散。
LCEL 的作用,就是把这条链写成一个稳定的管线。