概览
CrewAI 是一个多代理编排框架,在这里每一个“团队成员(crew member)”都是一名具备特定职责、目标和一套可用工具的 AI 代理。通过将 CrewAI 指向 ModelRiver,每一个代理都能单独使用一套不同的模型,拥有各自后备的降级替换链,并且产出被严格要求的结构化数据结果。
您将获得:
- 针对每一名代理,都经由 ModelRiver 的不同工作流执行各自的模型路由
- 自动故障转移保护,使得没有哪一个单一供应商的停机宕机能阻停你的一整个派工团队
- 能够将花销明细下探精算到每一名具体的干员和每一次委派任务上
- 能够从工作流管控维度去强制压下执行要求一致的输出格式框架模型规范 (Structured output schemas)
快速上手
安装相关依赖件
Bash
pip install crewai crewai-tools openai将 CrewAI 连上 ModelRiver
CrewAI 的底层靠 LiteLLM 提供支持,而后者对所有能吃 OpenAI 兼容接口规范的服务端点都不在话下:
PYTHON
1import os2 3os.environ["OPENAI_API_BASE"] = "https://api.modelriver.com/v1"4os.environ["OPENAI_API_KEY"] = "mr_live_YOUR_API_KEY"或者采用更加精细的单代理配置法:
PYTHON
1from crewai import LLM2 3llm = LLM(4 model="openai/my-chat-workflow",5 base_url="https://api.modelriver.com/v1",6 api_key="mr_live_YOUR_API_KEY",7)建制基础出勤班子队伍 (Basic crew)
PYTHON
1from crewai import Agent, Task, Crew, LLM2 3# 指向咱们 ModelRiver 家门口的大 LLM 模型配置法4llm = LLM(5 model="openai/my-chat-workflow",6 base_url="https://api.modelriver.com/v1",7 api_key="mr_live_YOUR_API_KEY",8)9 10# 给干员定身份出设画押 (Define agents)11researcher = Agent(12 role="Senior Researcher",13 goal="四处翻挖并提纯理顺那些最要紧也对主旨最切题的情报名册",14 backstory="你在跟数据研磨打交道这事上有超过 20 年坐底沉淀功力,是个不折不扣的老练探案级深挖情报好手。",15 llm=llm,16 verbose=True,17)18 19writer = Agent(20 role="Content Writer",21 goal="把内容搓撰得足够诱人且框架大体严谨出范",22 backstory="你是一位摸行当多年的老牌科技专栏大笔杆子,总是善于把那种云雾缭绕死磕理论的技术词说得生动亲民。",23 llm=llm,24 verbose=True,25)26 27# 下放点卯活派工差案 (Define tasks)28research_task = Task(29 description="去深挖一下有关 AI 路由网关平台界域在眼下正当红时兴的风向动静。且务必要牢牢揪住诸如怎么拨弄分配去向路由 (routing)、怎么转走规避掉坑抛锚 (failover) 还有其怎么布线留痕统全局观可观测性 (observability) 这几处大卖点上做足文章不放。",30 expected_output="务必掏出一封内底满载核心发现亮点兼并附送所有搜寻来源凭据线索的精编详呈查案通报。",31 agent=researcher,32)33 34write_task = Task(35 description="拿着前边查办取证拿来的那份调查通报当料子去做饭,煮出一篇发往博客大展去张榜的通告文贴。务求使得这篇行文引人侧目拍案叫绝且信息充实管饱干货多。",36 expected_output="一篇起底打约摸要有 500 字以上字数足斤准够并照着 Markdown 体格式排好面的大通报文案博主软文贴。",37 agent=writer,38)39 40# 召人成帮、齐头并发挂马打大阵开干响号41crew = Crew(42 agents=[researcher, writer],43 tasks=[research_task, write_task],44 verbose=True,45)46 47result = crew.kickoff()48print(result)差员人手给配一套量身工作专流线 (Per-agent workflows)
根据不同代理人担干的那份差务特性和侧重点去给予配备最能拿捏出好活且最对路合挂的专门大模型器:
PYTHON
1# 要那走步最快轻盈机警的号去跑街揽活四处采查拿消息当眼探 (研究者需成批吃吐量大更靠机动步速)2research_llm = LLM(3 model="openai/fast-researcher", # 分管在比如给配对诸如能跑得快手又机灵价廉的 GPT-4o-mini 工作跑线去走单的位上4 base_url="https://api.modelriver.com/v1",5 api_key="mr_live_YOUR_API_KEY",6)7 8# 要那种深沉含威极注重落墨成品成色有巨大量厚蕴气度的重型大炮管去负责挥毫造大书本巨制打名声之类的主脑主控台9writer_llm = LLM(10 model="openai/deep-writer", # 这里就是派得上能挂给让好比 Claude 3.5 Sonnet 大户人家镇场巨款才压得住的阵去的大门面工作线出手的所在11 base_url="https://api.modelriver.com/v1",12 api_key="mr_live_YOUR_API_KEY",13)14 15# 最后要拿心眼子思如泉涌兼又缜密极深讲究在严密梳理解扣和抓漏洞极讲脑力讲深厚推理强效能手好使的大判官老太爷拿印去盖章定局主事16reviewer_llm = LLM(17 model="openai/strict-reviewer", # 此处指派如类似由正蓝期王牌大顶流级款型主将去出阵包办的那档 GPT-4o 王大爷工作包槽专线18 base_url="https://api.modelriver.com/v1",19 api_key="mr_live_YOUR_API_KEY",20)21 22researcher = Agent(role="Researcher", goal="...", backstory="...", llm=research_llm)23writer = Agent(role="Writer", goal="...", backstory="...", llm=writer_llm)24reviewer = Agent(role="Reviewer", goal="...", backstory="...", llm=reviewer_llm)任由这大后方指手转拨只需在此方 ModelRiver 这处调度掌控高台台面上一点鼠标,便能实现于不动哪怕只是任何一笔老代码旧规的老家门里就把一切手底所有这些跑腿老探员手执调兵兵符所用的全线大换将更门改头换面。
能操刀抄家伙摸工具顺带兼作活底的代理武装分子干家 (Agents with tools)
PYTHON
1from crewai_tools import SerperDevTool, WebsiteSearchTool2 3search_tool = SerperDevTool()4web_tool = WebsiteSearchTool()5 6researcher = Agent(7 role="Research Analyst",8 goal="向海向渊地给搜扒遍且集齐收拢那散落在八方地关于这门正被开讲的话题的所有通盘内底信息情状报点",9 backstory="极精通这等搜集把脉汇编跟自各类无垠信源巨海汪洋里理顺抓取萃取那干货的极品行家里手老油条。",10 tools=[search_tool, web_tool],11 llm=llm,12 verbose=True,13)借带 CrewAI 与那严格定调定面受限的结构化锁框出货式 (Structured output with CrewAI)
巧用那源自 Pydantic 家的现成模型模具往这些需要生拉死拽定死交单结果输出脸型的任务项目上去倒大压模:
PYTHON
1from pydantic import BaseModel, Field2 3class BlogPost(BaseModel):4 title: str = Field(description="给挂在博文文头叫魂用并供人朝拜打分评赏的引门入牌大门首题名标题")5 summary: str = Field(description="一段只要一开口扫尾便得能说破扯尽中心题点魂要的一小口大精炼浓缩小撮字总结语录")6 sections: list[str] = Field(description="要给出那排列分明有着一列队站大节口和小起承转各开路点名报号子目用以罗点名列位分头打段标题阵列表")7 word_count: int = Field(description="掐指掂量得出的概摸总算大致得出的这整篇文到底打底吃下了多少个词量之合概预算字总数")8 9write_task = Task(10 description="动底子大笔快上出活给拉出一道全是大写这般关于那把 AI 路由导向总盘机制的大宏论博客公告大书文录来。",11 expected_output="这须得到头来必被死抠只能交的是且仅仅能被受领是这种已被钉死了面目体统模样结构排布好的那些博客大篇发文底面结构数据面貌",12 agent=writer,13 output_pydantic=BlogPost,14)15 16result = crew.kickoff()17# 这时这最终取还之物的 result.pydantic 内壁里面就生吞全包满藏装填上了带有且且仅有你上面照办用印过刻成名叫 BlogPost 型所生的那么一只硬活正经真生模型成品在此静等多候查拿点用18print(result.pydantic.title)挂进神堂里让人受用日后不迷不脱逃坑的大好用保底铁纪操作金法集规 (Best practices)
- 依职定人且一人一把对口匙一把好锁只认配一把挂在那不同用处跑道的车给开只用在各自代理的这不同老本分专职岗位里发大不同功走独线专槽 (One workflow per agent role): 派出去摸查大风的人(Researchers)那主追也只图求着是个跑在阵前腿快传得最灵如风电火石之速(speed),蹲后大室起大赋动粗文执大笔之专主儿(writers)看顾则死守只能在于那等出言必如九鼎言出只唯质重求好定那最硬品色底蕴的品质调子定性力(quality),至于那坐在堂案大桌头主断把这案查终理大结这关口的大批查老爷官们(reviewers)自得是只着重只靠这有着这最极难通深辩明事理看破最极底奥能神理通断最顶绝推理算筹决断推导高低算谋推背能力的活本领真性在身(reasoning)了
- 挂钩安档别漏了那管后备顶缸的大阵跟包着跌滑网的转门死防在每只单独线上 (Configure fallbacks per workflow): 就比方这只要万一本该出力上工的大块头这大当家底 Claude 这家商爷这台机器打着突临了哑火跌宕那专只这管打理写书造那出笔底字流出稿的这一主线它自也会凭空自得自立自决就暗替掉滑到由事先早定立接阵防线下给兜在那儿后手老兄弟上给顶档替差顶过了当轮次去了不扰半点主盘进程
- 查清记核能拆点到认门到每户探丁干员上之总吞金花大洋的消账这账务流分摊门门子清点本册 (Monitor per-agent costs): 就着打门 细究细查并清清拉走所有单子的大宗总监控账下发查台记总室面 (Request Logs) 这往本上一掏去抓个分明透亮去点卯拿住底细看到底真正在背后偷吃卷了吞没啃死那吃钱最不讲吃相吞下最大号海量走掉的大部分大批令牌 (tokens) 过家本之那叫哪几户败家代代员是大主
- 铁下心立下绝版令死套上去这模塑定面貌只认这个规制输出大造大物大成品的大死板之条条强造范儿铁训输出的交单规大制形 (Use structured outputs): 回老家那大在管中枢台这在自家 ModelRiver 本阵大阵前挂上定好这一道道关于拿这最后到底是要出些拿个神仙脸出来只受只纳规的结构总纲死盘印模型(schemas)由此就定要他这吐纳定是要有且均须交并同且有不走样那千篇一体般格式分毫走调不出那数据体貌列定之形去交割此大业以绝防了差之丝毫之可能大偏乱错行大差之患大乱跑冒滴出外格错边等脱乱的这绝防之事
- 在开台拉幕扯那大戏最首前要记得起这个啰里啰嗦事无细小必拿全录满带最冗带多事话篓满记本大全能连珠记口供细密开满能打碎录上每段那等大废全录那废大口开嘴录档详细言明带絮叨带细密大口水档那罗嗦开明眼啰大细口模式下查场趟平起家干第一炮 (Start with verbose mode): 在断定决定要去这绝绝这后把这一切打着能发口打细言话多密如针的详细交盘日大通报这絮大漏报发大报音(verbose logging)之口去掐去它熄声全关闭断电清平之先绝需用这能留有万全供你去拿小针去抓那探代这几这群人伙里这底下是怎么过这小动作接班碰首串局接这事头走套拉门路的大底系作个了底去挑去去那等小眼乱里头那发乱抓这暗里的瞎事坏事的排坑雷检排除打探
踏罢此间再下行步入探那远向可达深处的进引深看后看指月引径录大门后留大向导
- 一转弯往隔壁对家挂靠门这头那家子出自正微软本亲娘原生出品叫这个的叫那 AutoGen 打点那把多头集线统打统配的同宗通流这门道大法导这大集集成指册处去取大本子: 大微软这东出打造正这多神将并起全同开群这合唱并共大盘此多主拉联门大法框架
- 点亮把拉并挂高在天上那指门通统建建派去构大建筑打盖连山巨建这个大唤作个大宏大名曰大联众大总神造叫的联代大军干多机体系集这个排这个统建长篇门制集图册大法录门引去查大法蓝大图建图录宗: 造拉立下架构这套大大网构天底大体系蓝这神手所录这宏大手建深此法蓝此造底系统打起大架构深之图录这大手全造底深全图此大全深图派真底真打派蓝建册大画集蓝蓝大录册大书大法宏
- 全册包全查阅那套极客至宝端点发兵控局天宪宝典全词汇字典总录集 (API reference): 全部对各色操作打仗用调军指令集端点口语令详解开荒细编注全入本大名录卷这大门这包门去这指南指去门大图这全收大全指这南录入此本大全归指全总这大书大集合集大全字口大令名大全集门录大谱指南解本