Type something to search...
为 Huggingface Smolagents 解锁全面可检查性:使用 Opentelemetry 的分步指南!

为 Huggingface Smolagents 解锁全面可检查性:使用 Opentelemetry 的分步指南!

检查AI代理运行可能是一项挑战,没有完整的可检查性,AI代理环境是不完整的

你为什么应该记录你的代理运行?

传统的预定义图形方法需要将用户请求匹配到最接近的意图,限制了运行在特定流程路径上。

当用户偏离这些预定义路径时,用户体验会下降,这通常被视为超出领域。

Image 16

另一方面,AI代理实时动态生成链,提供更高水平的灵活性和自主性。

为了确保透明度,全面了解AI代理的决策链和节点至关重要。映射AI代理路径的遥测有助于有效识别延迟问题或错误。

原始日志可能难以解释,但交互式可视化表示简化了探索和调试。

为了标准化仪器,HuggingFace使用OpenTelemetry。

OpenTelemetry允许您无缝集成仪器层,像往常一样运行您的代理,并自动将所有内容记录到您的平台。

入门指南

首先,安装必要的包。在这个例子中,HuggingFace 使用 Phoenix by Arize AI,这是一个强大的工具,用于收集和检查日志。

然而,任何 OpenTelemetry 兼容的平台 都可以用于此目的。

pip install smolagents
pip install arize-phoenix opentelemetry-sdk opentelemetry-exporter-otlp openinference-instrumentation-smolagents

然后可以启动 Phoenix 服务器,并通过浏览器访问……

python -m phoenix.server.main serve

下面是终端的视图……

Image 17

LangChainLangSmith 类似,需要在你的 Python 脚本中添加一小段代码,如下所示。这让我想起了 LangChain 在 LangChain 应用中添加 LangSmith 监控的方式。

from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor

from openinference.instrumentation.smolagents import SmolagentsInstrumentor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor

endpoint = "http://0.0.0.0:6006/v1/traces"
trace_provider = TracerProvider()
trace_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter(endpoint)))

SmolagentsInstrumentor().instrument(tracer_provider=trace_provider)

如果你喜欢这篇文章

以下是完整的 AI 代理代码,可以复制并粘贴到单个 Python 文件中。

from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor

from openinference.instrumentation.smolagents import SmolagentsInstrumentor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor

endpoint = "http://0.0.0.0:6006/v1/traces"
trace_provider = TracerProvider()
trace_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter(endpoint)))

SmolagentsInstrumentor().instrument(tracer_provider=trace_provider)

from typing import Optional

from smolagents import HfApiModel, LiteLLMModel, TransformersModel, tool
from smolagents.agents import CodeAgent, ToolCallingAgent

available_inferences = ["hf_api", "transformers", "ollama", "litellm"]
chosen_inference = "transformers"

print(f"选择的模型: '{chosen_inference}'")

if chosen_inference == "hf_api":
    model = HfApiModel(model_id="meta-llama/Llama-3.3-70B-Instruct")

elif chosen_inference == "transformers":
    model = TransformersModel(model_id="HuggingFaceTB/SmolLM2-1.7B-Instruct", device_map="auto", max_new_tokens=1000)

elif chosen_inference == "ollama":
    model = LiteLLMModel(
        model_id="ollama_chat/llama3.2",
        api_base="http://localhost:11434",  
        api_key="your-api-key",  
        num_ctx=8192,  
    )

elif chosen_inference == "litellm":
    model = LiteLLMModel(model_id="gpt-4o")

@tool
def get_weather(location: str, celsius: Optional[bool] = False) -> str:
    """
    获取给定地点未来几天的天气。
    这个工具其实并不在乎地点,它讨厌任何地方的天气。

    Args:
        location: 地点
        celsius: 温度
    """
    return "天气非常糟糕,暴雨倾盆,气温低于 -10°C"

agent = ToolCallingAgent(tools=[get_weather], model=model)

print("ToolCallingAgent:", agent.run("巴黎的天气怎么样?"))

agent = CodeAgent(tools=[get_weather], model=model)

print("CodeAgent:", agent.run("巴黎的天气怎么样?"))

如果你喜欢这篇文章并想表达一些爱 ❤️

一旦 AI Agent 运行

在遥测 GUI 中可以看到痕迹。注意代理名称、链条以及运行中的 llm 和工具步骤,包括输入、输出、延迟等信息。

Image 18

下面是更深入的视图,模型的输入消息和系统可见…

Image 19

最后,遥测提供 AI Agents 决策过程的实时可见性,帮助诊断延迟、错误或意外行为等问题。

通过映射 AI Agent 工作流,遥测使开发者能够理解不同节点之间的交互,确保更顺畅和高效的执行。

没有适当的日志记录和监控,调试 AI Agents 可能会很具挑战性,但遥测通过结构化的见解和可视化表示简化了故障排除。

Image 20

首席布道者 @ Kore.ai | 我热衷于探索 AI 与语言的交集。从语言模型、AI Agents 到代理应用、开发框架和数据中心生产力工具,我分享这些技术如何塑造未来的见解和想法。

Image 21

Related Posts

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

AI 研究报告和论文写作 合并两个系统指令以获得两个模型的最佳效果 Perplexity AI 的 Deep Research 工具提供专家级的研究报告,而 OpenAI 的 ChatGPT-o3-mini-high 擅长推理。我发现你可以将它们结合起来生成令人难以置信的论文,这些论文比任何一个模型单独撰写的都要好。你只需要将这个一次性提示复制到 **

阅读更多
让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

Non members click here作为一名软件开发人员,多年来的一个发现总是让我感到惊讶,那就是人们还在 Excel

阅读更多
使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

10 个常见问题解答 本文是我推出的一个名为“10 个常见问题解答”的新系列的一部分。在本系列中,我旨在通过回答关于该主题的十个最常见问题来分解复杂的概念。我的目标是使用简单的语言和相关的类比,使这些想法易于理解。 图片来自 [Solen Feyissa](https://unsplash.com/@solenfeyissa?utm_source=medium&utm_medi

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

在AI军备竞赛中分辨事实与虚构 DeepSeek AI真的是它所宣传的游戏规则改变者,还是仅仅聪明的营销和战略炒作?👀 虽然一些人将其视为AI效率的革命性飞跃,但另一些人则认为它的成功建立在借用(甚至窃取的)创新和可疑的做法之上。传言称,DeepSeek的首席执行官在疫情期间像囤积卫生纸一样囤积Nvidia芯片——这只是冰山一角。 从其声称的550万美元培训预算到使用Open

阅读更多
Type something to search...