change-web-search

This commit is contained in:
Ahmed Ibrahim
2025-10-15 16:26:33 -07:00
parent f4fe99691f
commit c1d951c594
2 changed files with 28 additions and 2 deletions

View File

@@ -1981,13 +1981,36 @@ async fn run_turn(
.get_model_family()
.supports_parallel_tool_calls;
let parallel_tool_calls = model_supports_parallel;
let mut allowed_tools = Vec::new();
let mut restricted_tool_choice = false;
for tool in router.allowed_tools() {
let is_disabled = tool
.get("name")
.and_then(|val| val.as_str())
.is_some_and(|name| {
turn_context
.disabled_tools
.iter()
.any(|disabled| disabled.matches_tool_name(name))
});
if is_disabled {
restricted_tool_choice = true;
continue;
}
allowed_tools.push(tool);
}
let allowed_tools = if restricted_tool_choice {
Some(allowed_tools)
} else {
None
};
let prompt = Prompt {
input,
tools: router.specs(),
parallel_tool_calls,
base_instructions_override: turn_context.base_instructions.clone(),
output_schema: turn_context.final_output_json_schema.clone(),
allowed_tools: Some(router.allowed_tools()),
allowed_tools,
};
let mut retries = 0;

View File

@@ -96,7 +96,10 @@ impl DisabledTool {
}
pub fn matches_tool_name(&self, tool_name: &str) -> bool {
self.raw_name() == tool_name
match self {
DisabledTool::Known(kind) => kind.raw_name() == tool_name,
DisabledTool::Other(name) => name == tool_name,
}
}
}