news 2026/4/29 20:49:51

CrewAI智能体开发:MLflow 集成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CrewAI智能体开发:MLflow 集成

使用 MLflow 快速开始监控您的智能体。

MLflow 概述

MLflow 是一个开源平台,旨在帮助机器学习从业者和团队处理机器学习过程的复杂性。它提供了一个跟踪功能,通过捕获应用程序服务执行的详细信息,增强了生成式 AI 应用程序中的 LLM 可观测性。跟踪提供了一种记录请求每个中间步骤的输入、输出和元数据的方法,使您能够轻松查明错误和意外行为的来源。

功能

  • 跟踪仪表板:通过包含跨度的输入、输出和元数据的详细仪表板监控您的 crewAI 智能体的活动。
  • 自动化跟踪:与 crewAI 完全自动集成,可以通过运行mlflow.crewai.autolog()启用。
  • 少量工作实现手动跟踪:通过 MLflow 的高级 Fluent API(如装饰器、函数包装器和上下文管理器)自定义跟踪。
  • OpenTelemetry 兼容性:MLflow 跟踪支持将跟踪导出到 OpenTelemetry 收集器,然后可用于将跟踪导出到各种后端,例如 Jaeger、Zipkin 和 AWS X-Ray。
  • 打包和部署智能体:将您的 crewAI 智能体打包并部署到具有各种部署目标的推理服务器。
  • 安全托管 LLM:通过 MFflow 网关在一个统一端点中托管来自不同提供商的多个 LLM。
  • 评估:使用方便的 APImlflow.evaluate(),通过各种指标评估您的 crewAI 智能体。

设置说明

安装 MLflow 包

# The crewAI integration is available in mlflow>=2.19.0 pip install mlflow

启动 MFflow 跟踪服务器

# This process is optional, but it is recommended to use MLflow tracking server for better visualization and broader features. mlflow server

在您的应用程序中初始化 MLflow

在您的应用程序代码中添加以下两行

import mlflow mlflow.crewai.autolog() # Optional: Set a tracking URI and an experiment name if you have a tracking server mlflow.set_tracking_uri("https://:5000") mlflow.set_experiment("CrewAI")

crewAI 智能体跟踪的示例用法

from crewai import Agent, Crew, Task from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource from crewai_tools import SerperDevTool, WebsiteSearchTool from textwrap import dedent content = "Users name is John. He is 30 years old and lives in San Francisco." string_source = StringKnowledgeSource( content=content, metadata={"preference": "personal"} ) search_tool = WebsiteSearchTool() class TripAgents: def city_selection_agent(self): return Agent( role="City Selection Expert", goal="Select the best city based on weather, season, and prices", backstory="An expert in analyzing travel data to pick ideal destinations", tools=[ search_tool, ], verbose=True, ) def local_expert(self): return Agent( role="Local Expert at this city", goal="Provide the BEST insights about the selected city", backstory="""A knowledgeable local guide with extensive information about the city, it's attractions and customs""", tools=[search_tool], verbose=True, ) class TripTasks: def identify_task(self, agent, origin, cities, interests, range): return Task( description=dedent( f""" Analyze and select the best city for the trip based on specific criteria such as weather patterns, seasonal events, and travel costs. This task involves comparing multiple cities, considering factors like current weather conditions, upcoming cultural or seasonal events, and overall travel expenses. Your final answer must be a detailed report on the chosen city, and everything you found out about it, including the actual flight costs, weather forecast and attractions. Traveling from: {origin} City Options: {cities} Trip Date: {range} Traveler Interests: {interests} """ ), agent=agent, expected_output="Detailed report on the chosen city including flight costs, weather forecast, and attractions", ) def gather_task(self, agent, origin, interests, range): return Task( description=dedent( f""" As a local expert on this city you must compile an in-depth guide for someone traveling there and wanting to have THE BEST trip ever! Gather information about key attractions, local customs, special events, and daily activity recommendations. Find the best spots to go to, the kind of place only a local would know. This guide should provide a thorough overview of what the city has to offer, including hidden gems, cultural hotspots, must-visit landmarks, weather forecasts, and high level costs. The final answer must be a comprehensive city guide, rich in cultural insights and practical tips, tailored to enhance the travel experience. Trip Date: {range} Traveling from: {origin} Traveler Interests: {interests} """ ), agent=agent, expected_output="Comprehensive city guide including hidden gems, cultural hotspots, and practical travel tips", ) class TripCrew: def __init__(self, origin, cities, date_range, interests): self.cities = cities self.origin = origin self.interests = interests self.date_range = date_range def run(self): agents = TripAgents() tasks = TripTasks() city_selector_agent = agents.city_selection_agent() local_expert_agent = agents.local_expert() identify_task = tasks.identify_task( city_selector_agent, self.origin, self.cities, self.interests, self.date_range, ) gather_task = tasks.gather_task( local_expert_agent, self.origin, self.interests, self.date_range ) crew = Crew( agents=[city_selector_agent, local_expert_agent], tasks=[identify_task, gather_task], verbose=True, memory=True, knowledge={ "sources": [string_source], "metadata": {"preference": "personal"}, }, ) result = crew.kickoff() return result trip_crew = TripCrew("California", "Tokyo", "Dec 12 - Dec 20", "sports") result = trip_crew.run() print(result)

有关更多配置和用例,请参阅MLflow 跟踪文档。

可视化智能体活动

现在,您的 crewAI 智能体的跟踪信息已由 MLflow 捕获。让我们访问 MLflow 跟踪服务器,查看跟踪信息并深入了解您的智能体。在浏览器中打开127.0.0.1:5000访问 MLflow 跟踪服务器。

《DeepSeek高效数据分析:从数据清洗到行业案例》聚焦DeepSeek在数据分析领域的高效应用,是系统讲解其从数据处理到可视化全流程的实用指南。作者结合多年职场实战经验,不仅深入拆解DeepSeek数据分析的核心功能——涵盖数据采集、清洗、预处理、探索分析、建模(回归、聚类、时间序列等)及模型评估,更通过金融量化数据分析、电商平台数据分析等真实行业案例,搭配报告撰写技巧,提供独到见解与落地建议。助力职场人在激烈竞争中凭借先进技能突破瓶颈,实现职业进阶,开启发展新篇。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 20:48:38

OpCore Simplify:让黑苹果配置从复杂到简单的终极指南

OpCore Simplify:让黑苹果配置从复杂到简单的终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 您是否曾经为黑苹果的OpenCore配置而…

作者头像 李华
网站建设 2026/4/29 20:44:24

GEO优化实战:五大核心策略与工具深度测评

生成式引擎优化这款事物,也就是GEO,正摇身一变成为品牌于AI时代去获取流量所开辟的新生战场。它跟那传统的SEO存在差异,GEO朝向的是GPT ,还有 ,以及 等这般的大语言模型,进而使得品牌信息在AI生成的答案这个…

作者头像 李华
网站建设 2026/4/29 20:42:24

全局队列撑不住了——用 Chase-Lev deque 拆解 work-stealing 线程池的无锁调度链路

16 个线程跑一棵递归分治任务树,全局队列线程池用了 3200ms,换成 work-stealing 线程池只要 680ms。 差距不是来自更快的锁、更聪明的调度算法、或者某种编译优化。差距来自一个结构性的设计选择:work-stealing 让每个线程先消费自己生产的任务,只有闲下来的线程才去别人那…

作者头像 李华