基于 CrewAI 开发
CrewAI 是一个用于构建多 Agent 协作系统的 Python 框架,特别适合需要多个专业角色协同完成复杂任务的场景。云开发提供了 cloudbase-agent-crewai 适配器,让 CrewAI Agent 可以无缝对接 AG-UI 协议。
前置条件
安装依赖
pip install cloudbase-agent-crewai cloudbase-agent-server crewai crewai-tools
快速开始
基础示例
from cloudbase_agent.crewai import CrewAIAgent
from cloudbase_agent.server import create_agent_server
from crewai import Agent, Task, Crew
# 创建 Agent
researcher = Agent(
role="研究员",
goal="深入研究给定主题并提供详细分析",
backstory="你是一位经验丰富的研究员,擅长收集和分析信息。",
verbose=True,
)
writer = Agent(
role="作家",
goal="将研究结果转化为易于理解的文章",
backstory="你是一位专业作家,擅长将复杂信息转化为通俗易懂的内容。",
verbose=True,
)
# 创建任务
research_task = Task(
description="研究 {topic} 的最新发展和趋势",
expected_output="一份详细的研究报告",
agent=researcher,
)
writing_task = Task(
description="基于研究报告撰写一篇科普文章",
expected_output="一篇 500 字左右的科普文章",
agent=writer,
)
# 创建 Crew
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
verbose=True,
)
# 创建 CloudBase Agent
agent = CrewAIAgent(
name="ResearchCrew",
description="研究和写作团队",
crew=crew,
)
# 创建服务
app = create_agent_server(agent)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=3000)
带工具的 Agent
from cloudbase_agent.crewai import CrewAIAgent
from cloudbase_agent.server import create_agent_server
from crewai import Agent, Task, Crew
from crewai_tools import SerperDevTool, WebsiteSearchTool
# 创建工具
search_tool = SerperDevTool()
website_tool = WebsiteSearchTool()
# 创建带工具的 Agent
researcher = Agent(
role="网络研究员",
goal="使用搜索工具收集最新信息",
backstory="你是一位精通网络搜索的研究员。",
tools=[search_tool, website_tool],
verbose=True,
)
analyst = Agent(
role="数据分析师",
goal="分析收集到的信息并提取关键洞察",
backstory="你是一位数据分析专家,擅长从大量信息中提取价值。",
verbose=True,
)
# 创建任务
search_task = Task(
description="搜索关于 {topic} 的最新新闻和文章",
expected_output="收集到的相关信息列表",
agent=researcher,
)
analysis_task = Task(
description="分析搜索结果,提取关键信息和趋势",
expected_output="分析报告",
agent=analyst,
)
# 创建 Crew
crew = Crew(
agents=[researcher, analyst],
tasks=[search_task, analysis_task],
verbose=True,
)
agent = CrewAIAgent(
name="ResearchAnalysisCrew",
description="研究分析团队",
crew=crew,
)
app = create_agent_server(agent)