feat: adversarial agent for preventing leaking of info and more (#7948)

This commit is contained in:
Michael Neale
2026-03-17 17:38:45 +11:00
committed by GitHub
parent a0835be10f
commit 754c214df4
6 changed files with 904 additions and 0 deletions
+8
View File
@@ -44,6 +44,7 @@ use crate::providers::base::{PermissionRouting, Provider};
use crate::providers::errors::ProviderError;
use crate::recipe::{Author, Recipe, Response, Settings};
use crate::scheduler_trait::SchedulerTrait;
use crate::security::adversary_inspector::AdversaryInspector;
use crate::security::security_inspector::SecurityInspector;
use crate::session::extension_data::{EnabledExtensionsState, ExtensionState};
use crate::session::{Session, SessionManager};
@@ -263,6 +264,9 @@ impl Agent {
// Add security inspector (highest priority - runs first)
tool_inspection_manager.add_inspector(Box::new(SecurityInspector::new()));
// Add adversary inspector (LLM-based review, enabled by ~/.config/goose/adversary.md)
tool_inspection_manager.add_inspector(Box::new(AdversaryInspector::new(provider.clone())));
// Add permission inspector (medium-high priority)
tool_inspection_manager.add_inspector(Box::new(PermissionInspector::new(
permission_manager,
@@ -2288,6 +2292,10 @@ mod tests {
inspector_names.contains(&"security"),
"Tool inspection manager should contain security inspector"
);
assert!(
inspector_names.contains(&"adversary"),
"Tool inspection manager should contain adversary inspector"
);
Ok(())
}