Agent 智能体

Agent 是 CrewAI 里的自主单元:按角色执行任务、用工具行动、在允许时委派、可带记忆。把它想成团队里的一位专家——研究员擅长搜集,写作者擅长成稿。

新 CLI 项目可用 agents/<name>.jsonc;本课用 Python,便于对照官方属性表。


必填三件套

参数作用
role在团队中的职能与专长
goal决策时对齐的个人目标
backstory性格与上下文,影响说话语气和取舍

可选但常用:toolsllmverboseallow_delegationmax_iter(默认 20)、memoryknowledge_sources

from crewai import Agent
from crewai_tools import SerperDevTool

researcher = Agent(
    role="Research Analyst",
    goal="Find and summarize information about specific topics",
    backstory="You are an experienced researcher with attention to detail.",
    llm="openai/gpt-4o-mini",
    tools=[SerperDevTool()],
    verbose=True,
    allow_delegation=False,
    max_iter=20,
)

llm 可以是 provider/model-id 字符串、LLM(...) 实例,或省略(回落到 OPENAI_MODEL_NAME / 默认模型)。工具调用也可单独指定 function_calling_llm(更便宜的模型只负责选工具)。


JSONC(CLI 项目)

agents/researcher.jsonc

{
  "role": "{topic} Senior Data Researcher",
  "goal": "Uncover cutting-edge developments in {topic}",
  "backstory": "You find the most relevant information and present it clearly.",
  "llm": "openai/gpt-4o-mini",
  "tools": ["SerperDevTool"],
  "settings": {
    "verbose": true,
    "allow_delegation": false,
    "max_iter": 20
  }
}

crew.jsonc"agents": ["researcher"] 会加载该文件。{topic} 来自 crew 级 inputs


其它常用开关

参数说明
allow_code_execution允许跑代码;code_execution_mode"safe"(Docker)或 "unsafe"
respect_context_window超窗时摘要(默认 True
reasoning执行任务前先规划;可用 max_reasoning_attempts
inject_date把当前日期注入提示;date_format 默认 "%Y-%m-%d"
multimodal多模态输入
max_rpm / max_execution_time限速与超时

写角色时要具体:差的 role="助手";好的 role="面向高管的市场分析师,只引用可核验来源"goal 写成可完成的结果,不要写成空泛的「尽量做好」。


不经过 Crew:kickoff()

from pydantic import BaseModel
from typing import List
from crewai import Agent

class Findings(BaseModel):
    main_points: List[str]
    risks: List[str]

agent = Agent(
    role="Briefing writer",
    goal="Return structured findings",
    backstory="You never invent citations.",
)
result = agent.kickoff(
    "Summarize CrewAI Flows vs Crews in 2026 terms.",
    response_format=Findings,
)
print(result.raw)
print(result.pydantic.main_points)

messages 可以是字符串,或 {"role","content"} 列表。返回 LiteAgentOutputrawpydanticusage_metrics 等)。完整任务链仍应走 Task + Crew


与 LangChain Agent 的差别

LangChaincreate_agent单循环 Harness(模型 + 工具 + Middleware)。CrewAI 的 Agent 强调 角色卡,真正的多角色协作发生在 Crew 里。需要图检查点时用 LangGraph;需要角色分工时用 CrewAI。


下一步

评论