什麼是 OpenAgents?
OpenAgents 是 2026 年初嶄露頭角的開源 AI 代理框架,專為構建輕量級多代理協作系統而設計。與 LangGraph 的複雜狀態圖和 CrewAI 的角色扮演範式不同,OpenAgents 採用訊息驅動架構,讓代理之間的通訊更加直觀和靈活。
核心特點
- 🚀 輕量級設計:核心庫僅 5MB,啟動速度快於同類框架 40%
- 💬 訊息驅動:基於結構化訊息的代理通訊,支援非同步對話
- 🔌 外掛系統:內建工具庫 + 自訂工具熱插拔
- 📊 可觀察性:內建追蹤和日誌,無需額外配置
- 🌐 多模型支援:相容 OpenAI、Anthropic、Ollama 及本地模型
為什麼選擇 OpenAgents?
| 特性 | OpenAgents | LangGraph | CrewAI | AutoGen |
|---|---|---|---|---|
| 學習曲線 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ |
| 執行時開銷 | 低 | 中 | 中 | 高 |
| 多代理協作 | 原生支援 | 需手動編排 | 角色固定 | 靈活但複雜 |
| 可觀察性 | 內建 | 需 LangSmith | 有限 | 需配置 |
| 社群生態 | 快速增長 | 成熟 | 成熟 | 成熟 |
快速開始
安裝
# 基礎安裝
pip install openagents
# 完整功能(含向量儲存和高階工具)
pip install openagents[full]
# 驗證安裝
python -c "import openagents; print(openagents.__version__)"
第一個代理
建立一個簡單的問答代理:
from openagents import Agent, Runner
# 定義代理
researcher = Agent(
name="研究助手",
description="負責搜尋和整理資訊",
instructions="你是一個專業的研究助手,擅長查找和總結技術文件。",
tools=["web_search", "file_reader"],
model="gpt-4o"
)
# 執行單次任務
result = Runner.run(
agent=researcher,
input="請總結 OpenAgents 框架的核心特性"
)
print(result.output)
多代理協作
OpenAgents 的核心優勢在於多代理協作。以下是一個內容創作工作流:
from openagents import Agent, Runner, Handoff
# 定義專業代理
planner = Agent(
name="規劃師",
instructions="分析需求,制定內容大綱和寫作計劃",
handoffs=["writer", "reviewer"]
)
writer = Agent(
name="作家",
instructions="根據大綱撰寫高質量內容",
handoffs=["reviewer"]
)
reviewer = Agent(
name="審稿人",
instructions="稽核內容質量,提出修改建議",
handoffs=["writer"] # 可退回重寫
)
# 建立工作流
workflow = Runner(
agents=[planner, writer, reviewer],
entry_point="planner"
)
# 執行任務
result = workflow.run(
input="寫一篇關於 AI 代理框架的技術部落格"
)
print(f"最終輸出:{result.output}")
print(f"迭代次數:{result.metadata['turns']}")
高階功能
工具定義
OpenAgents 支援靈活的工具定義方式:
from openagents import tool
@tool
def calculate_readability(text: str) -> dict:
"""計算文字的可讀性分數"""
words = len(text.split())
sentences = text.count('.') + text.count('!') + text.count('?')
if sentences == 0:
return {"score": 0, "level": "N/A"}
avg_sentence_length = words / sentences
# Flesch 可讀性公式簡化版
score = 206.835 - 1.015 * avg_sentence_length
return {
"score": round(score, 2),
"level": "簡單" if score > 70 else "中等" if score > 50 else "困難"
}
# 在代理中使用
editor = Agent(
name="編輯",
instructions="最佳化文字質量和可讀性",
tools=[calculate_readability]
)
狀態管理
from openagents import Agent, Runner, State
# 定義共享狀態
class ArticleState(State):
topic: str
outline: list = []
draft: str = ""
revisions: int = 0
feedback: list = []
# 代理可以讀寫狀態
writer = Agent(
name="作家",
state_schema=ArticleState,
instructions="""
1. 讀取當前 state.topic 和 state.outline
2. 撰寫草稿並更新 state.draft
3. 如果收到反饋,增加 state.revisions
"""
)
流式輸出
from openagents import Agent, Runner
agent = Agent(name="助手", instructions="逐步解釋複雜概念")
# 流式獲取響應
for chunk in Runner.run_stream(
agent=agent,
input="解釋量子計算的基本原理"
):
print(chunk.delta, end="", flush=True)
實戰案例:自動化技術部落格生成器
下面是一個完整的多代理內容生成系統:
from openagents import Agent, Runner, tool
from typing import List
# 工具:獲取 trending 主題
@tool
def get_trending_topics(category: str) -> List[str]:
"""獲取指定類別的熱門話題"""
# 實際實現可連線 RSS、GitHub Trends 等
return ["AI 代理框架", "RAG 最佳化", "LLM 安全測試"]
# 工具:SEO 分析
@tool
def analyze_seo(content: str) -> dict:
"""分析內容的 SEO 友好度"""
return {
"keyword_density": 2.3,
"readability_score": 68,
"suggestions": ["增加 H2 標題", "新增內部連結"]
}
# 定義代理團隊
topic_researcher = Agent(
name="主題研究員",
instructions="發現和分析熱門技術話題",
tools=[get_trending_topics]
)
outline_creator = Agent(
name="大綱策劃",
instructions="根據主題建立詳細寫作大綱",
handoffs=["writer"]
)
content_writer = Agent(
name="內容作家",
instructions="撰寫 1500 字以上的技術文章",
handoffs=["seo_optimizer"]
)
seo_optimizer = Agent(
name="SEO 最佳化師",
instructions="最佳化文章 SEO 並提供修改建議",
tools=[analyze_seo],
handoffs=["content_writer"] # 可退回最佳化
)
final_reviewer = Agent(
name="終審編輯",
instructions="最終質量檢查,確認發佈",
)
# 構建工作流
blog_workflow = Runner(
agents=[
topic_researcher,
outline_creator,
content_writer,
seo_optimizer,
final_reviewer
],
entry_point="topic_researcher"
)
# 執行
result = blog_workflow.run(
input="生成一篇 AI 技術部落格",
max_turns=10 # 限制最大迭代次數
)
print(f"✅ 完成!共 {result.metadata['turns']} 輪協作")
print(f"📄 最終字數:{len(result.output)}")
與競品框架對比
OpenAgents vs LangGraph
LangGraph 優勢:
- 與 LangChain 生態深度整合
- 複雜狀態圖控制更精細
- 企業級支援完善
OpenAgents 優勢:
- 更簡潔的 API,學習成本低
- 訊息驅動更符合代理協作直覺
- 內建可觀察性,無需 LangSmith
OpenAgents vs CrewAI
CrewAI 優勢:
- 角色扮演範式成熟
- 豐富的預定義角色範本
- 社群案例多
OpenAgents 優勢:
- 更靈活的代理通訊模式
- 支援動態 handoff(CrewAI 需預定義流程)
- 效能更優(無冗餘抽象層)
OpenAgents vs AutoGen
AutoGen 優勢:
- 微軟背書,穩定性高
- 支援程式碼執行沙箱
- 多語言代理支援
OpenAgents 優勢:
- 配置更簡單(AutoGen 需大量樣板程式碼)
- 除錯體驗更好
- 文件更友好
生產環境部署
Docker 部署
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install openagents[full]
COPY . .
ENV OPENAI_API_KEY=${OPENAI_API_KEY}
ENV OPENAGENTS_LOG_LEVEL=info
CMD ["python", "main.py"]
監控和日誌
import openagents
from openagents.tracing import TracingConfig
# 配置追蹤
openagents.configure(
tracing=TracingConfig(
enabled=True,
export_to="otel", # OpenTelemetry
sample_rate=1.0
),
logging={
"level": "INFO",
"format": "json"
}
)
常見問題
Q: OpenAgents 支援哪些模型?
A: 支援所有主流模型供應商:
- OpenAI (GPT-4o, GPT-4 Turbo)
- Anthropic (Claude 3.5/3)
- Google (Gemini Pro)
- Ollama (本地模型)
- 自訂 API 端點
Q: 如何處理長上下文?
A: OpenAgents 內建上下文壓縮:
agent = Agent(
name="助手",
context_window=128000, # 設定上下文視窗
truncate_strategy="summary" # 超出時自動摘要
)
Q: 可以離線使用嗎?
A: 可以,配合 Ollama 或本地模型:
agent = Agent(
name="本地助手",
model="ollama/llama3.1:8b",
base_url="http://localhost:11434"
)
總結
OpenAgents 作為 2026 年新興的 AI 代理框架,在簡潔性和靈活性之間找到了很好的平衡點。對於以下場景特別推薦:
✅ 推薦場景:
- 快速原型開發
- 中小型多代理系統
- 需要靈活代理通訊的專案
- 團隊希望降低學習成本
❌ 不推薦場景:
- 需要 LangChain 生態深度整合
- 超複雜狀態圖控制
- 企業級 SLA 支援需求
資源連結
下一步:嘗試用 OpenAgents 構建你的第一個多代理工作流,體驗訊息驅動架構的魅力!