ArchGW:开源 Agent 智能网关代理
开源工具为 AI Agent 提供边缘计算和服务代理能力,降低 Agent 部署的网络复杂度。
开源工具为 AI Agent 提供边缘计算和服务代理能力,降低 Agent 部署的网络复杂度。
面向 Agentic 应用的 AI-native 代理服务器与数据平面。Plano 将重复、烦琐的基础设施工作从应用中抽离,让你摆脱脆弱的框架抽象,并集中管理那些不该在每个代码库中重复定制的能力——例如 Agent 路由与编排、用于持续改进的丰富 Agentic Signals 与追踪、安全与内容审核所需的 Guardrail 过滤器,以及支持模型敏捷切换的智能 LLM 路由 API。你可以使用任意编程语言或 AI 框架,更快地将 Agent 交付到生产环境。
快速入门指南 • 使用 Plano 构建 Agentic 应用 • 文档 • 联系我们
如果你觉得 Plano 有用,请为仓库点亮 Star ⭐️——新版本和更新会第一时间发布在这里。
构建 Agentic 演示很容易,但要安全、可靠且可重复地将 Agentic 应用交付到生产环境,却很困难。在快速 Hack 带来的兴奋感消退后,你最终还是需要构建一套通往生产环境的“隐藏中间件”:用于找到正确 Agent 的路由逻辑、安全与内容审核所需的 Guardrail Hook、支持持续学习的评估与可观测性胶水代码,以及散落在不同框架和应用代码中的模型与 Provider 特殊适配逻辑。
Plano 将这些核心交付能力迁移到统一的、进程外的数据平面中,从而解决上述问题。
🚦 编排:在 Agent 之间进行低延迟编排;无需修改应用代码即可添加新 Agent。
🔗 模型敏捷性:支持按模型名称、别名(语义名称)进行路由,也可以根据偏好自动路由。
🕵 Agentic Signals™:无需编写代码,即可捕获 Signals,并采集贯穿每个 Agent 的 OTEL traces/metrics。
🛡️ 内容审核与 Memory Hook:通过 Filter Chains 构建越狱防护,并以一致的方式添加内容审核策略和 Memory。
Plano 将重复、烦琐的基础设施工作从你的框架中抽离,让你专注于最重要的事情:Agentic 应用的核心产品逻辑。Plano 由业界领先的 LLM 研究提供支持,并由 Envoy 的核心贡献者基于 Envoy 构建;这些贡献者曾为现代工作负载打造大规模关键基础设施。
高级网络时序图:
前往我们的文档,了解如何使用 Plano 提升 Agentic 应用的开发速度、安全性和可观测性。
Plano 以及 Plano 系列 LLM(例如 Plano-Orchestrator)均免费托管在美国中部区域,帮助你在第一次使用 Plano 时获得出色的开发体验。如果需要扩展并在生产环境中运行,你可以在本地运行这些 LLM,也可以在 Discord 上联系我们以获取 API key。
Plano 将编排、模型管理和可观测性作为模块化构建块提供——你只需配置自己需要的部分,例如用于 Agentic 编排与 Guardrail 的边缘代理、供服务调用的 LLM 路由,或者同时使用二者,从而无缝融入现有架构。下面是一个使用 Plano 构建的简单多 Agent 旅行助手,展示了全部三项核心能力。
📁 完整可运行代码:查看 demos/agent_orchestration/travel_agents/,其中包含可在本地运行的完整天气 Agent 和航班 Agent。
# config.yaml
version: v0.3.0
# What you declare: Agent URLs and natural language descriptions
# What you don't write: Intent classifiers, routing logic, model fallbacks, provider adapters, or tracing instrumentation
agents:
- id: weather_agent
url: http://localhost:10510
- id: flight_agent
url: http://localhost:10520
model_providers:
- model: openai/gpt-4o
access_key: $OPENAI_API_KEY
default: true
- model: anthropic/claude-3-5-sonnet
access_key: $ANTHROPIC_API_KEY
listeners:
- type: agent
name: travel_assistant
port: 8001
router: plano_orchestrator_v1 # Powered by our 4B-parameter routing model. You can change this to different models
agents:
- id: weather_agent
description: |
Gets real-time weather and forecasts for any city worldwide.
Handles: "What's the weather in Paris?", "Will it rain in Tokyo?"
- id: flight_agent
description: |
Searches flights between airports with live status and schedules.
Handles: "Flights from NYC to LA", "Show me flights to Seattle"
tracing:
random_sampling: 100 # Auto-capture traces for evaluation
你的 Agent 只需要是实现了 OpenAI-compatible chat completions endpoint 的 HTTP 服务器。你可以使用任意编程语言或框架:
# weather_agent.py
from fastapi import FastAPI, Request
from fastapi.responses import StreamingResponse
from openai import AsyncOpenAI
app = FastAPI()
# Point to Plano's LLM gateway - it handles model routing for you
llm = AsyncOpenAI(base_url="http://localhost:12001/v1", api_key="EMPTY")
@app.post("/v1/chat/completions")
async def chat(request: Request):
body = await request.json()
messages = body.get("messages", [])
days = 7
# Your agent logic: fetch data, call APIs, run tools
# See demos/agent_orchestration/travel_agents/ for the full implementation
weather_data = await get_weather_data(request, messages, days)
# Stream the response back through Plano
async def generate():
stream = await llm.chat.completions.create(
model="openai/gpt-4o",
messages=[{"role": "system", "content": f"Weather: {weather_data}"}, *messages],
stream=True
)
async for chunk in stream:
yield f"data: {chunk.model_dump_json()}\n\n"
return StreamingResponse(generate(), media_type="text/event-stream")
前置条件:按照前置条件指南安装 Plano,并完成环境配置。
# Start Plano
planoai up config.yaml
...
# Query - Plano intelligently routes to both agents in a single conversation
curl http://localhost:8001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "I want to travel from NYC to Paris next week. What is the weather like there, and can you find me some flights?"}
]
}'
# → Plano routes to weather_agent for Paris weather ✓
# → Then routes to flight_agent for NYC → Paris flights ✓
# → Returns a complete travel plan with both weather info and flight options
每个请求都会通过 OpenTelemetry 进行端到端追踪——无需编写任何 instrumentation 代码。
为什么它很高效:Plano 使用专门构建的轻量级 LLM(例如我们的 4B 参数 Orchestrator),而不是使用重量级框架或 GPT-4 来执行路由——让你以极低的成本和延迟,获得生产级路由能力。
如果想与我们取得联系,请加入我们的 Discord 服务器。我们会积极关注其中的消息,并在那里提供支持。
准备好试用 Plano 了吗?查看我们的完整文档:
快速入门指南——几分钟内完成安装并开始使用
LLM 路由——按模型名称、别名或智能偏好进行路由
Agent 编排——构建多 Agent 工作流
Filter Chains——添加 Guardrail、内容审核和 Memory Hook
可观测性——traces、metrics 与 logs
我们非常希望收到你对 Roadmap 的反馈,也欢迎你为 Plano 作出贡献!无论是修复 Bug、添加新功能、改进文档,还是制作教程,我们都非常感谢你的帮助。请访问我们的贡献指南,了解更多详细信息。
如果你觉得 Plano 有用,请为仓库点亮 Star ⭐️——新版本和更新会第一时间发布在这里。