用 Langfuse 追踪和评估 Cursor 代理,由 ClickHouse 提供支持
代码差异只能展示改了什么,但想改进代理,还得弄清楚是哪些模型调用和工具产生了这个改动、时间花在哪里、一次运行的成本是多少。
Langfuse 是我们开源的代理可观测性与评估平台,帮你检查并改进这些工作。Langfuse Observability 插件会把 Cursor 的模型调用、工具执行和 token 用量记录为追踪数据。ClickHouse 为这些追踪数据提供分析能力,让你既能查看单次运行,也能对比整个团队的模式。
本指南将带你连接 Cursor 与 Langfuse,检查一次开销较大的对话轮次,并用评估来判断某项改动是否改善了结果。
ClickHouse 如何支撑 Langfuse 分析
代理可观测性会产生分析型数据:模型调用、工具执行、token 用量、延迟和评估分数。ClickHouse 是 Langfuse 背后的分析数据库,既支持查看单次运行,也支持团队范围的汇总分析。
在 Langfuse v4 中,一张宽表(wide observations table)会把用户、会话、标签和环境信息与每条观测记录存在一起。Langfuse 仪表盘和 Metrics API v2 利用这些观测数据来汇总记录的用量、成本和延迟。把追踪上下文与每条观测记录存放在一起,这类查询就不必再关联单独的追踪表和观测表。
对 Cursor 团队来说,这意味着你可以从成本趋势入手,找到背后的具体对话轮次,再检查需要关注的模型和工具活动。
在 Cursor 中设置 Langfuse 插件
-
在 Langfuse Cloud 或自托管实例中创建一个项目,复制它的 API 密钥。
-
从 Cursor 应用市场安装 Langfuse Observability:打开 Customize,进入 Plugins,选择 Browse Marketplace,然后搜索它。
-
把密钥写入
~/.cursor/langfuse.json:
1{
2 "publicKey": "pk-lf-...",
3 "secretKey": "sk-lf-...",
4 "baseUrl": "https://cloud.langfuse.com"
5}
这个示例使用的是欧盟区域。如果使用其他区域或自托管实例,请从集成文档中查找对应的 base URL。
- 重启 Cursor,然后向代理发送一条提示。
该插件采用 MIT 许可证开源。它会把提示词、助手消息、工具输入输出、token 用量以及其他追踪元数据发送到你的 Langfuse 项目。默认不捕获文件读取内容;要开启这项功能,需同时启用 captureFileContent 和 captureToolOutput。插件会隐藏你的 Langfuse 密钥,默认情况下上传失败只记录日志,Cursor 继续运行。在配置里把 enabled 设为 false 即可关闭。集成文档涵盖了所有配置项、Cursor CLI 以及 Cloud Agents。
Cursor 的一轮对话在 Langfuse 中是什么样
插件基于 Cursor 的钩子(hooks)运行,每输入一次提示词就创建一条追踪记录,命名为 Cursor Turn。里面包含:
-
每条助手消息对应一个 LLM 观察项(observation),以对话历史作为输入,输出包括文本、思考过程和请求调用的工具。
-
Agent 运行的每个工具对应一个工具观察项,比如
Shell、Read、StrReplace和 MCP 工具,记录输入、输出、耗时和错误状态。 -
子 Agent 对应嵌套的
Cursor Subagent观察项;Cursor 压缩上下文时会记录一个事件。
同一对话的所有轮次归入一个 session。用户字段默认取当前登录的 Cursor 账号邮箱,你可以覆盖。
Cursor 每轮只上报一次 token 用量,而不是每次模型调用都上报。插件把用量记在该轮最后一个 LLM 观察项上,所以成本要从整条追踪记录的总计来读。
追踪团队整体的成本与用量
每条追踪记录都带有 Cursor 用户、你的标签和环境标识,这样可以把编码 Agent 的追踪记录与生产环境的区分开。自定义仪表盘按用户、模型和时间维度展示成本与用量,这些筛选条件同样适用于追踪记录表格。没有价格定义的模型只显示 token 数、不显示成本;你可以为它们添加自定义模型定义。要在团队中推广这套方案,请参阅《追踪并优化编码 Agent 用量》。
找出昂贵的轮次并验证修复效果
假设一个团队把 Cursor 推广给了所有工程师。跑了一周追踪后,成本仪表盘按开发者和模型展示开销,有几轮对话的花费明显偏高。
-
团队打开这些对话轮次,发现不少轮次有同样的毛病:智能体反复读同几个文件,一条 shell 命令执行失败后不停重试,直到成功。
-
团队把重复出现的上下文写成一条项目规则,说明相关代码放在哪里、该用哪条构建命令。
-
为了验证这条规则是否有效,团队用真实会话里的提示词构建了一个数据集(dataset)。评估器判断每个任务是否完成,对比视图会把成本和延迟与这些评分并排展示。如果成本下降、任务完成率保持不变,规则就可以上线。
你也可以让 Cursor 自己来做这件事。Langfuse 插件(Langfuse plugin)会加入 Langfuse 技能,让智能体通过 Langfuse CLI 访问你的追踪记录、提示词、数据集和评分。把它和 Langfuse Observability 装在一起,然后提问:“列出本周最贵的 Cursor 对话轮次,并说明它们有什么共同点。”
上线之后,第一步搭好的仪表盘会显示每轮成本有没有降下来。
用同样的循环改进你用 Cursor 构建的 AI 应用
Cursor 也会改动你应用里的提示词、模型和工具,每一次改动都可以当成一次实验。把真实案例存成数据集,定义评分方式——可以用 LLM 当裁判(LLM-as-a-judge)、代码评估器,或者人工审核——让应用在数据集上跑一遍,合并前把这次运行结果和当前版本做对比。在 CI 里,langfuse/experiment-action 这个 GitHub Action 会在评分低于你设定的阈值时让任务失败。
部署之后,线上评估(online evaluation)会用同一套评估器给一部分生产追踪记录打分。得分差的追踪记录会回到数据集里,下次实验就能覆盖到它们。Langfuse Academy 里的 AI 工程循环(AI engineering loop)介绍了完整流程。
Cursor 可以帮你把这套东西搭起来。装好 Langfuse 技能后,向智能体发出提示:
1Set up offline evaluation for this application with Langfuse.
开始使用
创建一个 Langfuse Cloud 项目,或者使用你自建的实例,然后按上面的步骤配置,抓取第一次 Cursor 会话。找出一轮成本较高的对话,更新相关指令,评估结果后再上线。
如果你的应用用到了 ClickHouse,Cursor 的 ClickHouse 插件会为智能体(agent)提供表结构设计、查询优化和数据写入方面的指导。你可以让 Cursor 帮你审查表结构,或者对照 ClickHouse 最佳实践检查 SQL。
立即开始
想看看 ClickHouse 在你的数据上表现如何?几分钟就能上手 ClickHouse Cloud,还可获得 300 美元免费额度。