尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

CrewAI 单元测试:3步锁定Agent、Task、Crew的行为

CrewAI 单元测试:3步锁定Agent、Task、Crew的行为 CrewAI 单元测试3步锁定Agent、Task、Crew的行为【免费下载链接】crewAIFramework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks.项目地址: https://gitcode.com/GitHub_Trending/cr/crewAICrewAI 是一个编排多个 AI 代理协作的框架Agent、Task、Crew 里都藏着大量隐式逻辑得靠 CrewAI 单元测试把行为锁住。这篇文章帮你三步写出第一个能跑的测试用例。把第一个测试跑起来 先克隆仓库、装依赖。项目用 uv 管理依赖和虚拟环境可以理解为比 pip 更快的 Python 包管理器clone 完执行这段git clone https://gitcode.com/GitHub_Trending/cr/crewAI cd crewAI uv sync --all-groups --all-extras然后在lib/crewai/tests/下建一个测试文件内容就这几行from unittest.mock import Mock from crewai import Task agent Mock() agent.execute_task.return_value test result task Task(description写一段摘要, agentagent) result task.execute_sync(agentagent) assert result.raw test result逐行说Mock()把 Agent 换成假对象不真调 LLM慢、不稳、还烧 tokenexecute_task.return_value指定假 LLM的返回最后一行assert确认 Task 真的把输出塞进了结果。跑起来pytest 是 Python 最常用的测试框架cd lib/crewai uv run pytest tests/my_first_test.py -v变绿就成了。接下来你可以把断言换成任何想验证的行为。测试代码放在哪、怎么找要测哪个模块先想它属于哪个包目录结构和源码包是一一对应的然后去 lib/crewai/tests/ 下找对应子目录agents/→ Agent 行为task/→ Task 执行、异步任务crew/→ Crew 编排a2a/→ 代理之间的通信llms/→ 各家 LLM 的集成cassettes/→ LLM 调用的录制响应测试重放时不真正发网络请求根目录直接放文件的多是核心类测试比如 test_task.py。在编辑器里全局搜test_模块名十有八九能找到。用 Mock 和断言把测试锁死Mock模拟是 CrewAI 单元测试的核心手法把慢、贵、不稳定的外部依赖换成受控的假对象被测逻辑保持真身。一句话不关心的 Mock被测的别 Mock。这是企业版的测试配置页选迭代次数、勾选要测哪个模型和你在单测里挑假 LLM是同一个思路。仓库里 test_task_guardrails.py 就是标准示范Task 是真的、guardrail 校验逻辑是真的只 Mock 掉 Agent。你照着写# 对只 Mock LLM 调用被测的 guardrail 用真对象 agent Mock() agent.execute_task.return_value test result task Task(descriptiontest, agentagent, guardrails[validate]) assert task.execute_sync(agentagent).raw test result # 错你测的是 guardrail 校验逻辑却把 validate 本身 Mock 掉了 # 测试永远绿但它什么都没验证养成这个习惯测试才不只是跑一遍看着对而是真的在验证行为。测试失败了先看哪里红了先看环境别急着怀疑逻辑。CrewAI 的 LLM 测试用 VCR一个录制/回放 HTTP 请求的工具把真实响应存进lib/crewai/tests/cassettes/该调 LLM 的测试报网络或鉴权错多半是 cassette 缺失或没匹配上而不是你的代码写错。确认是逻辑问题跑uv run pytest 文件 -k 用例名 -vv看完整断言栈想搞清楚 Agent 为什么这么干打开 tracing执行追踪逐步记录每个环节的输入输出让测试自动跑起来 ✅仓库的 .github/workflows/tests.yml 在 pull request 时触发把完整测试套件切成 8 片并行跑覆盖 Python 3.10 到 3.13任何一片失败都会拦住合并。CI 细节不用深究记住一条本地uv run pytest过了PR 大概率是绿的反过来 PR 红了就去翻对应分片那一组的日志。下一步可以做什么把 Mock 换成真 Agent 加一次真实 LLM 调用写个集成测试key 放进.env.test文件仓库的 conftest.py 会自动加载它。再翻几个cassettes/下的录制文件理解请求是怎么被录下来又重放的。这两步做完给你自己项目里的 Crew 补测试就是小时级的事。【免费下载链接】crewAIFramework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks.项目地址: https://gitcode.com/GitHub_Trending/cr/crewAI创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表