用 CrewAI 和 A2A 创建绘画智能体

CrewAI 开发框架

CrewAI 是一个开源的多智能体框架,支持工具集成,用于构建一组协作完成任务的智能体(Agents)。它的设计理念是:每个 Agent 都具备特定角色、工具和目标,通过任务分工与信息共享共同解决复杂问题。

CrewAI 能够提供类人团队的任务执行方式,不但可以构建单智能体助手,更可以构建"项目经理 + 设计师 + 执行者"这样的模拟团队。CrewAI 的另一个优势是可扩展性和生产级部署,因此其实可以广泛应用于你的数据分析、内容创作、自动化流程等场景。

思考题

1、在多个 Agent 并发调用图像生成工具的场景中,如何设计缓存机制以避免图像混淆或数据污染?

提示:

  • 目前系统通过 session_id 隔离用户会话缓存。
  • 思考是否还需要对 image_id 添加命名策略或过期策略。
  • 考虑缓存的清理机制或最大容量限制。

生成图像的方法 generate_image_tool 需要优化,它是取的最后一次生成的图像,如果有 AgentA 和 AgentB同时在一个会话中生成新图像,Agent A可能会错误地引用Agent B最新生成的图像。

解决方案:强制显式引用。

  • 如果 Agent 需要修改现有图像,它必须通过 artifact_file_id 参数显式地引用该图像的 image_id。如果 artifact_file_id 未提供或无效,则不应尝试从缓存中推断任何图像,而是视为生成新图像的请求。
  • 如果Agent需要生成新图像,则不应提供 artifact_file_id。工具将生成一个新的 uuid4().hex 作为 image_id,并将新图像及其ID返回给Agent。Agent应在后续步骤中明确使用此新ID。

如果缓存满了,则无法生成新的图像,可以在放入缓存的时候,设置过期时间。InMemoryCache 类的 set 方法已实现,调用 set 方法时传入 ttl 可以设置过期时间。

最近最少使用 (LRU) 策略

LRU 方案,修改 InMemoryCache 类:

  • init 中添加 expiry_time_seconds 和 max_size 参数。
  • 修改 set 方法,使其存储时间戳并实现 LRU 淘汰逻辑。
  • 修改 get 方法,使其检查过期时间并更新时间戳,同时更新 LRU 顺序。
  • 添加 clean_expired 方法用于主动清理。启动独立线程调用 clean_expired 方法

2、如果用户连续发送多轮提示(如"再给它加上一顶帽子"),如何设计智能画师 Agent 以理解上下文并自动复用上一轮生成的图像?提示:当前版本通过 artifact_file_id 实现图像修改。思考如何自动识别"上一张图"。是否需要结合上下文理解(CoT 或对话历史追踪)?

对于每个会话都维护一个存放图像的字典(Python 3.7+ 的字典会保留插入顺序),修改 generate_image_tool 方法将图像 id 存放到字典中。

修改 invoke 方法,如果没有明确提供 artifact_file_id,尝试自动复用当前会话中最新生成的图像 ID 作为 artifact_file_id,并将其传递给图像生成工具。

本地版

arduino 复制代码
uv run 02_CrewAI_Agent.py

代理需要切换下。

任务执行成功,生成图片可能失败,可以多试几次。

多 Agent

进入 agents/crewai_zh 目录,并参考 agents/crewai_zh/README.md 的说明,启动智能画师 Agent 服务。

uv run .之后,就可以把智能画师 Agent 添加到 UI 应用程序中。

相关推荐
云资源服务商7 分钟前
阿里云无影AgentBay:开启AI智能体“自进化”时代的云端基础设施
人工智能·阿里云·云计算
SEO_juper27 分钟前
AI SEO实战:利用人工智能提升网站排名与流量的完整策略
人工智能·搜索引擎·百度·ai·seo·数字营销
暖阳之下27 分钟前
学习周报二十
人工智能·深度学习·学习
Doc.S37 分钟前
【保姆级教程】在AutoDL容器中部署EGO-Planner,实现无人机动态避障规划
人工智能·python·信息可视化·机器人
乌恩大侠38 分钟前
【东枫电子】AI-RAN 开发者套件,适用于6G科研与教学
人工智能·usrp
A_SKYLINE38 分钟前
低空无人机“一网统飞”深度解构:从技术内核到产业落地,重构低空经济操作系统
人工智能·重构·无人机·产品经理·低空经济
IT_陈寒38 分钟前
React性能优化:10个90%开发者不知道的useEffect正确使用姿势
前端·人工智能·后端
蒋星熠1 小时前
多模态技术深度探索:融合视觉与语言的AI新范式
人工智能·python·深度学习·机器学习·分类·数据挖掘·多分类
Francek Chen1 小时前
【自然语言处理】预训练04:预训练word2vec
人工智能·pytorch·深度学习·自然语言处理·word2vec
元宇宙时间1 小时前
Nine.fun:连接现实娱乐与Web3经济的全新生态
人工智能·金融·web3·区块链