agent: Send stale file notifications using the project_notifications tool (#34005)

This commit introduces the `project_notifications` tool, which
proactively pushes notifications to the agent.

Unlike other tools, `Thread` automatically invokes this tool on every
turn, even when the LLM doesn't ask for it. When notifications are
available, the tool use and results are inserted into the thread,
simulating an LLM tool call.

As with other tools, users can disable `project_notifications` in
Profiles if they do not want them.

Currently, the tool only notifies users about stale files: that is,
files that have been edited by the user while the agent is also working
on them. In the future, notifications may be expanded to include
compiler diagnostics, long-running processes, and more.

Release Notes:

- Added `project_notifications` tool
This commit is contained in:
Oleksiy Syvokon 2025-07-07 19:48:18 +03:00 committed by GitHub
parent de9053c7ca
commit d87603dd60
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 427 additions and 4 deletions

View file

@ -14,7 +14,7 @@ impl Example for FileChangeNotificationExample {
url: "https://github.com/octocat/hello-world".to_string(),
revision: "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d".to_string(),
language_server: None,
max_assertions: Some(1),
max_assertions: None,
profile_id: AgentProfileId::default(),
existing_thread_json: None,
max_turns: Some(3),