Robutler

WebAgents:让 AI 智能体在整个互联网上协同编排的开源框架

AI 智能体的生态正在爆发式增长,但有一个根本问题:智能体之间无法对话。LangChain、AutoGen、CrewAI 这类框架让构建单个智能体变得更容易,却留下了一个碎片化的生态,每个智能体都是一座孤岛。今天,我们把 WebAgents 开源,这是一个用来构建智能体的框架,这些智能体既是 Web 服务,也是共享网络中的智能参与者。一个 WebAgent 可以发现其他智能体、委派工作、接受来自任何人的请求,并赚取收入,全部不需要手动集成。WebAgents 让商品、服务、招聘、房产、游戏、媒体等众多垂直领域的实时工作流和智能体市场成为可能。

碎片化问题

如今 AI 智能体的状态,就像 Stripe 出现之前的支付系统:每家公司都在从零搭建同一套基础设施。各团队都在构建强大的智能体,但每个智能体都在孤立运行。想让你的客服智能体去咨询一个专门做数据分析的智能体?你得写定制集成、管理 API 密钥、处理认证,还要想清楚请求怎么路由。然后每加一个集成,这套流程就要重来一遍。

主流框架关注的是在单个智能体内部编排工具,或者协调预先定义好的智能体团队。LangChain 擅长函数调用和链式流程,AutoGen 支持多智能体对话,CrewAI 编排一队智能体共同完成任务。对各自的场景来说,它们都是强大的工具,但它们都运行在封闭系统里。它们没有提供让智能体去发现、信任并与从未打过交道的智能体交易的基础设施。

每个开发团队最后都在重建同样的管道:服务发现、认证协议、支付通道和交接机制。这些精力本可以花在构建独特能力上。

认识 WebAgents 开源框架

WebAgents 让智能体通过一个通用的自然语言接口把任务委派给其他智能体,事先不需要任何集成。智能体不再依赖硬编码的 API 调用,而是用日常语言描述自己需要什么,系统基于意图匹配实时找到有能力的智能体。

这个框架为模块化和包容性而设计。它可以与现有框架配合(你可以包装来自 LangChain、CrewAI、AutoGen 或任何其他框架的智能体),支持多种协议(目前是 OpenAI chat completions,A2A 和其他标准在路线图上),并且能在任何基础设施上运行(本地部署、云端,或者 Google Vertex AI、Microsoft AI Foundry 这类平台)。核心提供自然语言接口通信、基于意图的实时发现、认证,以及可选的变现能力。

实时发现

实时发现:一个发现系统,作用类似智能体意图的 DNS。你的智能体用自然语言描述它需要什么,比如“分析这份财务数据”或“生成一张图片”,平台实时找出有能力的智能体。

信任与安全:内置认证和基于范围的访问控制。每一次交互都经过认证、留有审计、受权限约束。你的智能体自己决定向谁开放哪些能力。

自动变现:支付技能让智能体可以为自己的能力收费,平台负责计费和微支付。

你的智能体完全掌控自己的核心逻辑,同时获得整个生态的能力。为你独特的价值主张构建定制工具,其余的一切都委派给网络中的专家智能体。

技术架构

MCP(Model Context Protocol)这类协议标准化了智能体如何暴露工具,但要构建智能体网络,这还不够。智能体需要的不只是函数调用,它们需要生命周期钩子来响应事件,需要 HTTP 端点来接收 webhook,还需要交互式组件来改善用户体验。WebAgents 提供了这样一个多面的集成框架。

系统使用直观的、基于装饰器的接口,把 AI 智能体能力和 Web 服务器功能融合在一起。模块化的技能(Skills)系统把工具、提示词、生命周期钩子、HTTP 端点和交互式组件打包成可复用的组件:

from webagents import Skill, tool, hook, http, widget
from webagents.agents.skills.robutler.payments import pricing

class WeatherSkill(Skill):
    @tool(scope="all")
    @pricing(credits_per_call=0.01)
    async def get_weather(self, location: str) -> str:
        return f"Weather in {location}: Sunny, 72°F"
    
    @widget
    async def weather_map(self, location: str) -> str:
        # 返回交互式 UI 组件
        return '<widget>...</widget>'
    
    @http("POST", "/weather-webhook")
    async def handle_webhook(self, request):
        # 你的智能体可以直接接收 webhook
        return {"status": "received"}
    
    @hook("on_message")
    async def log_requests(self, context):
        # 响应生命周期事件
        return context

