主题
删除追踪
LangSmith UI 目前不支持删除单条追踪。不过,可以通过直接从 ClickHouse 的所有物化视图(runs_history 视图除外)以及 runs 和 feedback 表中移除该追踪来实现。
该命令既可以用追踪 ID 作为参数运行,也可以用包含追踪 ID 列表的文件运行。
前提条件
请确保准备好以下工具/项目。
kubectl
Clickhouse 数据库凭据
- Host
- Port
- Username
- 如果使用捆绑版本,则为
default
- 如果使用捆绑版本,则为
- Password
- 如果使用捆绑版本,则为
password
- 如果使用捆绑版本,则为
- Database name
- 如果使用捆绑版本,则为
default
- 如果使用捆绑版本,则为
从你将运行
delete_trace_by_id脚本的机器到 Clickhouse 数据库的连通性。- 如果使用捆绑版本,你可能需要将 clickhouse 服务端口转发到本地机器。
- 运行
kubectl port-forward svc/langsmith-clickhouse 8123:8123将 clickhouse 服务端口转发到本地机器。
删除追踪的脚本
- 下载 trace 脚本
WARNING
批量大小限制
该脚本每批会对多个 ClickHouse 表执行 DELETE mutation。大批量删除可能导致服务中断。
- 每次运行最多 10,000 条追踪:拆分更大的文件并顺序处理。
- 批次之间等待:在下一次批次开始前留出时间让删除完成。
- 使用
--sync标志进行顺序(较慢但更安全)删除。
为单条追踪运行删除脚本
运行以下命令,用单个追踪 ID 运行追踪删除脚本:
bash
sh delete_trace_by_id.sh <clickhouse_url> --trace_id <trace_id>例如,如果你使用捆绑版本并进行端口转发,命令如下:
bash
sh delete_trace_by_id.sh "clickhouse://default:password@localhost:8123/default" --trace_id 4ec70ec7-0808-416a-b836-7100aeec934b如果你访问 LangSmith UI,现在应该看到指定的追踪 ID 不再存在,也不再反映在统计中。
从每行一个追踪 ID 的文件批量删除追踪
运行以下命令,用追踪 ID 列表运行追踪删除脚本:
bash
sh delete_trace_by_id.sh <clickhouse_url> --file <path/to/foo.txt>例如,如果你使用捆绑版本并进行端口转发,命令如下:
bash
sh delete_trace_by_id.sh "clickhouse://default:password@localhost:8123/default" --file path/to/traces.txt如果你访问 LangSmith UI,现在应该看到所有指定的追踪都已被移除。
故障排查
“找不到追踪 ID”错误
如果你收到一条表示找不到追踪 ID 的错误消息,请在命令中加上 --ssl 标志。没有这个标志时,脚本可能无法正确连接到 ClickHouse,从而产生“找不到追踪 ID”的误报。
带 SSL 标志的示例:
bash
sh delete_trace_by_id.sh "clickhouse://default:password@localhost:8123/default" --file path/to/traces.txt --ssl你也可以在运行删除脚本前,使用 clickhouse-cli 直接连接 ClickHouse 并查询这些追踪 ID,来核实追踪确实存在。
大批量删除后服务中断
如果删除大量追踪后服务变得无响应,很可能是删除队列被压垮了。
预防措施: 每次运行将删除量限制在 10,000 条追踪以内,并在批次之间等待几分钟让删除完成。
如果你在大量删除后遇到问题,请联系支持。