概要
Devin Desktop は、カスタム分析用の API をサポートしています。オートコンプリート、チャット、Command に関するデータをクエリできるほか、さまざまなフィルタ、グループ化、集計にも対応しています。 すべての使用例は curl で示していますが、他の言語の HTTP リクエストにも置き換えられます。Analytics API は Enterprise プランで利用できます
ユーザーデータ Analytics API の仕様
TeamsページのUsersテーブルのデータは、次のコマンドで取得できます。出力例
Cascade Analytics API 仕様
アナリティクスページで確認できるCascade固有のデータは、API経由で取得できます。emails が設定されている場合は設定できません。
START_TIMESTAMP/END_TIMESTAMP: RFC 3339 形式のタイムスタンプです。たとえば 2023-01-01T00:00:00Z です
EMAILS: フィルタリング対象のメールアドレスのリストです。このフィールドは任意です。group_name が設定されている場合は設定できません。
IDE_TYPES: フィルタリング対象の IDE タイプのリストです。このフィールドは任意です。指定可能な値は以下で説明します。
QUERY_REQUESTS: 実行するクエリリクエストのリストです。このフィールドは必須です。CASCADE_DATA_SOURCE の指定可能な値は以下で説明します。
クエリの例
IDE タイプ
cascade データは IDE の種類ごとに分類されています。クエリでide_types フィールドを指定しない場合は、すべての IDE のデータが返されます。特定の 1 つの IDE のデータだけをクエリする場合は、次のいずれかのオプションを利用できます。
- Devin Desktop Editor の場合は
"editor" - JetBrains Plugin の場合は
"jetbrains" - Devin CLI の場合は
"cli"
Devin CLI (
"cli") で絞り込む場合、cascade_runs の mode フィールドには値が設定されません。cascade_lines と cascade_tool_usage は Devin CLI と Devin Local のアクティビティを対象としていますが、それらのエージェントが報告を開始した後に記録されたデータのみを含みます。Cascade のデータソース
CASCADE_DATA_SOURCE には、3 つの値を設定できますソース: cascade_lines
1日ごとの、提案および受け入れられた 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: ‘ブラウザプレビュー’
- DEPLOY_WEB_APP: ‘Web アプリをデプロイ’
Custom Analytics API の仕様
一部のデータソースでは、Custom Analytics API を介してクエリを柔軟にカスタマイズできます。 選択、フィルター、集計、並べ替えの完全なスキーマは、次のセクションに JSON 形式で記載されています。3 つのデータソースそれぞれのクエリ例と、クエリのデバッグに関するヒントは、ドキュメントの末尾に記載しています。スキーマ
選択
選択は必須です。各選択項目は、クエリする値に対応します。sum_num_acceptances) になります。他のすべてのフィールド名および集計名と重複しないようにする必要があります。
AGGREGATION_FUNCTION: UNSPECIFIED、COUNT、SUM、AVG、MAX、MIN のいずれかを指定する必要があります。“aggregation_function” が指定されていない場合、デフォルトは UNSPECIFIED です。
フィルター
フィルターは、特定の条件を満たす要素のみを含むようにデータを絞り込むために利用されます。省略可能です。集計
集計は、指定した条件に基づいてデータをグループ分けするために利用されます。省略可能です。使用可能なフィールド
ユーザーデータ
USER_DATA ソースのすべてのデータは、ユーザーごと・時間ごとに集計されます。 注: PCW (コード記述率) は現在、専用のテーブルを持っており、user_data テーブルには依存していません。チャットデータ
チャットデータ API で提供されるすべてのデータは、ユーザーの質問ではなく、チャットモデルの応答に関するものであることに注意してください。Command データ
Command データソースには、拒否されたものも含めてすべてのコマンドが含まれます。“採用” フィールドを利用すると、採用されたコマンドのみに絞り込めます。PCWデータ
有効な選択項目
Cascade Data
Cascade Dataソースには、Cascade に送信される各メッセージごとにエントリが含まれます。以下に記載されているすべてのフィールドにアクセスするには、バージョン 1.11.2 以降を使用していることを確認してください。
有効なフィルター
日付でフィルタリングするには、start_timestamp と end_timestamp を使用します。これらは RFC 3339 形式で指定する必要があります (例: 2023-01-01T00:00:00Z。以下の例を参照してください) 。
使用例
ユーザーデータ
チャットデータ
Command データ
PCW データ
go でフィルタしたバイト数を取得します。
レスポンス例:
クエリのデバッグ
1.10.0 以降では、無効なクエリに対してエラーメッセージが返されます。このセクションでは、よくあるエラーメッセージ、その意味、および該当するクエリのデバッグ方法を説明します。| エラーメッセージ | 説明 |
|---|---|
| at least one field or aggregation is required | 選択または集計が 1 つも検出されませんでした。クエリリクエストに少なくとも 1 つ含まれていることを確認してください。 |
| invalid aggregation function for string type field ide: QUERY_AGGREGATION_SUM | 選択項目の 1 つで無効な集計関数が利用されています。この場合、“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_*” パターンのフィールドは aggregations セクションに含めることはできません。このエラーでは、代わりに集計対象として利用できるフィールドが提案されています。したがって、次の代わりに: |
| duplicate field alias for selection/aggregation: num_acceptances | すべての selections と aggregations には異なる name が必要です。name が指定されていない場合、デフォルトでは <AGGREGATION_FUNCTION>_<FIELD_NAME> に設定されることに注意してください。 |
| invalid group name: GroupName | 指定された名前のグループが見つかりませんでした。スペルを再確認してください。 |

