概述
Devin Desktop 提供用于自定义分析的 API。您可以查询自动补全、聊天和命令相关的数据,并使用多种筛选、分组和聚合方式。 我们所有示例均使用 curl;随后可将其转换为其他语言中的 HTTP 请求。分析 API 适用于 Enterprise 套餐
用户数据分析 API 规范
可使用以下命令获取 Teams 页面中 Users 表的数据:示例输出
Cascade 分析 API 规范
analytics 页面上显示的 Cascade 相关数据可通过 API 查询。查询示例
IDE 类型
我们按 IDE 类型对 cascade 数据进行分类。如果查询中不包含 ide_types 字段,则会返回所有类型的数据。如果你只想查询某一种 IDE 的数据,可以使用以下任一选项:- “editor” 表示 Devin Desktop Editor
- “jetbrains” 表示 JetBrains 插件
- “cli” 表示 Devin CLI
按 Devin CLI (
"cli") 筛选时,cascade_runs 的 mode 字段不会填充。cascade_lines 和 cascade_tool_usage 涵盖 Devin CLI 和 Devin Local 的活动,但仅包含这些 Agent 开始上报后记录的数据。Cascade 数据源
CASCADE_DATA_SOURCE 有以下三种可能的取值来源:cascade_lines
使用 cascade_lines 查询按天统计的建议和已接受的 cascade lines 数据。 示例输出:来源:cascade_runs
使用 cascade_runs 查询模型用量、积分消耗和模式相关数据。 示例输出:来源:cascade_tool_usage
使用 cascade_tool_usage 查询工具用量数据。请注意,返回结果是所提供时间段内工具使用情况的汇总计数。 示例输出:- CODE_ACTION: ‘代码编辑’
- VIEW_FILE: ‘查看文件’
- RUN_COMMAND: ‘运行命令’
- FIND: ‘查找工具’
- GREP_SEARCH: ‘Grep 搜索’
- VIEW_FILE_OUTLINE: ‘查看文件大纲’
- MQUERY: ‘Riptide’
- LIST_DIRECTORY: ‘列出目录’
- MCP_TOOL: ‘MCP 工具’
- PROPOSE_CODE: ‘建议代码’
- SEARCH_WEB: ‘搜索 Web’
- MEMORY: ‘记忆’
- PROXY_WEB_SERVER: ‘Browser 预览’
- DEPLOY_WEB_APP: ‘部署 Web 应用’
自定义分析 API 规范
某些数据源支持通过自定义分析 API 执行自定义查询。 选择、筛选、聚合和排序的完整结构定义位于下一节,并以 JSON 格式提供。三个数据源各自的示例查询以及查询调试提示将在文档末尾给出。架构
选择项
选择项为必填项。每个选择项都对应一个要查询的值。过滤器
过滤器用于缩小数据范围,使其仅包含满足特定条件的元素。该项为可选。聚合
聚合用于根据指定条件将数据分组。此项为可选。可用字段
用户数据
来自 USER_DATA 数据源的所有数据都会按用户、按小时聚合。 注意:PCW (代码编写百分比) 现在有单独的表,不再依赖 user_data 表。聊天数据
注意,聊天数据 API 中提供的所有数据都针对聊天模型的响应,而不是用户提出的问题。命令数据
请注意,Command Data 数据源包含所有命令,包括被拒绝的命令。可使用 “accepted” 字段筛选出仅已接受的命令。PCW 数据
有效选项
Cascade Data
Cascade Data 数据源中,每条发送到 Cascade 的消息都会有一个对应条目。要访问下方列出的所有字段,请确保你使用的是 1.11.2 或更高版本。
有效过滤条件
如需按日期过滤,请使用 start_timestamp 和 end_timestamp,格式应为 RFC 3339 (例如 2023-01-01T00:00:00Z,参见下方示例) 。
示例
用户数据
聊天数据
命令数据
edit 命令中新增和删除的行数。
示例响应:
PCW 数据
查询调试
从 1.10.0 开始,无效查询会返回错误消息。本节介绍一些常见错误消息、它们的含义,以及如何调试对应的查询。| 错误消息 | 说明 |
|---|---|
| at least one field or aggregation is required | 未检测到任何选择字段或聚合——请确保查询请求中至少包含一个。 |
| invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUM | 某个选择字段使用了无效的聚合函数。在这个例子中,我们尝试对 “ide” 字段使用 SUM,但该字段只支持 COUNT 和 UNSPECIFIED。 |
| invalid query table: QUERY_DATA_SOURCE_UNSPECIFIED | data_source 字段很可能有拼写错误,请再次检查。 |
| all selection fields should have an aggregation function, or none of them should | 如果有多个选择字段,要么全部都包含 aggregation_function,要么全部都不包含。例如,下面这个选择字段是无效的,因为 num_acceptances 被求和了,而 num_lines_accepted 没有: |
| invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUM | 并不是每个字段都支持所有聚合函数;对应关系请参见可用字段部分。在这个例子中,查询对 “ide” 字段使用了 QUERY_AGGREGATION_SUM 聚合函数,这是无效的。 |
| tried to aggregate on a distinct field: distinct_developer_days. Consider aggregating on the non-distinct fields instead: [api_key date] | 符合 “distinct_*” 模式的字段不能放在聚合部分;该错误会提示你改用哪些字段进行聚合。因此,不要使用: |
| duplicate field alias for selection/aggregation: num_acceptances | 所有选择字段和聚合都必须使用不同的名称。请注意,如果未指定 name,默认会设置为 <AGGREGATION_FUNCTION>_<FIELD_NAME>。 |
| invalid group name: GroupName | 未找到指定名称的组,请再次检查拼写。 |