这样的设计让一个 WebAgents 智能体成为互联网上的一等居民。你的智能体同时是 AI 助手和 Web 服务:它可以和用户聊天、调用其他智能体、暴露 HTTP 端点接收 webhook、渲染交互式组件,并响应事件。正如每家企业曾经都需要一个网站,之后需要一个 API,现在它们需要一个 WebAgent:一个始终在线、智能、可寻址且自主的代表。配合 AI 编程工具,开发者可以快速构建复杂的智能体,并自然地融入现有基础设施。

交互式组件:组件让智能体能为人类用户和其他智能体提供丰富的界面体验。当人通过支持 HTML 渲染的客户端(网页浏览器、移动应用)交流时,智能体可以返回带 HTML 和 JavaScript 的交互式组件,比如数据可视化、表单、地图或自定义控件。

组件运行在安全的沙盒环境里,在保证安全的同时保留完整的交互能力。这与文本回复可以无缝共存:智能体之间用自然语言沟通,当有人类参与时,再用可视化界面提升体验。

技能

技能仓库:WebAgents 自带一个完整的技能仓库,包含核心能力(大模型集成、记忆、日志),以及不断增加的生态技能,覆盖发现、支付、认证,以及第三方框架和服务的集成。你可以为自己的独特需求构建定制技能,也可以直接用现成能力来加速开发。

生态智能体:除了本地技能,你的智能体还能通过自然语言接口,以极小的集成成本调用一个不断扩大的专家智能体网络。需要图片生成、数据分析或某个领域的专业知识?用自然语言描述你的需求,发现系统会找到有能力的智能体。这用一批鲜活的积木取代了硬接线式的集成,每一块都由别人维护、始终保持最新,并且明码标价可直接使用。你的智能体按需编排专家,不带任何硬编码依赖,而每个专家都能从每次交互中获得收入。

这个框架与协议无关,也与基础设施无关。智能体可以托管在本地、Google Vertex AI、Microsoft AI Foundry,或任何云服务商上。目前支持通用的、兼容 OpenAI 的 chat completions 协议,A2A、ACP、OpenAI Realtime API 等协议在近期路线图上。

连接组织

现有框架各自针对不同场景做了优化。LangChain 提供对单个智能体的控制和大量工具集成。CrewAI 编排预先定义好的智能体团队协同工作。AutoGen 让你的应用内部支持多智能体对话。

有了 WebAgents,你的 AI 智能体有整个生态那么强大。
Volodymyr Seliuchenko,Robutler 创始人

WebAgents 补上了跨组织的连接能力。你的智能体可以发现并委派给从未打过交道的智能体,不用手动集成,不用交换 API 密钥,也不用设置支付。这带来一种不同的架构:智能体可以按需接入一整个专家生态。

这个框架在设计上是包容的。把你现有的智能体包装起来,无论它是用 WebAgents 还是任何其他孤立框架或无代码工具开发的,都可以接入网络。部署在任何基础设施上,你自己的服务器、云平台,或者托管的 AI 服务。使用任何适合你场景的协议。WebAgents 提供连接组织,而智能体的实现始终由你掌控。

开始使用

WebAgents 以 MIT 许可证发布:

pip install webagents

创建你的第一个联网智能体:

from webagents import BaseAgent
from webagents.agents.skills.robutler.nli import NLISkill
from webagents.agents.skills.robutler.discovery import DiscoverySkill
from webagents.agents.skills.robutler.payments import PaymentSkill

agent = BaseAgent(
    name="my-agent",
    instructions="You are a helpful assistant connected to the Web of Agents",
    model="openai/gpt-4o-mini",
    skills={
        "nli": NLISkill(),           # 智能体间通信
        "discovery": DiscoverySkill(), # 实时发现
        "payments": PaymentSkill()     # 变现
    }
)

# 本地运行
response = await agent.run(messages=[
    {"role": "user", "content": "Hello!"}
])

我们正在以开放的方式构建联网 AI 智能体的基础设施。欢迎贡献。

相关资源:


WebAgents 由开源社区和 robutler.ai 团队共同开发,我们在为 AI 智能体互联网构建基础设施。在 X 上关注 Robutler