Agent 智能体
Agent 是 CrewAI 里的自主单元:按角色执行任务、用工具行动、在允许时委派、可带记忆。把它想成团队里的一位专家——研究员擅长搜集,写作者擅长成稿。
新 CLI 项目可用 agents/<name>.jsonc;本课用 Python,便于对照官方属性表。
必填三件套
可选但常用:tools、llm、verbose、allow_delegation、max_iter(默认 20)、memory、knowledge_sources。
llm 可以是 provider/model-id 字符串、LLM(...) 实例,或省略(回落到 OPENAI_MODEL_NAME / 默认模型)。工具调用也可单独指定 function_calling_llm(更便宜的模型只负责选工具)。
JSONC(CLI 项目)
agents/researcher.jsonc:
crew.jsonc 的 "agents": ["researcher"] 会加载该文件。{topic} 来自 crew 级 inputs。
其它常用开关
写角色时要具体:差的 role="助手";好的 role="面向高管的市场分析师,只引用可核验来源"。goal 写成可完成的结果,不要写成空泛的「尽量做好」。
不经过 Crew:kickoff()
messages 可以是字符串,或 {"role","content"} 列表。返回 LiteAgentOutput(raw、pydantic、usage_metrics 等)。完整任务链仍应走 Task + Crew。
与 LangChain Agent 的差别
LangChain 的 create_agent 是 单循环 Harness(模型 + 工具 + Middleware)。CrewAI 的 Agent 强调 角色卡,真正的多角色协作发生在 Crew 里。需要图检查点时用 LangGraph;需要角色分工时用 CrewAI。