ClickHouse驱动Langfuse追踪评估Cursor代理
有效阅读仅保存在当前浏览器,用于「为你」推荐;暂停或清除记录。
DataHot 速览
ClickHouse官方博客介绍如何将Cursor接入Langfuse Observability插件,追踪代理的模型调用、工具执行和token用量。文章说明Langfuse v4使用ClickHouse宽表存储observations,并在同一记录中保留用户、会话、标签和环境信息,用于仪表盘和Metrics API v2聚合成本、延迟与用量。指南演示了配置API key、发送prompt、定位昂贵轮次,并用评估确认改动是否有效。
为什么值得关注:虽然面向Cursor编码代理,但展示了基于ClickHouse的代理可观测性与评估数据链路,对构建Data Agent的团队在成本、延迟和可靠性治理上有参考价值。
本文目录 7 节
译文
AI 逐段翻译代码 diff 展示了哪些内容发生了变化。改进智能体还意味着要理解是哪些模型调用和工具产生了这些变化、时间花在了哪里,以及本次运行的成本是多少。
Langfuse,我们用于智能体可观测性和评估的开源平台,可帮助你检查并改进这项工作。Langfuse Observability 插件会将 Cursor 的模型调用、工具执行和 token 用量捕获为 trace。ClickHouse 为这些 trace 背后的分析提供支持,因此你可以调查单次运行,并在团队范围内比较模式。
在本指南中,我们将把 Cursor 连接到 Langfuse,检查一个开销高昂的轮次,并使用评估来检查某项更改是否改善了结果。
ClickHouse 如何为 Langfuse 分析提供支持
智能体可观测性会产生分析数据:模型调用、工具执行、token 用量、延迟和评估分数。ClickHouse 是 Langfuse 背后的分析数据库,既支持调查单次运行,也支持在团队范围内进行分析。
在Langfuse v4中,一张宽的 ClickHouse observations 表会将用户、会话、标签和环境与每条 observation 一起保存。Langfuse 仪表盘和Metrics API v2使用这些 observation 来汇总记录的用量、成本和延迟。将 trace 上下文与每条 observation 一起保存,可避免为这些查询而连接单独的 trace 表和 observation 表。
对于 Cursor 团队而言,这意味着你可以从成本趋势入手,找到其背后的轮次,并检查需要关注的模型和工具活动。
在 Cursor 中设置 Langfuse 插件
- 在Langfuse Cloud或你的自托管实例中创建一个项目,并复制其 API 密钥。
- 从 Cursor 应用市场安装Langfuse Observability:打开Customize,前往Plugins,选择Browse Marketplace,然后搜索它。将你的密钥放入
- ~/.cursor/langfuse.json
中:此示例使用 EU 区域。对于其他区域或自托管实例,请使用
1{2"publicKey":"pk-lf-...",3"secretKey":"sk-lf-...",4"baseUrl":"https://cloud.langfuse.com"5}集成文档中相应的基础 URL。重启 Cursor 并向智能体发送一条提示。
- 该插件基于 MIT 许可证开源。它会将提示、助手消息、工具输入和输出、token 用量以及其他 trace 元数据发送到你的 Langfuse 项目。文件读取内容的捕获默认关闭;启用它需要同时设置
captureFileContent和captureToolOutput。该插件会屏蔽你的 Langfuse 密钥,并且默认在记录上传失败的同时保持 Cursor 继续运行。在配置中将enabled设为false即可禁用它。集成文档涵盖了所有选项、Cursor CLI 和 Cloud Agents。Cursor 轮次在 Langfuse 中的样子
该插件运行在 Cursor 的钩子上,并为每条提示创建一个名为
Cursor Turn的 trace。在其中你可以找到:每条助手消息对应一条
- LLM
observation,以对话历史作为输入,以文本、思考和请求的工具调用作为输出。智能体运行的每个工具对应一条工具 observation,例如 - Shell
、Read、StrReplace和 MCP 工具,包含输入、输出、持续时间和错误状态。子智能体对应的嵌套 - Cursor Subagent
observation,以及 Cursor 压缩上下文时的一个事件。一次对话的所有轮次会被归入一个
会话,用户默认取已登录 Cursor 账号的邮箱,除非你覆盖它。Cursor 每轮只报告一次 token 用量,而不是每次模型调用都报告一次。插件会将其记录在该轮的最后一个
LLM observation 上,因此请从 trace 总计中读取成本。在团队范围内跟踪成本与用量
每条 trace 都带有 Cursor 用户、你的标签和一个环境标签,因此你可以将编码智能体的 trace 与生产 trace 区分开。
自定义仪表盘按用户、模型和时间绘制成本与用量图表,并且相同的筛选条件也适用于 trace 表。没有价格定义的模型会显示 token 但不显示成本;你可以为它们添加自定义模型定义。关于如何在团队中推广,请参阅跟踪并优化编码智能体用量。找到昂贵的轮次并验证修复
假设一个团队已为所有工程师推广了 Cursor。经过一周的 trace 后,成本仪表盘会显示按开发者和模型划分的支出,其中少数几个轮次显得开销高昂。
1.
团队打开这些轮次。其中几个具有相同的形态:智能体反复读取相同的文件,并且一个 shell 命令失败后不断重试直到成功。2.
团队将重复的上下文转化为一条项目规则,说明相关代码所在位置以及应运行哪个构建命令。3.
为了检查该规则是否有帮助,团队从这些真实会话的提示中构建一个数据集。评估器会评估每个任务是否完成,而对比视图会将这些分数与成本和延迟一起展示。如果成本下降且完成度保持不变,该规则就会发布。你也可以让 Cursor 来做搜索。
Langfuse 插件会添加 Langfuse 技能,使智能体能够通过 Langfuse CLI 访问你的 trace、提示、数据集和分数。将其与 Langfuse Observability 一起安装,然后询问:“列出本周最昂贵的 Cursor 轮次以及它们的共同点。”推广之后,第一步中的仪表盘会显示每轮成本是否下降了。
用 Cursor 构建的 AI 应用也适用同样的循环
Cursor 也会编辑你应用程序的提示、模型和工具,而每次更改都可以是一个实验。将真实案例保存为数据集,定义
分数,采用 LLM 作为评委、代码评估器或人工审核,在数据集上运行应用程序,并在合并前将这次运行与你当前的版本进行比较。在CI中,langfuse/experiment-action GitHub Action 会在分数违反你的阈值时使任务失败。部署之后,
在线评估会用相同的评估器对生产 trace 的样本进行评分。评分较差的 trace 会回到数据集中,因此下一次实验会覆盖它们。Langfuse Academy 中的AI 工程循环描述了完整的周期。
Cursor 可以为你完成这项设置。安装 Langfuse 技能后,向智能体提示:
1Set up offline evaluation for this application with Langfuse.开始使用
创建一个Langfuse Cloud 项目或使用你自托管的实例,然后按照上面的设置来捕获你的第一个 Cursor 会话。检查一个开销高昂的轮次,更新相关指令,并在推广之前评估结果。
如果你的应用使用 ClickHouse,ClickHouse plugin for Cursor会为智能体提供关于模式设计、查询优化和数据摄入的指导。让 Cursor 审查一张表模式,或对照 ClickHouse 最佳实践检查 SQL。
这篇内容对你有用吗?
反馈只用于改善内容筛选,不等同于收藏