在深入了解此内容之前,阅读以下内容可能会有所帮助:
LangSmith 以易于导出和导入的简单格式存储和处理跟踪数据。 这些字段中的许多是可选的或不重要的,但为了完整性而包含在内。加粗的字段是最重要的。
字段名称类型描述
idUUID运行(跨度)的唯一 ID。
namestring运行关联的名称。
inputsobject运行接收的输入映射。
run_typestring运行类型,例如 “llm”、“chain”、“tool”。
start_timedatetime运行开始时间。
end_timedatetime运行结束时间。
extraobject其他附加信息。
errorstring如果运行出错,这里记录错误消息。
outputsobject运行生成的输出映射。
eventsarray of objects与运行关联的事件列表,对启用流式处理的运行尤为重要。
tagsarray of strings运行的标签。
trace_idUUID运行所属跟踪的唯一 ID,也即该跟踪根运行的 id
dotted_orderstring层级排序字符串,格式:run_start_timeZrun_uuid.child_run_start_timeZchild_run_uuid
statusstring当前执行状态,如 “error”、“pending”、“success”。
child_run_idsarray of UUIDs所有子运行的 ID。
direct_child_run_idsarray of UUIDs直接子运行的 ID。
parent_run_idsarray of UUIDs所有父运行的 ID。
feedback_statsobject与该运行相关的反馈统计聚合。
reference_example_idUUID运行关联的参考示例 ID(通常仅评估运行会填写)。
total_tokensinteger运行处理的总 Token 数。
prompt_tokensinteger提示(prompt)中的 Token 数。
completion_tokensinteger输出(completion)中的 Token 数。
total_coststring运行产生的总成本。
prompt_coststring提示部分的成本。
completion_coststring输出部分的成本。
first_token_timedatetime模型输出首个 Token 的时间,仅对 run_type="llm" 且启用流式时生效。
session_idstring运行的会话 ID,也叫 tracing project ID。
in_datasetboolean指示运行是否包含在某个数据集中。
parent_run_idUUID父运行的唯一 ID。
execution_order (deprecated)integer运行在跟踪中的执行顺序(已弃用)。
serializedobject执行该运行对象的序列化状态(如适用)。
manifest_id (deprecated)UUID与该跨度关联的 manifest ID(已弃用)。
manifest_s3_idUUIDmanifest 对应的 S3 标识。
inputs_s3_urlsobject输入的 S3 URL。
outputs_s3_urlsobject输出的 S3 URL。
price_model_idUUID应用于运行的定价模型 ID。
app_pathstring运行在 UI 中的路径。
last_queued_atdatetime最近一次入队时间。
share_tokenstring用于共享运行数据的 Token。
下面是符合上述格式的运行 JSON 示例:
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "name": "string",
  "inputs": {},
  "run_type": "llm",
  "start_time": "2024-04-29T00:49:12.090000",
  "end_time": "2024-04-29T00:49:12.459000",
  "extra": {},
  "error": "string",
  "execution_order": 1,
  "serialized": {},
  "outputs": {},
  "parent_run_id": "f8faf8c1-9778-49a4-9004-628cdb0047e5",
  "manifest_id": "82825e8e-31fc-47d5-83ce-cd926068341e",
  "manifest_s3_id": "0454f93b-7eb6-4b9d-a203-f1261e686840",
  "events": [{}],
  "tags": ["foo"],
  "inputs_s3_urls": {},
  "outputs_s3_urls": {},
  "trace_id": "df570c03-5a03-4cea-8df0-c162d05127ac",
  "dotted_order": "20240429T004912090000Z497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "status": "string",
  "child_run_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "direct_child_run_ids": ["497f6eca-6276-4993-bfeb-53cbbbba6f08"],
  "parent_run_ids": ["f8faf8c1-9778-49a4-9004-628cdb0047e5"],
  "feedback_stats": {
    "correctness": {
      "n": 1,
      "avg": 1.0
    }
  },
  "reference_example_id": "9fb06aaa-105f-4c87-845f-47d62ffd7ee6",
  "total_tokens": 0,
  "prompt_tokens": 0,
  "completion_tokens": 0,
  "total_cost": "string",
  "prompt_cost": "string",
  "completion_cost": "string",
  "price_model_id": "0b5d9575-bec3-4256-b43a-05893b8b8440",
  "first_token_time": null,
  "session_id": "1ffd059c-17ea-40a8-8aef-70fd0307db82",
  "app_path": "string",
  "last_queued_at": null,
  "in_dataset": true,
  "share_token": "d0430ac3-04a1-4e32-a7ea-57776ad22c1c"
}

dotted_order 是什么?

dotted_order 是一个可排序的键,用于唯一标识运行在跟踪层级中的位置。 来看下面的示例:
import langsmith as ls

@ls.traceable
def grandchild():
    p("grandchild")

@ls.traceable
def child():
    grandchild()

@ls.traceable
def parent():
    child()
如果在每个阶段打印 ID,可能得到如下结果:
parent	run_id=0e01bf50-474d-4536-810f-67d3ee7ea3e7	trace_id=0e01bf50-474d-4536-810f-67d3ee7ea3e7  parent_run_id=null	dotted_order=20240919T171648521691Z0e01bf50-474d-4536-810f-67d3ee7ea3e7
child	run_id=a8024e23-5b82-47fd-970e-f6a5ba3f5097	trace_id=0e01bf50-474d-4536-810f-67d3ee7ea3e7  parent_run_id=0e01bf50-474d-4536-810f-67d3ee7ea3e7	dotted_order=20240919T171648521691Z0e01bf50-474d-4536-810f-67d3ee7ea3e7.20240919T171648523407Za8024e23-5b82-47fd-970e-f6a5ba3f5097
grandchild	run_id=0ec6b845-18b9-4aa1-8f1b-6ba3f9fdefd6	trace_id=0e01bf50-474d-4536-810f-67d3ee7ea3e7  parent_run_id=a8024e23-5b82-47fd-970e-f6a5ba3f5097	dotted_order=20240919T171648521691Z0e01bf50-474d-4536-810f-67d3ee7ea3e7.20240919T171648523407Za8024e23-5b82-47fd-970e-f6a5ba3f5097.20240919T171648523563Z0ec6b845-18b9-4aa1-8f1b-6ba3f9fdefd6
需要注意的恒等关系:
  • id 等于 dotted_order 最后一个 “Z” 之后的 36 位 UUID,例如孙运行中的 0ec6b845-18b9-4aa1-8f1b-6ba3f9fdefd6
  • trace_id 等于 dotted_order 中第一个 UUID(即 dotted_order.split('.')[0].split('Z')[1])。
  • 如存在 parent_run_id,它对应 dotted_order 中倒数第二个 UUID,例如孙运行里的 a8024e23-5b82-47fd-970e-f6a5ba3f5097
  • 将 dotted_order 按点号拆分后,每段都形如 <run_start_time>Z<run_id>

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.