Skip to content

Commit f5b4ab4

Browse files
authored
Consolidate reasoning effort override for evals into a single advanced setting (#310517)
Consolidate reasoning effort override into single advanced setting Replaces chat.advanced.responsesApiReasoningEffort and chat.advanced.anthropicThinkingEffort with a single chat.advanced.reasoningEffortOverride setting used by both the Responses API and the Anthropic Messages API for evals.
1 parent 866d1d8 commit f5b4ab4

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

extensions/copilot/package.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3927,6 +3927,17 @@
39273927
{
39283928
"id": "advanced",
39293929
"properties": {
3930+
"github.copilot.chat.reasoningEffortOverride": {
3931+
"type": [
3932+
"string",
3933+
"null"
3934+
],
3935+
"default": null,
3936+
"markdownDescription": "Overrides the reasoning/thinking effort sent to model APIs. The configured value must match a reasoning-effort value supported by the selected model or endpoint (for example, `low`, `medium`, `high`, or other model-specific values). Used by evals.\n\n**Note**: This is an advanced debugging setting.",
3937+
"tags": [
3938+
"advanced"
3939+
]
3940+
},
39303941
"github.copilot.chat.installExtensionSkill.enabled": {
39313942
"type": "boolean",
39323943
"default": false,

extensions/copilot/src/platform/configuration/common/configurationService.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,9 @@ export namespace ConfigKey {
710710
export const OTelCaptureContent = defineSetting<boolean>('chat.otel.captureContent', ConfigType.Simple, false);
711711
export const OTelOutfile = defineSetting<string>('chat.otel.outfile', ConfigType.Simple, '');
712712
export const OTelDbSpanExporter = defineSetting<boolean>('chat.otel.dbSpanExporter.enabled', ConfigType.Simple, false);
713+
714+
/** Internal: override reasoning/thinking effort sent to model APIs (e.g. Responses API, Messages API). Used by evals. */
715+
export const ReasoningEffortOverride = defineSetting<string | null>('chat.reasoningEffortOverride', ConfigType.Simple, null);
713716
}
714717

715718
/**
@@ -865,10 +868,6 @@ export namespace ConfigKey {
865868
/** Enable WebSocket transport for Responses API requests. When enabled, uses a persistent WebSocket connection per conversation instead of individual HTTP requests. */
866869
export const ResponsesApiWebSocketEnabled = defineTeamInternalSetting<boolean>('chat.advanced.responsesApi.webSocket.enabled', ConfigType.ExperimentBased, false);
867870
export const DebugSimulateWebSocketResponse = defineTeamInternalSetting<string>('chat.advanced.debug.simulateWebSocketResponse', ConfigType.Simple, '');
868-
/** Internal: configure reasoning effort for Responses API. Used by evals. */
869-
export const ResponsesApiReasoningEffort = defineTeamInternalSetting<'low' | 'medium' | 'high' | 'xhigh' | undefined>('chat.advanced.responsesApiReasoningEffort', ConfigType.Simple, undefined);
870-
/** Internal: configure reasoning effort for Anthropic thinking. Used by evals. */
871-
export const AnthropicThinkingEffort = defineTeamInternalSetting<'low' | 'medium' | 'high' | undefined>('chat.advanced.anthropicThinkingEffort', ConfigType.Simple, undefined);
872871
}
873872

874873
/**

extensions/copilot/src/platform/endpoint/node/messagesApi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ export function createMessagesRequestBody(accessor: ServicesAccessor, options: I
154154
const thinkingEnabled = !!thinkingConfig;
155155
let effort: 'low' | 'medium' | 'high' | undefined;
156156
if (thinkingConfig && endpoint.supportsReasoningEffort?.length) {
157-
const candidateEffort = configurationService.getConfig(ConfigKey.TeamInternal.AnthropicThinkingEffort)
157+
const candidateEffort = configurationService.getConfig(ConfigKey.Advanced.ReasoningEffortOverride)
158158
?? reasoningEffort
159159
?? (endpoint.supportsReasoningEffort.length === 1 ? endpoint.supportsReasoningEffort[0] : 'medium');
160160
if (candidateEffort === 'low' || candidateEffort === 'medium' || candidateEffort === 'high') {

extensions/copilot/src/platform/endpoint/node/responsesApi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ export function createResponsesRequestBody(accessor: ServicesAccessor, options:
8888
'disabled';
8989
const summaryConfig = configService.getExperimentBasedConfig(ConfigKey.ResponsesApiReasoningSummary, expService);
9090
const shouldDisableReasoningSummary = endpoint.family === 'gpt-5.3-codex-spark-preview';
91-
const effortFromSetting = configService.getConfig(ConfigKey.TeamInternal.ResponsesApiReasoningEffort);
91+
const effortFromSetting = configService.getConfig(ConfigKey.Advanced.ReasoningEffortOverride);
9292
const effort = endpoint.supportsReasoningEffort?.length
9393
? (effortFromSetting || options.modelCapabilities?.reasoningEffort || 'medium')
9494
: undefined;

0 commit comments

Comments
 (0)