CrawAI搭建本地Agent Team问题整理
问题整理
项目概述
markdown 在 M3 Mac (18GB 内存) 上搭建本地 + API 混合的 Java Agent Team,包含架构师、程序员、测试员、代码审查员四个角色。
1.python版本问题
问题现象
ERROR: Could not find a version that satisfies the requirement crewai<0.40.0,>=0.30.0
ERROR: No matching distribution found for crewai<0.40.0,>=0.30.0
1 | ### 原因 |
2.依赖冲突问题
问题现象
1 | langchain-ollama 0.1.0 requires langchain-core<0.3.0,>=0.2.20 |
原因:
crewai 0.35 依赖 langchain-core 0.1.x
langchain-ollama 新版依赖 langchain-core 0.2.x
版本要求互相矛盾
解决方案:
使用 langchain_community 内置的 Ollama,避免安装 langchain-ollama 包:
1 | # 使用 community 内置版本 |
3。CrewAI 1.x API 兼容性问题
问题现象:
1 | ImportError: Fallback to LiteLLM is not available |
原因:
crewai 1.9 强制使用内置
LLM类默认寻找 OpenAI,不支持直接传 langchain 对象
LiteLLM 依赖复杂,容易冲突
解决方案
降级到 crewai 0.35 稳定版:
1 | pip install "crewai==0.35.0" |
使用传统 API:
1 | from crewai import Agent |
4. 模型 API 限制问题
问题现象:
1 | openai.PermissionDeniedError: Kimi For Coding is currently only available for |
原因:
kimi-code模型仅限特定工具调用- 标准 API 调用被拒绝
解决方案
更换为标准模型:
1 | ROLE_LLM_MAPPING = { |
5. 7B 本地模型质量问题
问题现象:
产生幻觉代码(如俄语
строгий модус)无限循环委托(
Delegate work to coworker)Formatting errors incremented
原因:
7B 蒸馏模型能力有限
复杂任务超出模型理解范围
allow_delegation=True导致循环
解决方案:
短期:优化提示词
1 | architect = Agent( |
长期:接入云端 API
1 | from langchain_openai import ChatOpenAI |
6. 流程中断与断点续跑
问题现象:
流程中断后,修复 bug 如何恢复?
重复运行会重复消耗 API 费用
需要保留中间产出
解决方案:
1 | # persistence.py - 保存执行状态 |
文件输出结构:
1 | output/ |
执行逻辑:
1 | def run_crew_with_resume(): |
7. M3 Mac 内存监控问题
问题:
top/ps看不到 Ollama 真实内存占用模型显示加载但内存只有几百 MB
统一内存架构难以理解
解决方案:
正确查看内存
1 | # 查看模型是否加载 |
内存构成理解
1 | 显示占用 17GB,实际: |
8. 最终推荐配置
1 | python=3.11 |
角色-模型分配
| 角色 | 推荐模型 | 理由 |
|---|---|---|
| 架构师 | deepseek-reasoner |
推理最强,适合复杂设计 |
| 程序员 | kimi-k2.5 / deepseek-chat |
代码生成质量好 |
| 测试员 | deepseek-chat |
平衡稳定 |
| 审查员 | kimi-k2.5 |
长上下文,能看全文件 | |
本地备用(断网/测试)
1 | # 内存紧张时用 7B |
关键经验总结
- 版本锁定:crewai 0.35 是目前最稳定的本地模型版本
- 模型选择:7B 只能跑通流程,生产用必须上 API
- 状态保存:每个 Agent 完成立即写文件,支持断点续跑
- 内存管理:M3 统一内存看”联动内存”,不是进程 RSS
- API 策略:DeepSeek 性价比高,Kimi 上下文长,组合使用