在LLM(大语言模型)刚爆发时,Prompt是最受追捧的对象,有时为了让一个窗口能扮演尽可能多的角色:比如既是架构师,又是能输出优质代码的工程师,还是测试工程师,就不得不写长达几页纸的提示词。
但是在实际的工程化落地中,这种单Agent模式很容易撞上天花板:
长文本失忆:随着对话轮次的增加,LLM 开始丢三落四。
逻辑混乱:让它既做“发散性”的创意构思,又做“收敛性”的代码审查,它很容易在多重身份间精神分裂,最终导致逻辑崩溃。
幻觉爆发:面对复杂的长链条任务,单窗口模型一旦在第三步发生轻微偏差,后面的结果就会彻底“跑偏”。
在真实的软件工程中,解决复杂问题从来不靠某个个体单打独斗,而是靠团队协同。这就引出了现代AI架构的必然趋势:Multi-Agent System,(多智能体系统)。
在目前开源的多智能体框架中,CrewAI凭借其独特的组织架构模型,成为了公认最接地气、上手最快的工程化利器。
很多多智能体框架核心更偏向“对话驱动”—让一堆 Agent 坐在一个聊天室里自由辩论。这种模式经常会出现 Agent 互相推诿、无限套娃、或者聊着聊着就跑题的尴尬局面。
而 CrewAI 的完全不同,它是“角色扮演 + 任务驱动”。
CrewAI yo四大核心概念:
CrewAI 的核心硬核点在于:任务(Task)才是核心指针,Agent 只是执行任务的载体。每个任务必须有清晰的交付物边界(Expected Output),这种设计天然契合了人类社会的工程开发逻辑。
三大主流框架对比
LangChain / LangGraph:功能极度强大,但上手极其陡峭。创建一个多团队协同,得从底层的手动状态(State)、图节点(Nodes)、边(Edges)一条条去连线。适合追求极致底层控制力的老手。
Microsoft AutoGen:擅长高自由度的对话和复杂的事件驱动。但由于其早期的开放性,在企业级“必须按确定流程产出结果”的场景下,常常难以控流。
CrewAI:底层基于 LangChain,但把复杂的图结构封装成了人类看得懂的“公司行政结构”。我们不需要懂什么复杂的图论拓扑,只需要懂“怎么招人、怎么派活”就能组装出强大的商用流。
Hello World 实践
包含两个Agent:
趋势分析师(Agent A):负责全网搜集最新技术热点。
文案大师(Agent B):负责把搜集到的技术干货,重构成爆款推文。
环境准备
首先,安装 CrewAI 及其工具库(使用 Python 3.10+):
pip install crewai crewai-tools核心代码实现
为了规避不同 LLM API 的接入门槛,建议使用统一的 LangChain 规范。可以配置标准的 OpenAI、DeepSeek 或者本地的 Ollama。
import osfrom crewai import Agent, Task, Crew, Process# 1. 配置大模型凭证 (这里可以替换为自己的 API Base 和 Key,例如 DeepSeek 或 OpenAI)os.environ["OPENAI_API_KEY"] = "your-api-key-here"# 如果使用非标准 OpenAI 路由(如国内大模型),可取消下方注释# os.environ["OPENAI_API_BASE"] = "https://api.deepseek.com/v1"# ==========================================# 2. 定义 AI 员工 (Agents)# ==========================================# 员工 A:尖端技术探针researcher = Agent(role="资深技术趋势分析师",goal="洞察全球前沿科技,提取出对普通开发者真正有价值的核心痛点和趋势",backstory="""你是一名拥有10年经验的技术大牛兼科技记者。你有一双慧眼,能从小众的 GitHub 项目或晦涩的学术论文中,一眼看出未来的爆款技术趋势。你的文风客观、严谨、直击本质。""",verbose=True,allow_delegation=False # 不允许把任务外包给别人)# 员工 B:文案制造机writer = Agent(role="现象级自媒体文案策划",goal="将晦涩的技术报告,转化为通俗易懂、悬念重重、让人忍不住转发的爆款自媒体文章",backstory="""你是前科技大厂的资深公关总监,现知名自媒体主笔。你深谙人性,知道如何用大白话解释复杂概念(例如:用“炒菜”解释“多线程通信”)。你的文章兼具情绪价值与硬核干货,拒绝标题党,但字字珠玑。""",verbose=True,allow_delegation=False)# ==========================================# 3. 派发任务 (Tasks)# ==========================================# 任务 1:搜集素材task_research = Task(description="调研2026年多智能体(Multi-Agent Systems)在国内软件工程领域的最新落地痛点。",expected_output="一份包含至少3个真实痛点、核心技术成因及代表性框架的深度调研大纲。",agent=researcher # 分配给研究员)# 任务 2:加工润色task_write = Task(description="""基于技术趋势分析师提供的调研大纲,写一篇面向大众程序员的自媒体科普文章。要求:逻辑层层递进,使用至少两个生动的现实生活类比,字数在1200字左右。""",expected_output="一篇完整的、排版精美的、包含引人入胜前言的 Markdown 格式技术文章。",agent=writer # 分配给文案师)# ==========================================# 4. 组建团队 (Crew) 并开始运转# ==========================================tech_crew = Crew(agents=[researcher, writer],tasks=[task_research, task_write],process=Process.sequential, # 线性流程:研究员做完,文案师接棒verbose=True)# 启动!print("====== 团队开始作业 ======")result = tech_crew.kickoff()print("\n====== 最终交付成果 ======\n")print(result)
通过日志,将会看到:
分析师开始思考,并在后台生成了一份干货满满的“Agent落地痛点调研”(诸如状态机混乱、成本不可控等底层逻辑)。
线性流(Sequential)自动触发:分析师完成的瞬间,CrewAI 隐式地将这份报告塞进了文案师的桌面上。
文案师开始发挥:它识别到了上游的输入,调用自己的
backstory人设,开始用大白话重写。最终成果:最终拿到的是一篇有深度、有文采、直接能用的 Markdown 格式推文。
夜雨聆风