Overview
执行跟踪是对代理处理请求时发生的所有事情的记录。它显示了运行的步骤、每个步骤花费的时间以及每个模型调用使用的词元数量。每次运行代理时, Atlas Agent Engine 都会自动记录跟踪。
使用跟踪可以回答两类问题:
发生了什么事?跟踪显示工具调用、模型调用以及代理为生成响应而采取的其他步骤的顺序。当运行产生意外或错误结果时,请选中此项。
为什么很慢?跟踪显示每个步骤花费的时间,因此您可以找到导致运行缓慢的特定步骤,而不是猜测。
跟踪由三个级别组成:会话、其运行以及每次运行的步数。会话是具有唯一会话ID的对话线程,在调用代理时创建。一个会话可以包含多次运行,每个执行轮次一次。反过来,运行可以包含多个步骤:代理执行的各个操作,例如模型调用或工具调用。要学习;了解每种步骤类型的含义,请参阅本页后面的步骤类型。
您可以在两个位置查看跟踪:
Playground,页面右侧的 Traces 抽屉显示您自己的交互式测试会话运行时的跟踪。
Monitor 下的 Traces 页面显示所有工作区中项目中的每个会话。无论您的代理是通过 Playground、 用户界面、 REST API还是CLI调用,此处都会显示一个会话,因此您可以在此处找到真正的最终用户活动。 Playground 仅显示您自己的会话。
Step Kinds
跟踪中的每个步骤都有一种类型,显示为图标和标签。下表描述了每种类型:
Kind | 说明 |
|---|---|
LLM(大型语言模型)调用 | 调用大型语言模型,例如生成响应或决定下一步使用哪个工具。 |
工具调用 | 对代理有权访问权限的工具的调用,例如数据库查询或外部API请求。 |
内存 | |
护栏 | |
策略检查 | |
代理对代理的调用 | |
图形节点 | 代理执行图表中不属于其他步骤类型(例如路由步骤或控制流步骤)的节点。 |
人工查看 |
注意
长时间运行的 Human review 步骤不是性能问题。等待决策时,代理不执行任何工作。
先决条件和访问权限
您可以使用任何组织或项目级别的读取角色查看项目的跟踪。这些角色包括组织管理员、组织成员、项目所有者、项目成员和代理开发人员。
经组织许可, MongoDB支持工程师还可以通过只读数据查看器查看您的跟踪记录。组织管理员会在有限的时间内授予此访问权限。当授权处于活动状态时,数据查看器会显示与“跟踪”页面相同的会话、运行和步骤。数据查看器中的横幅说明该视图是只读的,并标识了授权的到期时间。步骤有效负载(例如工具调用输入和输出)在此视图中进行编辑。要学习;了解如何授予此访问权限,请参阅授予支持访问权限。
在 Playground 中查看跟踪
Atlas Agent Engine 在 Playground 聊天面板旁边显示一个 Traces 抽屉。抽屉会在当前运行执行时实时更新。打开 Timeline 开关以在聊天旁边显示步骤持续时间条。
抽屉顶部的运行摘要显示运行提示,如果运行停止或被阻止,则显示状态徽章。
提示下方有一个摘要行,其中报告了运行的总持续时间、第一个事件发生的时间以及按类型划分的步数计数,例如“2 工具”。首次事件发生时间是指代理执行第一个可见步骤之前的延迟。这与运行的总持续时间是分开的,因此运行可以缓慢启动但不会缓慢完成,反之亦然。
运行中的每个步骤都会显示在时间轴上,并带有图标、标签以及令牌计数和/或持续时间(具体取决于其类型)。选择一个步骤以查看其详细信息:模型调用显示其提示、完成和词元总数,而工具调用则显示其输入和输出。按类别(例如 LLM 或 Tools)过滤列表,以便在运行有很多步骤时隔离一种步骤类型。
要停止正在进行的运行,请使用聊天输入栏中的停止控件。要学习;了解更多信息,请参阅停止 Playground 中的运行。
在“Traces”(跟踪)页面上查看“Trace”(跟踪)
“跟踪”页面涵盖所有工作区中项目的每个会话。使用它来查找特定最终用户的会话或直接调用。
查找会话
会话列表显示以下列:
阅读运行时间线
打开会话会将其运行显示为共享时间线。顶部的三个摘要卡汇总了显示的每次运行的会话持续时间、令牌和内存活动(调用和保存)。令牌和内存总计为下限:它们仅反映已完成的运行和步骤,因此可能会在运行仍处于活动状态时进行少计数。
排序下拉菜单和 Elapsed time/Tokens 切换可更改时间线的显示方式。下拉列表控制您最先看到的运行。该切换控制条形图的长度测量值:Elapsed time 视图中的持续时间和 Tokens 视图中的词元计数。
在 Elapsed time 视图中,横轴表示自运行开始以来经过的时间。步骤栏的位置和大小根据其开始时间和运行时间确定。这样,您就可以确定哪些步骤按顺序运行,哪些步骤重叠。由于会话中的每次运行共享同一轴,因此您还可以一目了然地比较各个运行。在 Tokens 视图中,没有时间轴:条形图左对齐,其大小与每个步骤的词元计数成比例。
下图显示了运行进行中时会话的运行时间线:

每次运行的标头以 slowest: <step> (<duration>) 的形式报告其相对开始时间、总持续时间、第一个事件的时间、令牌总数以及它包含的最慢步骤。
进行中的运行会显示停止控件。停止运行会将其状态更改为“正在停止...”,然后在停止后更改为“已停止”。取消并不总是即时的,因为某个步骤可能需要先完成其当前操作。中断的步骤会显示匹配的“已停止”标记,准确标识停止中断的步骤。
每个步骤行显示一个图标和一个名称。根据步骤的状态,它会显示持续时间或状态标签。已完成的步骤会显示其持续时间,LLM 调用还会显示其令牌计数。仍在进行中的步骤显示正在运行...。
选择一个步骤以在侧面板中打开其详细信息,包括其类型、状态、持续时间以及运行调用者。该面板还显示步骤的输入和输出,例如发送到模型调用和从模型调用返回的消息。
查找运行缓慢的原因
当运行超过预期时,请使用以下信号来查找负责的特定步骤:
从运行标头最慢的步骤标注开始,格式为
slowest: <step> (<duration>)。选择该步骤以直接检查其详细信息。如果运行是开始很慢而不是结束很慢,请检查第一个事件的时间,而不是最慢的步骤。运行中持续较高的值意味着延迟发生在您可以检查的任何步骤甚至开始之前。
如果某次运行的词元总数很高,但 Elapsed time 视图中没有明显的步骤,请切换到 Tokens 视图。某个步骤可以是令牌瓶颈,但不是按挂钟时间计算最慢的步骤。
如果运行的总持续时间很长,但其步骤看起来都很快,请检查该运行是否等待人工查看。如果是这样,运行标头会将其持续时间和首次事件发生时间字段替换为
active/review分割,例如 "2min 3sactive - 1h30min review(最少审核时间)。较长的查看时间意味着运行在人工循环查看队列中暂停,而不是实际运行缓慢。要学习;了解更多信息,请参阅“人在环”代理执行。
后续步骤
要学习;了解有关监控和调用代理的更多信息,请参阅以下指南: