Built-in Tools#

Enkaidu provides built-in tools (functions) with related ones organized into toolsets.

You can load and unload tools, either individually or as entire toolsets, before and after prompting the LLM. You can also configure Enkaidu to auto-load tools you specify so they are available at start time.

Always-on session tools#

While the availability of toolsets and their tools are controllable by the user (using the /toolset... commands and auto_load:... configurations), as of version 0.8.10 Enkaidu includes tools that are built-in and available to all sessions all the time.

They are intended to provide the models with dynamic control over how agentic work is done.

  1. For complex tasks, you can ask a model to use an agent to reduce the impact on the context window, especially when using small models.
  2. A model can also query and install tools without you having to pre-load them all the team. Caveat: tool calling models really want to call tools and the idea of installing before using a tool is not well represented in many models’ latent spaces.

They are documented in detail here.

Caveats#

Some local models don’t seem to be able to make good judgement calls about when to spawn an agent. Try appending Use an agent to your prompt to guide the model.

Similarly, append “install tools you need” if you find the model isn’t able to install tools it needs after getting the list of installable tools.

User-selectable session tools#

Heads up! The shell_command tool tries to err on the side of caution and detect and prompt you for confirmation even when you’ve approved commands but built-in (and custom) restricted strings are detected. Regardless, you and only you are responsible for the outcome of any commands run via this tool.

Toolset Description Tools
DateAndTime Tools for working with dates and times. get_current_datetime
Experimental Tools for experimental features. regex_text_edit_tool, apply_patch_to_text_file
FileManagement Tools for managing files and directories. search_files, find_files, create_directory, rename_file, delete_file
ImageEditing Tools for creating and reading image files. create_image_file, read_image_file
ShellAccess Tools for executing shell commands. shell_command
TextEditing Tools for reading and editing text files. read_text_file, str_insert_in_text_file, str_replace_in_text_file, str_replace_lines_in_text_file, write_text_file
Web Tools for interacting with web resources. http_get_web_page, http_get_web_page_as_markdown