Files
OpenJarvis/docs/api/tools.md
T
Jon Saad-FalconandClaude Opus 4.6 eb9b481510 Subsume NanoClaw into OpenJarvis (Phase 11)
Add four major components that bring NanoClaw's capabilities into the
OpenJarvis framework as native, config-driven modules:

- ClaudeCodeAgent: wraps @anthropic-ai/claude-code SDK via Node.js subprocess
- WhatsAppBaileysChannel: bidirectional WhatsApp messaging via Baileys protocol
- ContainerRunner/SandboxedAgent: Docker sandbox with mount security enforcement
- TaskScheduler: cron/interval/once scheduling with SQLite persistence, MCP tools, CLI

New config sections: [sandbox], [scheduler], [channel.whatsapp_baileys].
New CLI: jarvis scheduler create|list|pause|resume|cancel|logs|start.
46 files changed, ~5,867 lines. 2078 tests pass (36 skipped).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 03:47:07 +00:00

3.8 KiB

Tools Module

The tools module implements the tool system used by agents for executing actions such as calculations, memory search, file reading, and sub-model queries. Each tool implements the BaseTool ABC and is registered via @ToolRegistry.register("name"). The ToolExecutor dispatches tool calls with JSON argument parsing, latency tracking, and event bus integration.

Abstract Base Class

BaseTool

::: openjarvis.tools._stubs.BaseTool options: show_source: true members_order: source

ToolSpec

::: openjarvis.tools._stubs.ToolSpec options: show_source: true members_order: source

ToolExecutor

::: openjarvis.tools._stubs.ToolExecutor options: show_source: true members_order: source

build_tool_descriptions

::: openjarvis.tools._stubs.build_tool_descriptions options: show_source: true


Built-in Tools

CalculatorTool

::: openjarvis.tools.calculator.CalculatorTool options: show_source: true members_order: source

safe_eval

::: openjarvis.tools.calculator.safe_eval options: show_source: true

ThinkTool

::: openjarvis.tools.think.ThinkTool options: show_source: true members_order: source

RetrievalTool

::: openjarvis.tools.retrieval.RetrievalTool options: show_source: true members_order: source

LLMTool

::: openjarvis.tools.llm_tool.LLMTool options: show_source: true members_order: source

FileReadTool

::: openjarvis.tools.file_read.FileReadTool options: show_source: true members_order: source


Storage Tools

Tools that expose memory storage operations for use by agents via the tool system. These wrap the memory backend methods as BaseTool implementations.

MemoryStoreTool

::: openjarvis.tools.storage_tools.MemoryStoreTool options: show_source: true members_order: source

MemoryRetrieveTool

::: openjarvis.tools.storage_tools.MemoryRetrieveTool options: show_source: true members_order: source

MemorySearchTool

::: openjarvis.tools.storage_tools.MemorySearchTool options: show_source: true members_order: source

MemoryIndexTool

::: openjarvis.tools.storage_tools.MemoryIndexTool options: show_source: true members_order: source


Scheduler Tools

MCP tools for scheduling agent tasks for future or recurring execution. All five tools are in the scheduler category and require a TaskScheduler instance to be injected at _scheduler. For usage and schedule type examples see the Scheduler Tools user guide.

ScheduleTaskTool

::: openjarvis.scheduler.tools.ScheduleTaskTool options: show_source: true members_order: source

ListScheduledTasksTool

::: openjarvis.scheduler.tools.ListScheduledTasksTool options: show_source: true members_order: source

PauseScheduledTaskTool

::: openjarvis.scheduler.tools.PauseScheduledTaskTool options: show_source: true members_order: source

ResumeScheduledTaskTool

::: openjarvis.scheduler.tools.ResumeScheduledTaskTool options: show_source: true members_order: source

CancelScheduledTaskTool

::: openjarvis.scheduler.tools.CancelScheduledTaskTool options: show_source: true members_order: source


MCP Adapter

Integration with the Model Context Protocol (MCP). The MCP adapter exposes OpenJarvis tools as MCP-compatible resources and allows consuming external MCP tool providers. Supports MCP protocol version 2025-11-25.

MCPToolAdapter

::: openjarvis.tools.mcp_adapter.MCPToolAdapter options: show_source: true members_order: source

MCPToolProvider

::: openjarvis.tools.mcp_adapter.MCPToolProvider options: show_source: true members_order: source