用只会调包?3处源码让你从调包到掌控,效率翻倍
95k加上 Stars,到 2026 年时分将展开彻底的重构工作, v1 版本的在吞吐量这一方面上提升至过去的 2.3 倍。
打开,敲下这几行代码:
from . = (llm,
) = agent.({"":
处于北京这个地方, 其天气呈现出怎样的一种状况呢?
})
代码跑了,结果对了。
可心里却有个声响在发问, agent.()当中究竟发生了啥, 大语言模型是怎样寻觅并调用我的函数的?
从“调包侠”进步成“框架贡献者”, 关键的分水岭, 就是有那种“能用可不懂”的这种状态。
(95k加上星星)是当下最为流行的LLM应用开发框架, 2026年已然全面步入v1.x稳定时代, 其中core已更新至1.5.4, 主包已达到1.3.14。
一、到底是什么?
核心定位并非是“达成AI能力”呀, 而是要为所有的AI能力去提供统一的接口呢 —— 不论底层究竟是怎样的情况, 上层代码都无需进行修改。
1.1 v1.0生态:四大组件
早已不是一个框架,而是一个完整生态:
1.2 v1.0核心变化
在2026年时, 已然进行的是完全的重新构建, 将重点放在智能体相互之间的交互逻辑方面, 去承担有着确定性的流程控制工作, 继而形成一种层次性的架构, 即有着稳定底座以及灵活上层的架构。
核心承诺:在v2.0到来之前,不会再引入破坏性的颠覆功能。
二、协议:让万物皆可组合
打开/base.py,你会发现整个最核心的类:
class (ABC,
Input,
具有可被调用特性的工作单元, 可进行批处理, 能够实现流式传输, 还可以进行组合。
Input,
是一个泛型抽象类——接受Input,产生。
在中,几乎所有组件都是:
因为所有东西都是,所以任何东西都可以和任何东西串联。
LCEL:Unix管道思想的复刻
链条等于, 竖线模型竖线, 等于链条对括号左大括号空字符串冒号什么是AI问号右大括号进行操作。
这行代码背后是三层契约:
LCEL已成为 v1中组合组件的唯一标准方式。
随意一种凭借这种样式搭建而成的链, 自然而然地为同步、异步、批处理以及流式传输提供支持。
三、核心源码拆解:3处关键位置
第1处:消息系统——从何而来?
消息系统位于//:
当LLM决定调用工具时,API直接返回结构化字段:
( ="", =
我不太明确你的具体需求, 你给到的内容看起来像是一段代码片段, 不太清楚你是想对这段内容进行重写还是有其他特定要求, 请你明确说明希望我做什么, 以便我能更准确地按要求改写。
关键之处在于认知取得突破, 所涉及的是由API直接返回得来的结构化数据 , 并非是从文本当中解析出来的。
第2处:工具系统——@tool装饰器
以一个从名为.tools的模块里的拥有一个名为tool的函数为例, 此函数接收一个字符串(表示城市名)作为参数, 返回另一个字符串, 来展开说, 它的作用旨在查询指定城市的天气时能够达成这样的结果, 即呈现出这样的格式, 具体来说, 就是该函数会返回形如"{city}今天晴, 25°C"这样的一个返回值。
@tool装饰器, 会自动从函数签名之中, 把工具名称提取出来, 还能抽取参数类型, 进而进行组装, 以形成格式的JSON。
第3处:源码——
底层存在着一张有向状态图, 它于model以及tools之间进行来回跳转。
text
┌─────────┐里存在着┌─────────┐, 其中│ model │依照某种流程───────→ │ tools │, 包含着│ 节点 │, 而│ 节点 │到了一定時候└─────────┘会逆向返回──────────────── └─────────┘, 直至│tools执行进度完结且不存在任何遗留情况才→ END。
源码位置://.py:
在这里只是对做了上层封装。
四、中间件:v1.0最重要的创新
中间件机制是 v1.0中最大的变化,没有之一。
它让Agent变得高度可定制,提升了可构建能力的上限。
4.1 内置中间件
4.2 使用示例
将其按要求格式改写如下: 代理相关的情况是, 其模型部分描述为负四到六, 而工具方面呈现出这样的状态!
,
, =
你的内容似乎不太完整或不太清晰, 它看起来不像是一个完整的、能正常理解结构的句子, 请补充完整准确的内容以便我按照要求进行改写。
"", "edit", ""
}}),
,)
4.3 自定义中间件钩子
v1 点 x 的 Agent, 达成了从“黑盒循环”至“可控管道”的重大转变, 并实现了质的飞跃。
五、版本演进与性能提升
5.1 关键版本里程碑
5.2 性能数据
在基准测试中,处理包含5个LLM调用的复杂工作流时:
5.3 v1.0核心变化
定位革命:从底层基座转变为的高级封装层
统一接口:所有组件实现协议
驱动:用取代
中间件机制:Agent高度可定制
包结构精简:主包依赖从20+缩减至8个
LCEL成为标准:声明式编排的唯一方式
写在最后
它不单单是一个能够被使用的AI应用框架, 更是一份涉及到怎样去构建生产级LLM应用系统的工程教科书。
从v0.3黑盒到v1.x透明的状态图;
从杂乱无章的API到统一的协议;
从无拦截的Agent到高度可定制的中间件机制——
追求的不是“快速拼凑”,而是“可控组装”。
缘由根本就在于此, 它于众多框架里得以脱颖而出, 使得开发者不但能够“用起来”, 而且更能够“控得住”。
2026年的那个, 其已然从所谓的, 那种“快速拼凑的原型工具”, 进化成了“可控组装的生产级框架”。v1.0所带来的, 关于API稳定性的承诺, 使得企业终于能够放心地, 把它部署到生产环境当中了。