pub struct CodeTool { /* private fields */ }Expand description
A tool that executes code through language-specific pipelines.
CodeTool wraps a RustExecutor and implements adk_core::Tool,
making code execution with compiler diagnostics available to LLM agents.
Phase 1 supports Rust only; other languages return a descriptive error.
§Error Handling
Executor errors are never propagated as ToolError. Instead, they are
converted to structured JSON with a "status" field. Compile errors include
a "diagnostics" array with structured compiler output.
§Example
ⓘ
use adk_code::{CodeTool, RustExecutor, RustExecutorConfig};
use adk_sandbox::ProcessBackend;
use std::sync::Arc;
let backend = Arc::new(ProcessBackend::default());
let executor = RustExecutor::new(backend, RustExecutorConfig::default());
let tool = CodeTool::new(executor);
assert_eq!(tool.name(), "code_exec");Implementations§
Trait Implementations§
Source§impl Tool for CodeTool
impl Tool for CodeTool
fn name(&self) -> &str
fn description(&self) -> &str
Source§fn required_scopes(&self) -> &[&str]
fn required_scopes(&self) -> &[&str]
Returns the scopes required to execute this tool. Read more
fn parameters_schema(&self) -> Option<Value>
fn execute<'life0, 'async_trait>(
&'life0 self,
_ctx: Arc<dyn ToolContext>,
args: Value,
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn enhanced_description(&self) -> String
fn enhanced_description(&self) -> String
Returns an enhanced description that may include additional notes.
For long-running tools, this includes a warning not to call the tool
again if it has already returned a pending status.
Default implementation returns the base description.
Source§fn is_long_running(&self) -> bool
fn is_long_running(&self) -> bool
Indicates whether the tool is a long-running operation.
Long-running tools typically return a task ID immediately and
complete the operation asynchronously.
fn response_schema(&self) -> Option<Value>
Auto Trait Implementations§
impl Freeze for CodeTool
impl !RefUnwindSafe for CodeTool
impl Send for CodeTool
impl Sync for CodeTool
impl Unpin for CodeTool
impl UnsafeUnpin for CodeTool
impl !UnwindSafe for CodeTool
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more