mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-19 09:33:53 +00:00
telemetry: include user decisions in tool call logs (#966)
Add the user's decision (accept, reject, modify) to tool call telemetry to better understand user intent. The decision provides crucial context to the `success` metric, as a user can reject a call that would have succeeded or accept one that fails. Also prettify the arguments json. Example:  #750
This commit is contained in:
@@ -20,7 +20,6 @@ import {
|
||||
Tool,
|
||||
ToolCall,
|
||||
Status as CoreStatus,
|
||||
logToolCall,
|
||||
EditorType,
|
||||
} from '@gemini-cli/core';
|
||||
import { useCallback, useState, useMemo } from 'react';
|
||||
@@ -108,33 +107,9 @@ export function useReactToolScheduler(
|
||||
|
||||
const allToolCallsCompleteHandler: AllToolCallsCompleteHandler = useCallback(
|
||||
(completedToolCalls) => {
|
||||
completedToolCalls.forEach((call) => {
|
||||
let success = false;
|
||||
let errorMessage: string | undefined;
|
||||
let duration = 0;
|
||||
|
||||
if (call.status === 'success') {
|
||||
success = true;
|
||||
}
|
||||
if (
|
||||
call.status === 'error' &&
|
||||
typeof call.response.resultDisplay === 'string'
|
||||
) {
|
||||
errorMessage = call.response.resultDisplay;
|
||||
}
|
||||
duration = call.durationMs || 0;
|
||||
|
||||
logToolCall(config, {
|
||||
function_name: call.request.name,
|
||||
function_args: call.request.args,
|
||||
duration_ms: duration,
|
||||
success,
|
||||
error: errorMessage,
|
||||
});
|
||||
});
|
||||
onComplete(completedToolCalls);
|
||||
},
|
||||
[onComplete, config],
|
||||
[onComplete],
|
||||
);
|
||||
|
||||
const toolCallsUpdateHandler: ToolCallsUpdateHandler = useCallback(
|
||||
@@ -165,6 +140,7 @@ export function useReactToolScheduler(
|
||||
onToolCallsUpdate: toolCallsUpdateHandler,
|
||||
approvalMode: config.getApprovalMode(),
|
||||
getPreferredEditor,
|
||||
config,
|
||||
}),
|
||||
[
|
||||
config,
|
||||
|
||||
Reference in New Issue
Block a user