agent: Handle attempts to use hallucinated tools (#29946)

This change:

1. Catches attempts to use missing tools. If this happens, we now send
Agent a message listing available tools, after which Agent can
gracefully recover. Prior behavior: thread would stop in a broken state.

Example of a hallucinated call and a message we send back: 

![image](https://github.com/user-attachments/assets/92a8f700-b192-4038-8c7e-0a74ca2e0146)

2. Adds evals for hallucinated tool use and imagined edits
3. Adds ability to configure a profile name in evals.



Release Notes:

- N/A
This commit is contained in:
Oleksiy Syvokon
2025-05-05 19:31:11 +00:00
committed by GitHub
parent 7dfbe0b908
commit 8199664a5a
14 changed files with 111 additions and 0 deletions
@@ -1,4 +1,5 @@
use anyhow::Result;
use assistant_settings::AgentProfileId;
use async_trait::async_trait;
use markdown::PathWithRange;
@@ -20,6 +21,7 @@ impl Example for CodeBlockCitations {
allow_preexisting_diagnostics: false,
}),
max_assertions: None,
profile_id: AgentProfileId::default(),
}
}