6 分•作者: adilhafeez•6 个月前
大家好,我是 Katanemo 的 Adil(和 Salman、Shuguang 和 Meiyu 一起)。
我们之前分享过这个项目的早期版本,名为 ArchGW。根据客户反馈,其范围从“LLM 路由和模型访问”扩展到更广泛的内容:面向智能体应用的交付基础设施。我们将其更名为 Plano,并相应地重新设计了架构。
问题所在
一线 AI 从业者会告诉你,调用 LLM 并不是最难的部分。真正困难的部分是快速、可靠地将智能体应用交付到生产环境,然后在不重写系统代码的情况下进行迭代。实际上,团队一直在重建那些存在于任何单个智能体核心逻辑之外的相同问题:
这包括模型灵活性——能够从大量 LLM 中提取并切换提供商,而无需重构提示或流处理程序。他们需要通过收集信号和跟踪来从生产中学习,从而了解需要修复的内容。他们需要一致的策略执行,以进行审核和防越狱,而不是在代码库中散布钩子。他们需要像移交和专业化这样的多智能体模式,而不会将他们的应用程序变成编排胶水。
这些问题在快速变化的框架和应用程序代码中被重建和维护,将产品逻辑与基础设施决策耦合在一起。这很脆弱,并将团队从核心产品工作转移到他们不应该拥有的管道工作上。
Plano 的作用
Plano 将核心交付问题从进程中移出,进入一个专为智能体设计的模块化代理和数据平面。它支持入站监听器(智能体编排、安全和审核钩子)、出站监听器(托管或基于 API 的 LLM 路由),或两者结合。
Plano 通过统一的、协议原生的、对框架友好的数据平面提供以下功能:
* 编排:智能体之间的低延迟路由和移交。添加或更改智能体,而无需修改应用程序代码,并在中心位置演进策略,而不是在各个服务中复制逻辑。
* 护栏和内存钩子:通过过滤器链一次性应用防越狱、内容策略和上下文工作流程(重写、检索、编辑)。这集中了治理,并确保了整个堆栈的一致行为。
* 模型灵活性:按模型名称、语义别名或基于偏好的策略进行路由。在不重构提示、工具调用或流处理程序的情况下,切换或添加模型。
* Agentic Signals™:零代码捕获每个智能体的行为信号、跟踪和指标,在一个地方呈现跟踪、令牌使用情况和学习信号。
目标是让应用程序代码专注于产品逻辑,而 Plano 负责交付机制。
关于架构的更多信息
Plano 有两个主要部分:
基于 Envoy 的数据平面。使用 Envoy 的 HTTP 连接管理与模型 API、服务和工具后端进行通信。我们没有构建单独的模型服务器——Envoy 已经处理了流、重试、超时和连接池。我们中的一些人是 Katanemo 的 Envoy 核心贡献者。
Brightstaff,一个用 Rust 编写的轻量级控制器。它检查提示和对话状态,决定调用哪些上游以及以什么顺序调用,并协调路由和回退。它使用小型 LLM(1-40 亿参数)进行受限路由和编排训练。这些模型不生成响应,并在失败时回退到静态策略。这些模型在此处开源:<https://huggingface.co/katanemo>
Plano 与您的应用程序服务器(云端、本地或本地开发)一起运行,不需要 GPU,并将 GPU 留在您的模型托管位置。
代码库 <https://github.com/katanemo/plano> + 文档 <https://docs.planoai.dev/>