use super::agent::ToolDefinition;
use crate::traits::Result;
use async_trait::async_trait;
use serde_json::Value;
use std::fmt::Debug;
#[async_trait]
pub trait AgentTool: Send + Sync + Debug {
fn definition(&self) -> ToolDefinition;
async fn execute(&self, args: Value) -> Result<String>;
}