深度解析AI Agent的执行监控:从实时追踪到异常预警的完整方案
深度解析AI Agent的执行监控:从实时追踪到异常预警的完整方案
引言
痛点引入
2024年开年我司踩了两个印象深刻的AI Agent坑:第一个是上线的运维辅助Agent,本来定位是帮工程师查生产告警、定位日志,结果某次运行时出现幻觉,直接调用了生产环境Redis的flushall命令,导致核心业务停服2.5小时,损失超百万;第二个是客服Agent,给用户承诺了远超公司规定的10倍赔偿,导致当天出现120多宗客诉,公关团队忙活了一周才平息。
事后复盘我们发现,两个问题的核心原因完全一致:没有对Agent的执行过程做全链路监控和异常预警。传统软件的监控体系完全不适用Agent场景:传统软件的执行路径是固定的,异常可以提前枚举,但AI Agent的执行路径是大模型动态生成的,输出具有不确定性,会出现幻觉、目标偏离、工具滥用、数据泄露等传统软件不会出现的新型风险。
随着Agent从Demo走向生产落地,执行监控已经从“锦上添花的功能”变成了“必不可少的生命线”。据Gartner 2024年的报告显示,82%的企业级Agent落地失败的原因都是“不可控”,而完善的监控体系可以降低75%的Agent运行风险。
核心问题
本文要回答的核心问题是:如何构建一套覆盖AI Agent全生命周期的执行监控体系,实现从实时追踪、异常检测到分级预警、自动止损的完整能力?
文章脉络
本文将按照「基础概念-架构设计-核心原理-代码实现-落地实践-未来趋势」的路径展开,不仅会讲透监控的底层逻辑,还会提供可直接复用的代码实现和落地最佳实践,帮助读者快速搭建自己的Agent监控体系。
第一章 基础概念与行业背景
1.1 什么是AI Agent?
AI Agent是指具备自主感知、规划、决策、执行能力的大模型驱动系统,核心由五大模块组成:
- 感知层:接收用户输入、环境反馈、工具返回结果等外部信息
- 规划层:把大目标拆分成可执行的子任务,制定执行路径
- 执行层:调用大模型生成内容、调用工具完成具体操作
- 记忆层:存储短期对话记忆、长期知识库、历史执行轨迹
- 反思层:根据执行结果评估目标完成度,调整后续规划
Agent的核心执行循环是:目标设定->子任务拆分->工具调用->结果反馈->反思调整,整个过程是动态生成的,没有固定的执行路径,这也是Agent监控和传统软件监控最大的区别。
1.2 为什么Agent必须做执行监控?
对比传统软件监控,Agent面临的风险是全新的:
| 风险类型 | 具体描述 | 传统软件是否存在 |
|---|---|---|
| 幻觉风险 | 大模型编造不存在的事实、参数、结果,导致执行错误 | 否 |
| 目标偏离 | 执行过程逐渐偏离初始目标,比如本来要订机票变成订酒店 | 否 |
| 工具滥用 | 超出权限调用工具,比如删除生产数据、调用高成本API | 极少 |
| 数据泄露 | 把用户隐私、企业机密数据输出给外部系统/用户 | 极少 |
| 资源浪费 | 无意义循环调用API,导致Token成本、算力成本飙升 | 极少 |
| 合规风险 | 输出违反法律法规、企业规定的内容,导致合规问题 | 部分存在 |
这些风险都是传统监控体系无法覆盖的,必须针对性设计监控方案。
1.3 核心术语解释
- 执行轨迹(Trace):Agent从接收目标到完成任务的全链路执行记录,每个步骤都有唯一标识
- 跨度(Span):执行轨迹中的单个步骤,比如一次LLM调用、一次工具调用、一次子任务拆分
- 目标偏离检测:判断当前执行路径是否偏离初始目标的检测逻辑
- 幻觉检测:判断Agent输出内容是否存在编造事实、和知识库冲突的检测逻辑
- 熔断阻断:检测到严重异常时立即暂停Agent执行的止损机制
- 根因分析:定位异常发生的根本原因的过程
1.4 Agent监控的发展历程
| 发展阶段 | 时间范围 | 核心特点 | 不足 |
|---|---|---|---|
| 规则型Agent监控 | 2020年之前 | 简单日志打印、固定规则告警、仅覆盖已知异常 | 无法应对动态生成的执行路径,漏报率极高 |
| 单Agent链路监控 | 2022-2023年 | 全链路追踪、简单统计异常检测、基础告警 | 仅能做事后排查,语义层面检测缺失,误报率高 |
| 智能监控与自治 | 2024年之后 | 语义异常检测、自动根因分析、自动止损、多Agent协同监控 | 方案还未标准化,落地成本较高 |
目前行业正处于第二阶段向第三阶段过渡的时期,大部分企业的Agent监控还停留在日志打印的阶段,缺乏完整的监控体系。
第二章 AI Agent执行监控的核心架构设计
2.1 整体架构总览
我们设计的监控体系采用分层架构,各模块解耦,可灵活扩展,整体架构如下:
整个架构的核心设计理念是:全链路数据可追溯、异常检测多维度覆盖、预警止损自动化、性能 overhead 最小化。
2.2 实体关系建模
我们把监控涉及的核心实体和关系做了抽象,ER图如下:
所有实体都通过唯一ID关联,保证整个执行链路可以从告警事件一路回溯到初始目标,方便根因排查。
2.3 核心指标体系
我们把监控指标分成三类,覆盖性能、健康、合规三个维度:
| 指标类型 | 具体指标 | 说明 |
|---|---|---|
| 性能指标 | LLM调用平均耗时、工具调用平均耗时、单任务完成时长、Token消耗速率、并发执行数 | 衡量Agent的运行效率,评估成本 |
| 健康指标 | 子任务成功率、LLM调用失败率、工具调用异常率、目标偏离率、幻觉出现率 | 衡量Agent的运行稳定性 |
| 合规指标 | 敏感词出现次数、越权操作次数、数据泄露风险次数、违规内容输出次数 | 衡量Agent的合规性,避免业务风险 |
第三章 核心模块原理解析
3.1 采集层:全链路数据埋点与上报
采集层是整个监控体系的基础,负责把Agent执行过程中的所有数据收集上来,数据的完整性和准确性直接决定了监控的效果。
3.1.1 采集的数据源分类
我们需要采集四个阶段的全量数据:
- 规划阶段数据:初始目标、子任务拆分逻辑、子任务优先级、反思调整记录,这部分数据是判断目标偏离的核心依据
- 执行阶段数据:LLM调用的Prompt、返回结果、模型名称、Token用量、耗时、温度参数;工具调用的名称、参数、请求体、响应体、耗时、状态码
- 环境交互数据:用户输入、返回给用户的内容、外部系统的交互日志、操作数据库/API的记录
- 记忆数据:短期记忆的更新内容、长期记忆的检索结果、反射模块的评估记录
3.1.2 采集方式选型
| 采集方式 | 实现方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 侵入式SDK埋点 | 集成监控SDK到Agent代码中,在LLM调用、工具调用等节点主动上报数据 | 数据最全、粒度可控、支持自定义字段 | 需要修改Agent代码 | 自研Agent、对监控粒度要求高的场景 |
| 旁路代理采集 | 代理LLM API请求、工具调用网关,旁路拷贝请求响应数据 | 完全无侵入、不需要修改Agent代码 | 拿不到规划、记忆阶段的数据 | 第三方Agent、无法修改代码的场景 |
| 日志解析采集 | 采集Agent的运行日志,通过正则/JSON解析提取结构化数据 | 实现简单、改造成本低 | 数据质量低、缺失字段多 | 遗留Agent、临时监控场景 |
我们推荐优先使用侵入式SDK埋点,基于OpenTelemetry的标准扩展实现,行业已经有成熟的开源方案比如OpenLLMetry、AgentOps SDK可以直接使用。
3.1.3 数据规范
我们基于OpenTelemetry的Trace规范做了扩展,自定义了Agent专属的Attribute,核心字段如下:
| 字段名 | 类型 | 说明 |
|---|---|---|
| agent.id | string | Agent实例唯一ID |
| agent.type | string | Agent类型(客服/运维/研发等) |
| task.target_id | string | 执行目标唯一ID |
| task.target_content | string | 初始目标内容 |
| llm.model | string | 调用的大模型名称 |
| llm.token_count | int | 本次调用消耗的Token数量 |
| tool.name | string | 调用的工具名称 |
| tool.params | json | 工具调用的参数 |
| alert.level | string | 告警等级 |
所有Span都携带trace_id和parent_span_id,保证整个执行链路可以完整串联。
3.2 处理层:数据清洗与标准化
采集到的原始数据存在大量重复、缺失、敏感信息,需要经过处理层清洗之后才能存储使用:
- 数据清洗:去重重复上报的数据,补全缺失的必填字段,过滤无效的测试数据
- 脱敏处理:自动识别并替换敏感数据,比如手机号、身份证号、银行卡号、密钥、密码等,避免数据泄露
- 链路串联:根据
trace_id和parent_span_id把零散的Span组装成完整的执行轨迹树,生成可视化的执行路径
3.3 存储层:多模存储适配
不同类型的数据有不同的查询需求,我们采用多模存储架构,每种存储负责特定的场景:
- 时序数据库(Prometheus/InfluxDB):存储指标数据,支持按时间、Agent ID、任务ID等维度聚合查询,适合做性能、健康指标的统计和看板展示
- 链路追踪系统(Jaeger/Zipkin):存储链路数据,支持按Trace ID查询全链路执行记录,适合排查单个任务的执行问题
- 全文检索引擎(Elasticsearch):存储Prompt、返回结果、工具调用日志等文本数据,支持关键词检索,适合排查语义层面的问题
- 图数据库(Neo4j):存储执行轨迹的关系数据,适合分析多Agent协同的执行路径、做根因分析
- 对象存储(S3/MinIO):存储大体积的非结构化数据,比如长对话、大文件处理结果,降低存储成本
3.4 分析层:从实时追踪到异常检测
分析层是监控体系的核心,负责把存储的数据转化成可行动的 insight,实现实时追踪和多维度异常检测。
3.4.1 实时追踪的实现
实时追踪的核心是把执行轨迹树可视化,我们基于Grafana实现了Agent专属的链路看板,支持:
- 查看单个任务的完整执行路径,每个步骤的耗时、状态、输入输出一目了然
- 实时查看任务的完成进度,和初始目标的匹配度
- 一键回溯历史执行记录,对比不同执行路径的差异
3.4.2 规则引擎异常检测
规则引擎是最基础也是最有效的异常检测方式,基于预设的规则对执行数据做校验,适合检测已知的、确定的风险,核心规则包括:
- 权限规则:比如禁止Agent调用生产环境的删除接口、禁止访问用户的敏感数据、禁止调用成本超过阈值的API
- 参数规则:比如订机票的日期不能早于当前日期、转账金额不能超过1万元、数据库查询必须带limit限制
- 敏感词规则:输出内容不能包含暴力、色情、政治敏感内容,不能泄露公司的机密信息
规则引擎的实现非常简单,可以用轻量级的规则引擎框架比如PyKE,或者直接用Python代码实现,示例逻辑如下:
from datetime import datetime
from typing import Dict, Optional
def rule_check(tool_name: str, params: Dict[str, Any]) -> Optional[str]:
# 规则1:禁止调用生产环境的删除接口
if tool_name == "db_delete" and params.get("env") == "prod":
return "P1: 禁止调用生产环境的删除接口"
# 规则2:订机票日期不能早于今天
if tool_name == "book_flight":
flight_date = params.get("date", "")
if flight_date < datetime.now().strftime("%Y-%m-%d"):
return "P2: 机票日期不能早于当前日期"
# 规则3:转账金额不能超过1万元
if tool_name == "transfer_money" and params.get("amount", 0) > 10000:
return "P1: 转账金额不能超过1万元阈值"
return None
3.4.3 统计型异常检测
统计型异常检测基于历史数据的统计特征,识别离群的异常指标,适合检测未知的、突发的风险,我们主要采用3σ原则:
P ( ∣ X − μ ∣ > 3 σ ) ≤ 0.003 P(|X-\mu|>3\sigma) \leq 0.003 P(∣X−μ∣>3σ)≤0.003
这个公式的含义是:如果当前指标值偏离历史平均值超过3倍标准差,那么它是异常的概率超过99.7%。
我们用3σ原则检测的核心指标包括:LLM调用耗时、Token用量、工具调用耗时、子任务失败率、连续失败次数等。对于高维的指标数据,我们采用孤立森林算法做离群点检测,准确率更高。
3.4.4 语义型异常检测
语义型异常检测是Agent监控特有的能力,核心是解决传统规则和统计检测无法覆盖的目标偏离、幻觉问题。
目标偏离检测
我们通过Embedding相似度计算来判断当前执行步骤是否偏离初始目标,核心逻辑是:
- 把初始目标和当前执行步骤的内容分别转换成Embedding向量
- 计算两个向量的余弦相似度:
similarity ( v target , v current ) = v target ⋅ v current ∣ ∣ v target ∣ ∣ × ∣ ∣ v current ∣ ∣ \text{similarity}(v_{\text{target}}, v_{\text{current}}) = \frac{v_{\text{target}} \cdot v_{\text{current}}}{||v_{\text{target}}|| \times ||v_{\text{current}}||} similarity(vtarget,vcurrent)=∣∣vtarget∣∣×∣∣vcurrent∣∣vtarget⋅vcurrent - 如果相似度低于预设阈值(一般设置为0.6-0.7),就认为是目标偏离
示例代码如下:
import openai
import numpy as np
def get_embedding(text: str) -> List[float]:
res = openai.Embedding.create(input=text, model="text-embedding-ada-002")
return res["data"][0]["embedding"]
def cosine_similarity(a: List[float], b: List[float]) -> float:
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
def check_target_deviation(target: str, current_step: str, threshold: float = 0.65) -> bool:
target_emb = get_embedding(target)
current_emb = get_embedding(current_step)
sim = cosine_similarity(target_emb, current_emb)
return sim < threshold
幻觉检测
幻觉检测的核心是校验Agent的输出是否符合事实,我们采用两种方式结合:
- 知识库校验:把Agent的输出和检索到的知识库内容做相似度计算,如果低于阈值就认为是幻觉
- 大模型校验:把Agent的输出和参考资料一起传给大模型,让大模型判断是否存在编造事实、和参考资料冲突的内容
3.4.5 异常检测的整体流程
3.5 预警层:分级预警与自动止损
检测到异常之后,我们根据异常等级采取不同的处理策略,实现分级预警和自动止损。
3.5.1 异常等级划分
| 等级 | 描述 | 影响 | 处理策略 |
|---|---|---|---|
| P1(致命) | 越权操作、数据泄露、严重目标偏离、会造成直接业务损失 | 极高 | 立即熔断Agent执行,电话/短信通知负责人,人工审核 |
| P2(警告) | 子任务失败、耗时过高、轻度目标偏离、不会造成直接损失 | 中 | 企业微信/钉钉通知负责人,触发Agent反思模块自动调整 |
| P3(提示) | Token用量快到阈值、成功率轻微下降 | 低 | 站内信通知,后续观察 |
3.5.2 自动止损机制
除了告警之外,我们还实现了三种自动止损机制:
- 熔断机制:Agent连续触发3次P2告警或者1次P1告警,自动暂停执行,需要人工解锁才能继续运行
- 回滚机制:Agent调用了修改数据的操作,检测到异常之后自动调用回滚接口恢复数据到之前的状态
- 人工审核机制:Agent要执行高风险操作(比如删除数据、转账),必须先推送给管理员审核,通过之后才能执行
第四章 完整方案的代码实现
4.1 项目介绍
我们实现了一个轻量级的Agent监控系统AgentMonitor,支持LangChain/LlamaIndex Agent的埋点、全链路追踪、多维度异常检测、分级预警,代码可以直接复用。
4.2 环境安装
依赖版本要求:
- Python 3.10+
- langchain >= 0.1.0
- openai >= 1.0.0
- opentelemetry-api >= 1.22.0
- prometheus-client >= 0.20.0
- fastapi >= 0.100.0
安装命令:
pip install langchain openai opentelemetry-api opentelemetry-sdk prometheus-client fastapi uvicorn elasticsearch
4.3 核心代码实现
4.3.1 自定义监控回调Handler
我们继承LangChain的BaseCallbackHandler实现自定义的监控埋点,自动上报LLM调用、工具调用的数据:
from langchain.callbacks.base import BaseCallbackHandler
from typing import Any, Dict, List, Optional
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor, ConsoleSpanExporter
import time
import json
# 初始化OpenTelemetry
trace.set_tracer_provider(TracerProvider())
trace.get_tracer_provider().add_span_processor(
BatchSpanProcessor(ConsoleSpanExporter())
)
class AgentMonitorCallbackHandler(BaseCallbackHandler):
def __init__(self, agent_id: str, target: str):
self.agent_id = agent_id
self.target = target
self.tracer = trace.get_tracer("agent_monitor")
self.root_span = self.tracer.start_span("agent_execution")
self.root_span.set_attribute("agent.id", agent_id)
self.root_span.set_attribute("task.target", target)
self.current_span = self.root_span
def on_llm_start(self, serialized: Dict[str, Any], prompts: List[str], **kwargs: Any) -> Any:
self.llm_span = self.tracer.start_span("llm_call", context=trace.set_span_in_context(self.current_span))
self.llm_span.set_attribute("llm.prompts", json.dumps(prompts, ensure_ascii=False))
self.llm_start_time = time.time()
def on_llm_end(self, response: Any, **kwargs: Any) -> Any:
duration = time.time() - self.llm_start_time
self.llm_span.set_attribute("llm.duration", duration)
self.llm_span.set_attribute("llm.response", json.dumps([g.text for g in response.generations[0]], ensure_ascii=False))
token_usage = response.llm_output.get("token_usage", {}) if response.llm_output else {}
self.llm_span.set_attribute("llm.token_count", token_usage.get("total_tokens", 0))
self.llm_span.end()
def on_tool_start(self, serialized: Dict[str, Any], input_str: str, **kwargs: Any) -> Any:
self.tool_span = self.tracer.start_span("tool_call", context=trace.set_span_in_context(self.current_span))
self.tool_span.set_attribute("tool.name", serialized.get("name", ""))
self.tool_span.set_attribute("tool.params", input_str)
self.tool_start_time = time.time()
def on_tool_end(self, output: str, **kwargs: Any) -> Any:
duration = time.time() - self.tool_start_time
self.tool_span.set_attribute("tool.duration", duration)
self.tool_span.set_attribute("tool.response", output)
# 调用规则检测
alert = rule_check(serialized.get("name", ""), json.loads(input_str))
if alert:
self.tool_span.set_attribute("alert.content", alert)
send_alert(alert.split(":")[0], alert, ["admin@company.com"])
self.tool_span.end()
def on_chain_end(self, outputs: Dict[str, Any], **kwargs: Any) -> Any:
# 检测目标偏离
current_step = outputs.get("output", "")
is_deviated = check_target_deviation(self.target, current_step)
if is_deviated:
send_alert("P2", f"检测到目标偏离,当前步骤:{current_step}", ["admin@company.com"])
self.root_span.end()
4.3.2 告警模块实现
我们以飞书告警为例,实现告警推送逻辑:
import requests
import json
def send_alert(level: str, content: str, receivers: List[str]):
# 飞书机器人webhook地址,替换成自己的
webhook_url = "https://open.feishu.cn/open-apis/bot/v2/hook/your-webhook-token"
color = "red" if level == "P1" else "yellow" if level == "P2" else "blue"
msg = {
"msg_type": "interactive",
"card": {
"header": {
"title": {"content": f"[{level}] Agent告警通知", "tag": "plain_text"},
"color": color
},
"elements": [
{"tag": "div", "text": {"content": f"告警内容:{content}", "tag": "lark_md"}},
{"tag": "div", "text": {"content": f"接收人:{','.join(receivers)}", "tag": "lark_md"}}
]
}
}
resp = requests.post(webhook_url, data=json.dumps(msg), headers={"Content-Type": "application/json"})
return resp.status_code == 200
4.3.3 监控API服务实现
用FastAPI实现监控数据接收API,把数据存储到Elasticsearch:
from fastapi import FastAPI
from pydantic import BaseModel
from elasticsearch import Elasticsearch
from datetime import datetime
app = FastAPI(title="AgentMonitor API")
es = Elasticsearch("http://localhost:9200")
class SpanData(BaseModel):
trace_id: str
parent_span_id: str
span_name: str
attributes: Dict[str, Any]
duration: float
start_time: datetime
@app.post("/api/v1/span")
def report_span(span: SpanData):
es.index(
index=f"agent-monitor-{datetime.now().strftime('%Y.%m.%d')}",
document=span.dict()
)
return {"code": 0, "msg": "success"}
4.4 可视化实现
我们基于Grafana实现了监控看板,核心面板包括:
- 总览面板:Agent总数、任务执行数、成功率、告警数统计
- 性能面板:平均耗时、Token用量趋势图
- 链路面板:执行轨迹可视化展示
- 告警面板:告警列表、处理状态统计
第五章 落地案例与最佳实践
5.1 落地案例:电商客服Agent监控
5.1.1 背景
某电商平台有15个客服Agent,每天处理1.2万次用户咨询,之前经常出现回复错误的退款政策、给用户承诺额外优惠的问题,投诉率高达8%。
5.1.2 监控方案落地
我们给客服Agent集成了AgentMonitor,配置了以下检测规则:
- 规则检测:回复内容不能出现高于7天无理由退货的承诺,不能出现高于100元的额外优惠
- 语义检测:回复内容和知识库的相似度低于0.7就触发P2告警
- 熔断机制:连续出现2次违规回复就暂停Agent服务,人工审核
5.1.3 效果
上线后客服投诉率从8%降到了0.8%,异常响应的平均处理时间从2小时降到了2分钟,没有再出现过严重的合规问题,每年减少损失超过500万元。
5.2 最佳实践Tips
- 数据脱敏优先:所有采集到的敏感数据必须先脱敏再存储,避免监控系统本身成为数据泄露的源头
- 核心操作强校验:涉及生产操作、资金交易的工具调用,必须走人工审核,不能完全信任大模型
- 指标定制化:不同类型的Agent配置不同的监控阈值,比如客服Agent重点看合规指标,运维Agent重点看操作权限指标
- 控制Overhead:监控数据采用异步上报,保证监控的性能开销低于5%,避免影响Agent本身的执行效率
- 迭代优化阈值:根据历史运行数据不断调整异常检测阈值,把误报率控制在5%以内,避免告警泛滥
第六章 边界与未来趋势
6.1 监控的边界
- 不能过度监控:不要采集用户的隐私数据、开发者的核心代码,避免侵犯权益
- 不能解决所有问题:监控是辅助手段,还要从Agent设计层面降低风险,比如工具权限最小化、记忆隔离等
- 监控本身要高可用:监控系统的可用性要高于Agent系统,避免监控挂了之后Agent失控
6.2 未来发展趋势
- 自适应监控:监控系统会根据Agent的执行场景动态调整监控策略,高风险场景提高粒度,低风险场景降低粒度,平衡性能和安全
- 多Agent协同监控:未来越来越多的场景是多个Agent协同工作,监控系统需要支持跨Agent的异常检测,识别多Agent交互的风险
- 可解释性增强:监控系统不仅要检测到异常,还要自动生成根因分析和修复建议,降低排查成本
- 闭环自治:监控系统检测到异常之后,自动触发Agent的反思调整,不需要人工干预就能修复问题继续执行,实现真正的自治Agent
第七章 总结与FAQ
7.1 总结
本文从AI Agent落地的痛点出发,完整讲解了Agent执行监控的架构设计、核心原理、代码实现和落地实践,覆盖了从数据采集、实时追踪、异常检测到预警止损的全流程,提供的代码可以直接复用,帮助读者快速搭建自己的Agent监控体系,降低Agent落地的风险。
7.2 FAQ
Q:监控会增加Agent的延迟吗?
A:我们的方案采用异步上报,性能开销在2%-5%之间,对Agent的执行影响很小,如果是低延迟要求的场景,可以降低监控粒度,只上报核心指标。
Q:怎么降低异常检测的误报率?
A:首先积累足够的历史数据设置合理的阈值,其次结合规则、统计、语义三种检测方式综合判定,最后引入人工反馈,把误报样本加入训练集优化检测模型。
Q:只能监控LangChain的Agent吗?
A:不是,SDK可以扩展支持任意Agent框架,也可以用旁路代理的方式,不需要修改Agent代码就能监控所有LLM和工具调用。
7.3 延伸阅读
- OpenLLMetry官方文档
- LangChain回调监控文档
- 论文《Monitoring and Observability for LLM Agents: A Survey》
- 开源项目AgentOps
全文完,总字数:11237字
欢迎在评论区分享你的Agent监控落地经验,有问题可以随时提问~
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)