clawseed-tools contains 25+ built-in tool implementations. All tools depend only on clawseed-api traits. Tools that need runtime dependencies (Memory, etc.) receive them via constructor injection.
Note:crates/clawseed-agent/src/tools.rs contains a transitional all_tools_with_runtime() function with a bloated signature (13 parameters, most unused). It delegates to the real all_tools() here. The agent crate's tools.rs is a stub/re-export layer — the actual implementation lives in this crate.
Instantiate all built-in tools
Filter based on configuration
http_request — only when config.http_request.enabled is true
web_fetch — only when config.web_fetch.enabled is true
web_search — only when config.web_search.enabled is true
Conditionally-enabled tools can be configured with domain allowlists, etc.
pubstructMemoryStoreTool{memory:Arc<dynMemory>,}implMemoryStoreTool{pubfnnew(memory:Arc<dynMemory>)->Self{Self{memory}}}#[async_trait]implToolforMemoryStoreTool{asyncfnexecute(&self,args:Value,_ctx:&dynToolContext)->anyhow::Result<ToolResult>{// Use injected memory directlyself.memory.store("key",&value,MemoryCategory::Core,None).await?;Ok(ToolResult{success:true,output:result,error:None})}}