对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs 菜单

检查代理执行跟踪

执行跟踪是对代理处理请求时发生的所有事情的记录。它显示了运行的步骤、每个步骤花费的时间以及每个模型调用使用的词元数量。每次运行代理时, Atlas Agent Engine 都会自动记录跟踪。

使用跟踪可以回答两类问题:

  • 发生了什么事?跟踪显示工具调用、模型调用以及代理为生成响应而采取的其他步骤的顺序。当运行产生意外或错误结果时,请选中此项。

  • 为什么很慢?跟踪显示每个步骤花费的时间,因此您可以找到导致运行缓慢的特定步骤,而不是猜测。

跟踪由三个级别组成:会话、其运行以及每次运行的步数。会话是具有唯一会话ID的对话线程,在调用代理时创建。一个会话可以包含多次运行,每个执行轮次一次。反过来,运行可以包含多个步骤:代理执行的各个操作,例如模型调用或工具调用。要学习;了解每种步骤类型的含义,请参阅本页后面的步骤类型。

您可以在两个位置查看跟踪:

  • Playground,页面右侧的 Traces 抽屉显示您自己的交互式测试会话运行时的跟踪。

  • Monitor 下的 Traces 页面显示所有工作区中项目中的每个会话。无论您的代理是通过 Playground、 用户界面、 REST API还是CLI调用,此处都会显示一个会话,因此您可以在此处找到真正的最终用户活动。 Playground 仅显示您自己的会话。

跟踪中的每个步骤都有一种类型,显示为图标和标签。下表描述了每种类型:

Kind
说明

LLM(大型语言模型)调用

调用大型语言模型,例如生成响应或决定下一步使用哪个工具。

工具调用

对代理有权访问权限的工具的调用,例如数据库查询或外部API请求。

内存

护栏

策略检查

检查是否允许代理执行动作,例如调用特定工具或模型。要学习;了解更多信息,请参阅策略引擎。

代理对代理的调用

从一个代理到同一项目中的另一个代理的调用,在 Playground过滤中显示为 Subagents。要学习;了解更多信息,请参阅使用代理到代理通信。

图形节点

代理执行图表中不属于其他步骤类型(例如路由步骤或控制流步骤)的节点。

人工查看

注意

长时间运行的 Human review 步骤不是性能问题。等待决策时,代理不执行任何工作。

您可以使用任何组织或项目级别的读取角色查看项目的跟踪。这些角色包括组织管理员、组织成员、项目所有者、项目成员和代理开发人员。

经组织许可, MongoDB支持工程师还可以通过只读数据查看器查看您的跟踪记录。组织管理员会在有限的时间内授予此访问权限。当授权处于活动状态时,数据查看器会显示与“跟踪”页面相同的会话、运行和步骤。数据查看器中的横幅说明该视图是只读的,并标识了授权的到期时间。步骤有效负载(例如工具调用输入和输出)在此视图中进行编辑。要学习;了解如何授予此访问权限,请参阅授予支持访问权限。

Atlas Agent Engine 在 Playground 聊天面板旁边显示一个 Traces 抽屉。抽屉会在当前运行执行时实时更新。打开 Timeline 开关以在聊天旁边显示步骤持续时间条。

抽屉顶部的运行摘要显示运行提示,如果运行停止或被阻止,则显示状态徽章。

提示下方有一个摘要行,其中报告了运行的总持续时间、第一个事件发生的时间以及按类型划分的步数计数,例如“2 工具”。首次事件发生时间是指代理执行第一个可见步骤之前的延迟。这与运行的总持续时间是分开的,因此运行可以缓慢启动但不会缓慢完成,反之亦然。

运行中的每个步骤都会显示在时间轴上,并带有图标、标签以及令牌计数和/或持续时间(具体取决于其类型)。选择一个步骤以查看其详细信息:模型调用显示其提示、完成和词元总数,而工具调用则显示其输入和输出。按类别(例如 LLM 或 Tools)过滤列表,以便在运行有很多步骤时隔离一种步骤类型。

要停止正在进行的运行,请使用聊天输入栏中的停止控件。要学习;了解更多信息,请参阅停止 Playground 中的运行。

“跟踪”页面涵盖所有工作区中项目的每个会话。使用它来查找特定最终用户的会话或直接调用。

1

在左侧导航栏中,选择 Monitor > Traces。

2

按搜索输入、时间范围(1h、24h、7d、30d)、工作区下拉列表或状态下拉列表进行筛选,以缩小列表范围。

3

选择一个会话以打开其运行时间线。

会话列表显示以下列:

列
说明

会话

取自第一条消息的会话标题及其运行计数。

会话id

会话的唯一标识符。复制此内容以将会话与运行时日志端点上的 session_id过滤交叉引用。要学习;了解详情,请参阅监控代理。

duration

会话中所有运行的总活动时间,不包括运行之间的空闲时间。

Tokens

会话中所有运行消耗的令牌总数。这是一个下限:它不计算某些令牌的使用情况,例如内存提取。

Workspace

生成会话的已部署代理。

上次活动

上次更新会话的时间。

最近一次运行

会话中最近运行的状态。

打开会话会将其运行显示为共享时间线。顶部的三个摘要卡汇总了显示的每次运行的会话持续时间、令牌和内存活动(调用和保存)。令牌和内存总计为下限:它们仅反映已完成的运行和步骤,因此可能会在运行仍处于活动状态时进行少计数。

排序下拉菜单和 Elapsed time/Tokens 切换可更改时间线的显示方式。下拉列表控制您最先看到的运行。该切换控制条形图的长度测量值:Elapsed time 视图中的持续时间和 Tokens 视图中的词元计数。

在 Elapsed time 视图中,横轴表示自运行开始以来经过的时间。步骤栏的位置和大小根据其开始时间和运行时间确定。这样,您就可以确定哪些步骤按顺序运行,哪些步骤重叠。由于会话中的每次运行共享同一轴,因此您还可以一目了然地比较各个运行。在 Tokens 视图中,没有时间轴:条形图左对齐,其大小与每个步骤的词元计数成比例。

下图显示了运行进行中时会话的运行时间线:

显示已完成和运行的步骤的会话运行时间线
点击放大

每次运行的标头以 slowest: <step> (<duration>) 的形式报告其相对开始时间、总持续时间、第一个事件的时间、令牌总数以及它包含的最慢步骤。

进行中的运行会显示停止控件。停止运行会将其状态更改为“正在停止...”,然后在停止后更改为“已停止”。取消并不总是即时的,因为某个步骤可能需要先完成其当前操作。中断的步骤会显示匹配的“已停止”标记,准确标识停止中断的步骤。

每个步骤行显示一个图标和一个名称。根据步骤的状态,它会显示持续时间或状态标签。已完成的步骤会显示其持续时间,LLM 调用还会显示其令牌计数。仍在进行中的步骤显示正在运行...。

选择一个步骤以在侧面板中打开其详细信息,包括其类型、状态、持续时间以及运行调用者。该面板还显示步骤的输入和输出,例如发送到模型调用和从模型调用返回的消息。

当运行超过预期时,请使用以下信号来查找负责的特定步骤:

要学习;了解有关监控和调用代理的更多信息,请参阅以下指南: