From 66a85c0dd3a8abe4d39adc04039685214e09a6a3 Mon Sep 17 00:00:00 2001 From: Simon <10131203+gaomeng1900@users.noreply.github.com> Date: Fri, 20 Mar 2026 17:40:16 +0800 Subject: [PATCH] feat: option to disable named tool choice --- packages/extension/src/agent/useAgent.ts | 9 ++++++++- packages/extension/src/components/ConfigPanel.tsx | 10 ++++++++++ packages/llms/src/OpenAIClient.ts | 11 +++++++---- packages/llms/src/index.ts | 1 + packages/llms/src/types.ts | 6 ++++++ .../src/pages/docs/advanced/page-agent-core/page.tsx | 8 ++++++++ 6 files changed, 40 insertions(+), 5 deletions(-) diff --git a/packages/extension/src/agent/useAgent.ts b/packages/extension/src/agent/useAgent.ts index 42375fe..f5596a5 100644 --- a/packages/extension/src/agent/useAgent.ts +++ b/packages/extension/src/agent/useAgent.ts @@ -21,6 +21,7 @@ export interface AdvancedConfig { maxSteps?: number systemInstruction?: string experimentalLlmsTxt?: boolean + disableNamedToolChoice?: boolean } export interface ExtConfig extends LLMConfig, AdvancedConfig { @@ -124,6 +125,7 @@ export function useAgent(): UseAgentResult { maxSteps, systemInstruction, experimentalLlmsTxt, + disableNamedToolChoice, ...llmConfig }: ExtConfig) => { await chrome.storage.local.set({ llmConfig }) @@ -132,7 +134,12 @@ export function useAgent(): UseAgentResult { } else { await chrome.storage.local.remove('language') } - const advancedConfig: AdvancedConfig = { maxSteps, systemInstruction, experimentalLlmsTxt } + const advancedConfig: AdvancedConfig = { + maxSteps, + systemInstruction, + experimentalLlmsTxt, + disableNamedToolChoice, + } await chrome.storage.local.set({ advancedConfig }) setConfig({ ...llmConfig, ...advancedConfig, language }) }, diff --git a/packages/extension/src/components/ConfigPanel.tsx b/packages/extension/src/components/ConfigPanel.tsx index 1e6f1ed..f1dd250 100644 --- a/packages/extension/src/components/ConfigPanel.tsx +++ b/packages/extension/src/components/ConfigPanel.tsx @@ -36,6 +36,9 @@ export function ConfigPanel({ config, onSave, onClose }: ConfigPanelProps) { const [experimentalLlmsTxt, setExperimentalLlmsTxt] = useState( config?.experimentalLlmsTxt ?? false ) + const [disableNamedToolChoice, setDisableNamedToolChoice] = useState( + config?.disableNamedToolChoice ?? false + ) const [advancedOpen, setAdvancedOpen] = useState(false) const [saving, setSaving] = useState(false) const [userAuthToken, setUserAuthToken] = useState('') @@ -51,6 +54,7 @@ export function ConfigPanel({ config, onSave, onClose }: ConfigPanelProps) { setMaxSteps(config?.maxSteps) setSystemInstruction(config?.systemInstruction ?? '') setExperimentalLlmsTxt(config?.experimentalLlmsTxt ?? false) + setDisableNamedToolChoice(config?.disableNamedToolChoice ?? false) }, [config]) // Poll for user auth token every second until found @@ -96,6 +100,7 @@ export function ConfigPanel({ config, onSave, onClose }: ConfigPanelProps) { maxSteps: maxSteps || undefined, systemInstruction: systemInstruction || undefined, experimentalLlmsTxt, + disableNamedToolChoice, }) } finally { setSaving(false) @@ -271,6 +276,11 @@ export function ConfigPanel({ config, onSave, onClose }: ConfigPanelProps) { /> + +