用 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 应用程序中。

相关推荐
DooTask官方号20 分钟前
跨语言协作新范式:阿里云Qwen-MT与DooTask的翻译技术突破
人工智能·ai·项目管理·机器翻译·dootask
凯禾瑞华养老实训室2 小时前
聚焦生活照护能力培育:老年生活照护实训室建设清单的模块设计与资源整合
大数据·人工智能·科技·ar·vr·智慧养老·智慧健康养老服务与管理
倔强青铜三2 小时前
苦练Python第64天:从零掌握多线程,threading模块全面指南
人工智能·python·面试
格林威2 小时前
偏振相机是否属于不同光谱相机的范围内
图像处理·人工智能·数码相机·计算机视觉·视觉检测·工业相机
A-大程序员2 小时前
【pytorch】合并与分割
人工智能·pytorch·深度学习
AI新兵3 小时前
AI大事记12:Transformer 架构——重塑 NLP 的革命性技术(上)
人工智能·自然语言处理·transformer
Dongsheng_20193 小时前
【汽车篇】AI深度学习在汽车零部件外观检测——刹车片中的应用
人工智能·汽车
LONGZETECH3 小时前
【龙泽科技】汽车转向悬架与制动安全系统技术1+X仿真教学软件(1.2.3 -初级)
人工智能·科技·汽车·汽车仿真教学软件·汽车教学软件
JAVA学习通4 小时前
PostgreSQL 的 hstore、arrays 数据类型
人工智能·自然语言处理
AKAMAI4 小时前
云成本困境:开支激增正阻碍欧洲AI创新
人工智能·云原生·云计算