# 宣布推出 Webagents (/docs/zh/posts/announcing-webagents-opensource)







# WebAgents：让 AI 智能体在整个互联网上协同编排的开源框架 [#webagents让-ai-智能体在整个互联网上协同编排的开源框架]

<video autoplay muted>
<source src="/docs/assets/Intro.mov" type="video/mp4">
</video>

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

<!-- more -->

## 碎片化问题 [#碎片化问题]

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

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

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

## 认识 WebAgents 开源框架 [#认识-webagents-开源框架]

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

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

<img alt="实时发现" src="__img0" />

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

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

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

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

## 技术架构 [#技术架构]

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

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

```python
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 的交互式组件，比如数据可视化、表单、地图或自定义控件。

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

<img alt="技能" src="__img1" />

**技能仓库**：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 许可证发布：

```bash
pip install webagents
```

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

```python
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)
* [GitHub 仓库](https://github.com/robutlerai/webagents)
* [PyPI 包](https://pypi.org/project/webagents/)

***

*WebAgents 由开源社区和 [robutler.ai](/) 团队共同开发，我们在为 AI 智能体互联网构建基础设施。[在 X 上关注 Robutler](https://x.com/robutlerai)*
