专家们:精通 Agent
专家们:精通智能体
Section titled “专家们:精通智能体”智能体是你操作的核心(大脑)。在 CrewAI 中,一个 Agent 是一个自主单元,可以执行任务、做出决策并与其他智能体通信。在本章中,我们将深入探讨如何创建有效的智能体。
定义角色(Persona)
Section titled “定义角色(Persona)”智能体输出的质量与你定义其属性的优劣直接相关。有三个关键支柱:
- 角色(Role):这是智能体的职位。它告诉 LLM 应该采取何种视角(例如,“金融分析师”与“创意作家”)。
- 目标(Goal):这定义了智能体的成功标准。它指导 LLM 的关注点(例如,“最大程度地减少税务责任”与“写一首爆款诗歌”)。
- 背景故事(Backstory):这通常是被忽视但却非常强大的属性。它提供了上下文、个性和约束条件。背景故事创造了响应的“风味”。
这是一个 Python 定义的例子(如果你不使用 YAML):
from crewai import Agent
analyst = Agent( role='Senior QA Engineer', goal='Find all bugs in the code', backstory=( "You have 20 years of experience in software testing. " "You are extremely detail-oriented and pessimistic about " "code quality. You never assume code works." ), verbose=True # 启用智能体思维过程的日志记录)配置 LLM
Section titled “配置 LLM”并非所有智能体都需要最昂贵的模型。你可能希望“经理”智能体使用 GPT-4o 进行复杂推理,而“摘要”智能体使用 GPT-4o-mini 来节省成本。CrewAI 允许你为特定智能体分配特定的 LLM。
CrewAI 集成了 LiteLLM,支持 100 多个提供商。
使用 OpenAI(默认)
Section titled “使用 OpenAI(默认)”默认情况下,CrewAI 会查找 OPENAI_API_KEY 环境变量并使用 GPT-4。
使用本地模型(Ollama)
Section titled “使用本地模型(Ollama)”要在本地运行智能体(为了隐私或成本),你可以使用 Ollama。你必须更改 OPENAI_API_BASE 和模型名称。
from crewai import Agent, LLM
# 配置 LLMlocal_llm = LLM( model="ollama/llama3.1", base_url="http://localhost:11434")
local_agent = Agent( role='Local Assistant', goal='Answer quickly', backstory='You are running locally.', llm=local_llm)关键智能体参数
Section titled “关键智能体参数”除了角色(persona)之外,还有一些技术设置可以微调行为:
allow_delegation:(默认值:False)如果设置为True,智能体可以将工作委派给其他智能体。注意:这通常需要更强大的模型。max_iter:限制智能体在强制给出答案之前可以执行的“思考循环”次数,防止无限循环。verbose:对于调试至关重要。它会向你展示智能体的“思考(Thought)”、“行动(Action)”和“观察(Observation)”循环。