crew AI笔记[9] - 运用crew AI框架构建实战级agent项目
目标
参考官网推荐开发流程,利用yaml和crewai工具构建一个标准化框架
ps:第一次尝鲜crew AI我就发现这玩意应该要整一个脚手架,让我们聚焦在任务拆解(agent结构设计)和prompt优化上,不把时间浪费在基础设施构建上。当时我还用Gemini通过对话的方式花了一下午捣鼓出了一个自定义框架,居然也能用。练练手可以,副作用很明显,因为我根本就不熟悉crew AI到底是个啥玩意,框架把实现细节都屏蔽了,让人更加难以了解细节。所以强烈建议读者老老实实先裸奔,看完[1]-[8]的教程,再考虑上框架实战。
前提条件
python版本: Python >=3.10 and <3.14
crewai版本:好像没啥关系?
openai版本:openai >= 1.13.3
安装uv:
推荐
pip install uv
官网提供
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
利用uv构建crewai框架【easy】
环境依赖
uv tool install crewai
此处可选创建虚拟环境
碰到环境问题, xxxx is not on your PATH.
修复:
uv tool update-shell
确认安装正确:
uv tool list
创建crew AI脚手架
crewai create crew <your_project_name>
工程结构
my_project/
├── .gitignore
├── knowledge/
├── pyproject.toml
├── README.md
├── .env
└── src/└── my_project/├── __init__.py├── main.py├── crew.py├── tools/│ ├── custom_tool.py│ └── __init__.py└── config/├── agents.yaml└── tasks.yaml
如何配置为qwen大模型?
.env改造
QWEN_API_KEY=your-qwen-api-key-here
请注意,原样抄即可(不要改一个字,或者随便乱写),因为QWEN_API_KEY会在代码段中配置
crew.py中增加一段修改LLM引用的代码
def __init__(self):self.qwen_llm = LLM(model='dashscope/qwen-plus',base_url='https://dashscope.aliyuncs.com/compatible-mode/v1',api_key=os.environ.get("QWEN_API_KEY"),stream=False, # 设置为同步模式temperature=0.7, # 控制模型输出的随机性request_timeout=240, # 增加请求超时时间到240秒max_retries=2,)
agent和crew中引用这个东西即可
llm=self.qwen_llm
运行
crewai installuv add <package-name>crewai run
怎么改?【核心工作】
以上可以确保crewai框架可用,以下仔细探索如何在这个框架上自定义任务。自定义核心内容主要如下所示:
File | Purpose |
---|---|
agents.yaml | Define your AI agents and their roles |
tasks.yaml | Set up agent tasks and workflows |
main.py | Project entry point and execution flow |
crew.py | Crew orchestration and coordination |
tools/ | Directory for custom agent tools |
knowledge/ | Directory for knowledge base |
1、首先确定要干啥,先纸上谈兵,直接在A4纸或者processOn上比划一个最原始的需求
2、然后利用通用AI,以对话的形式,定制agents和tasks
3、再回到框架进行实际改造
基础:agents.yaml -> tasks.yaml -> crew.py -> main.py
进阶:tools/knowledge内置【todo】
看起来只有寥寥三段式,实际上内涵相当丰富。等哪天真的把agent玩明白以后再返回到这个地方,专门出几篇文章写这个点好了。
怎么调试【核心工作】
语法:crewai train -n <n_iterations> -f <filename.pkl>
实战:crewai train -n 2
# 迭代两次
重中之重,可参考后续教程:crew AI笔记【10】 - training特性-优化必备
感想
基于crew AI的agent设计,运用框架可以很容易构造出看起来能用的agent,但是能用和好用是两码事,真正的核心是这两点(个人愚见):
1、怎么合理构造agent?
懂提示工程,具备领导力(是的,用crew AI就像管理者指挥各种专家协同作战一样),深刻理解业务,了解原始需求,能够站在机器和数据的视角构造出合理的agent协作流程,并据此写出高质量的prompt,这才是crew AI应用工程师的核心竞争力【个人理解,不喜勿喷 ^_^】
所以说用agent做个玩具容易,要做个能实战的东西去解决实际问题,真的很难,自己去实践一下就知道了。
2、怎么优化和完善?
学会training的方法,这一点相对来说比较好办。
参考资料
uv教程
uv更新国内源
官网资料
官网视频