Tool whitelist from agent header filters native tools
The tools field in agent headers now filters which native tools the agent receives. Empty = all tools (default). Non-empty = whitelist. Journal agent can list only journal_tail/journal_new/ journal_update. Log shows actual tool names instead of "no tools". Threaded tools list through call_api_with_tools → sync wrapper → llm caller. Co-Authored-By: Proof of Concept <poc@bcachefs.org>
This commit is contained in:
parent
834247fa53
commit
8eabeab8eb
3 changed files with 20 additions and 9 deletions
|
|
@ -22,7 +22,7 @@ pub(crate) fn call_simple(caller: &str, prompt: &str) -> Result<String, String>
|
|||
|
||||
let prompts = vec![prompt.to_string()];
|
||||
let phases = vec![];
|
||||
super::api::call_api_with_tools_sync(caller, &prompts, &phases, None, None, &log)
|
||||
super::api::call_api_with_tools_sync(caller, &prompts, &phases, None, &[], None, &log)
|
||||
}
|
||||
|
||||
/// Call a model using an agent definition's configuration (multi-step).
|
||||
|
|
@ -34,7 +34,7 @@ pub(crate) fn call_for_def_multi(
|
|||
bail_fn: Option<&(dyn Fn(usize) -> Result<(), String> + Sync)>,
|
||||
log: &(dyn Fn(&str) + Sync),
|
||||
) -> Result<String, String> {
|
||||
super::api::call_api_with_tools_sync(&def.agent, prompts, phases, def.temperature, bail_fn, log)
|
||||
super::api::call_api_with_tools_sync(&def.agent, prompts, phases, def.temperature, &def.tools, bail_fn, log)
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue