如何监控 AI 智能体:CloudWatch 基础设施、Arize Phoenix 追踪与 LLM-as-Judge 质量评估

作者
  • avatar
    姓名
    Nino
    职业
    Senior Tech Editor

AI Agent(智能体)并非传统的确定性软件。它们具备推理能力,能够调用工具并自主做出决策。这意味着它们可能以一种简单健康检查(Health Check)永远无法捕获的方式失败。例如,一个 Agent 响应可能在技术上是成功的(返回了 200 状态码),但从业务逻辑上看却是完全错误的。传统的监控手段无法回答诸如“Agent 是否正确理解了工具返回的结果?”或者“回答是否包含幻觉?”等关键问题。

为了解决这一挑战,我们需要构建一个三层观测栈(Observability Stack)。本文将详细介绍如何结合 Arize Phoenix、Amazon CloudWatch 以及 LLM-as-Judge(大模型作为评委)模式,为基于 n1n.ai 等平台构建的 AI 应用提供全方位的监控。通过使用 n1n.ai 提供的稳定 API 接口,开发者可以更专注于观测逻辑的实现,而无需担心底层模型调用的不稳定性。

为什么传统的监控对 AI Agent 失效?

在传统的 Web 开发中,监控的重点是延迟、吞吐量和错误率。然而,在 Agent 领域,即使这些指标全部显示为绿色(正常),用户体验也可能非常糟糕。比如,用户询问“北京明天的天气”,Agent 如果回答“我不知道”,在 CloudWatch 中这会被记录为一次成功的请求(低延迟、零错误),但对用户而言,这是一个失败的交互。

因此,我们需要将观测性拆分为三个维度:

  1. AI 链路追踪 (Traces): 记录 Agent 的思考过程。它调用了哪个工具?输入是什么?输出又是什么?
  2. 基础设施监控 (Infrastructure): 系统是否健康?运行速度如何?消耗了多少 Token?成本是多少?
  3. 质量评估 (Quality Evals): Agent 的回答是否准确、有帮助且安全?

第一层:使用 Arize Phoenix 实现 AI 链路追踪

Arize Phoenix 是一个开源的 AI 观测平台,支持 OpenTelemetry (OTel) 标准。它最大的优点是可以在本地运行,无需复杂的云端配置。通过 OpenInference 协议,我们可以自动捕获 Agent 内部的所有 Span(跨度)。

环境配置与代码实现

首先,我们需要启动 Phoenix 并配置 OTel 导出器,以便将链路数据发送到本地 UI(默认端口 6006)。

import phoenix as px
from opentelemetry import trace as trace_api
from opentelemetry.sdk import trace as trace_sdk
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from openinference.instrumentation.bedrock import BedrockInstrumentor

# 启动本地 Phoenix 应用
session = px.launch_app()

# 配置 OTel 追踪提供者
tracer_provider = trace_sdk.TracerProvider()
tracer_provider.add_span_processor(
    SimpleSpanProcessor(OTLPSpanExporter(endpoint="http://localhost:6006/v1/traces"))
)
trace_api.set_tracer_provider(tracer_provider)

# 自动插桩:捕获所有 Bedrock/LLM 调用
BedrockInstrumentor().instrument(tracer_provider=tracer_provider)

通过这种方式,当你的 Agent(例如使用 Claude 3.5 Sonnet)在 n1n.ai 上运行时,Phoenix 会捕获完整的调用树。你可以清晰地看到 Agent 是如何从原始提示词(Prompt)一步步演化到最终输出的,这对于调试复杂的 RAG(检索增强生成)流程至关重要。

第二层:利用 Amazon CloudWatch 监控基础设施

虽然 Phoenix 提供了深度逻辑视图,但 CloudWatch 仍然是监控系统整体健康状况的首选。我们需要跟踪四个核心指标:延迟、Token 使用量、成功率和工具调用次数。这些数据对于成本控制和性能优化至关重要。

我们可以编写一个简单的监控类来处理指标的上报:

import boto3
import time

class AgentMonitor:
    def __init__(self, namespace="AI/Agents"):
        self.cw = boto3.client("cloudwatch", region_name="us-east-1")
        self.namespace = namespace

    def record_metrics(self, agent_name, latency, tokens, is_success):
        metrics = [
            {"MetricName": "Latency", "Value": latency, "Unit": "Milliseconds"},
            {"MetricName": "Tokens", "Value": tokens, "Unit": "Count"},
            {"MetricName": "Success", "Value": 1 if is_success else 0, "Unit": "Count"}
        ]
        self.cw.put_metric_data(
            Namespace=self.namespace,
            MetricData=metrics,
            Dimensions=[{"Name": "AgentName", "Value": agent_name}]
        )

高级建议: 建议为 Success 指标设置 CloudWatch Alarm(警报)。如果连续 5 分钟内成功率低于 95%,则自动触发通知。这能帮助你在大规模故障发生前及时介入。

第三层:LLM-as-Judge —— 自动化质量评估

这是目前 AI 观测领域最前沿的部分。我们使用一个性能更强的模型(如 OpenAI o3 或 Claude 3.5 Sonnet)作为“裁判”,对 Agent 的输出进行打分。这种方法虽然会增加一定的 Token 成本,但它是实现自动化回归测试的唯一途径。

在 Phoenix 中,我们可以使用 @create_evaluator 装饰器快速构建评估逻辑:

from phoenix.evals import LLM, create_evaluator, evaluate_dataframe
import pandas as pd

# 配置评委模型,建议使用 n1n.ai 接入的高性能模型
eval_model = LLM(provider="bedrock", model="us.anthropic.claude-3-5-sonnet-v1")

@create_evaluator(name="帮助性评分", source="llm")
def helpfulness_eval(input: str, output: str) -> float:
    prompt = (
        f"请作为一名公正的裁判,评价以下 AI 回答的帮助性。\n"
        f"用户问题: {input}\n"
        f"AI 回答: {output}\n"
        f"请给出 0.0 到 1.0 之间的分数,仅返回数字。"
    )
    result = eval_model.generate_text(prompt=prompt)
    try:
        return float(result.strip())
    except:
        return 0.5

运行评估后,结果会直接显示在 Phoenix 的 UI 中。你可以看到每个请求的“链路追踪”与“质量分数”并排显示。如果某个请求的延迟很低但分数也很低,你就知道是 Prompt 或模型推理出现了问题,而不是基础设施问题。

成本与性能分析

维度Arize PhoenixCloudWatchLLM-as-Judge
运行环境本地/私有云AWS 托管模型 API 调用
主要成本存储与算力指标上报费Token 消耗费
适用场景调试与开发生产运维质量保障与回归

对于大多数初创公司和开发者来说,建议首先在本地集成 Phoenix。随着业务规模扩大,再通过 n1n.ai 统一管理 API 调用,并引入 CloudWatch 指标。最后,针对核心业务流程引入 LLM-as-Judge 评估。

总结

AI Agent 的监控需要从“系统健康”转向“语义健康”。通过 Arize Phoenix 捕获逻辑细节,利用 CloudWatch 确保物理稳定,再通过 LLM-as-Judge 保证内容质量,你才能构建出真正可靠的 AI 应用。在这个过程中,选择一个像 n1n.ai 这样支持多模型、高并发且稳定的 API 聚合平台,将极大简化你的技术栈复杂度。

立即在 n1n.ai 获取免费 API 密钥。