CrewAI + Ertas
使用 CrewAI 编排 AI 智能体团队,每个智能体由专门的 Ertas 训练模型驱动,实现基于角色的任务执行和协作工作流。
Overview
CrewAI 是一个多智能体编排框架,将 AI 智能体组织成具有定义角色、目标和背景故事的团队。受人类团队运作方式的启发,CrewAI 为每个智能体分配特定角色——研究员、作者、编辑、分析师——并通过结构化任务委派和顺序或并行执行模式协调其工作。该框架自动处理智能体间通信、任务依赖、上下文共享和输出验证。
CrewAI 的设计理念强调简洁性和生产就绪性。智能体使用自然语言角色描述来定义,而非复杂的配置文件,任务以声明式格式指定预期输出、工具和委派规则。该框架支持顺序工作流(每个智能体的输出作为下一个智能体的输入)和层级工作流(管理智能体委派和审查下属智能体的工作)。这种灵活性使 CrewAI 适用于从内容生产管道到复杂研究和分析工作流的各种场景。
How Ertas Integrates
Ertas 训练的模型通过标准 LLM 配置接口为 CrewAI 智能体提供支持。在 Ertas Studio 中微调专业模型后——研究模型、写作模型、分析模型——您将每个模型分配给相应的 CrewAI 智能体角色。智能体的角色描述和背景故事在提示层面指导其行为,而微调模型在权重层面提供深度领域专业知识。这种双层专业化产生了既方向明确又真正具有知识深度的智能体。
CrewAI-Ertas 组合在内容和分析工作流方面表现出色。例如一个金融研究团队:数据分析师智能体(在财务报表分析上训练)收集和处理公司数据,研究智能体(在市场分析上训练)识别趋势和竞争动态,写作智能体(在投资备忘录风格上训练)将所有内容综合成一份精致的报告。每个智能体使用针对其特定任务优化的不同 Ertas 训练模型,CrewAI 协调他们的工作,使最终输出反映三位专家的综合专业知识。这与让单一通用模型完成所有工作有本质区别——输出质量也体现了这种差异。
Getting Started
- 1
定义团队角色并微调模型
确定您团队中需要的专业角色。在 Ertas Studio 中使用任务特定的训练示例为每个角色微调一个单独的模型。
- 2
将模型部署到推理端点
通过 Ollama 或 vLLM 提供微调模型的服务。Ollama 可以同时服务多个模型,非常适合多智能体场景。
- 3
创建带有角色专用模型的智能体
定义 CrewAI 智能体及其角色、目标和背景故事。通过 LLM 配置为每个智能体分配其专用的 Ertas 训练模型。
- 4
定义任务和工作流结构
创建具有预期输出的任务并将其分配给智能体。根据任务依赖关系将工作流配置为顺序、并行或层级模式。
- 5
运行团队并迭代
执行团队工作流并审查输出。分析哪些智能体需要改进,并在 Ertas Studio 中使用有针对性的训练数据重新训练其 模型。
from crewai import Agent, Task, Crew
from langchain_openai import ChatOpenAI
# Create specialized LLMs from Ertas-trained models
researcher_llm = ChatOpenAI(
base_url="http://localhost:11434/v1",
model="ertas-researcher-7b",
api_key="not-needed",
)
writer_llm = ChatOpenAI(
base_url="http://localhost:11434/v1",
model="ertas-writer-7b",
api_key="not-needed",
)
# Define agents with role-specific fine-tuned models
researcher = Agent(
role="Market Researcher",
goal="Gather and analyze market data for investment decisions",
backstory="Senior equity analyst with 15 years of experience.",
llm=researcher_llm,
)
writer = Agent(
role="Report Writer",
goal="Write clear, actionable investment memos",
backstory="Financial writer specializing in institutional reports.",
llm=writer_llm,
)
# Define tasks
research_task = Task(
description="Research Q3 earnings for the top 5 semiconductor companies.",
agent=researcher,
expected_output="Structured analysis with revenue, margins, and guidance.",
)
report_task = Task(
description="Write a 2-page investment memo based on the research.",
agent=writer,
expected_output="Professional investment memo with recommendation.",
)
# Run the crew
crew = Crew(agents=[researcher, writer], tasks=[research_task, report_task])
result = crew.kickoff()
print(result)Benefits
- 基于角色的智能体专业化,每个角色配备专用的微调模型
- 自然语言智能体定义使团队设置直观且快速
- 顺序和层级工作流处理复杂的多步骤流程
- 智能体间上下文共享确保团队输出的连贯性
- 内置任务验证在错误向下传播之前捕获错误
- 生产就绪的框架,具备日志记录、回调和错误处理功能
Related Resources
Fine-Tuning
GGUF
Inference
LoRA
Getting Started with Ertas: Fine-Tune and Deploy Custom AI Models
How to Fine-Tune an LLM: The Complete 2026 Guide
Fine-Tune AI Models Without Writing Code
Running AI Models Locally: The Complete Guide to Local LLM Inference
Privacy-Conscious AI Development: Fine-Tune in the Cloud, Run on Your Terms
AutoGen
LangChain
Ollama
SuperAgent
vLLM
Ertas for Finance
Ertas for Content Creation
Ertas for Data Extraction
Ertas for AI Automation Agencies
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.