Built-in Function Tool Catalog

January 7, 2026 · View on GitHub

This document lists all preset tools in the functions/function_calling/ directory for Agent nodes to use via Function Tooling.

Quick Import

Reference tools in YAML as follows:

tooling:
  - type: function
    config:
      tools:
        - name: file:All           # Import entire module
        - name: save_file          # Import single function
        - name: deep_research:All

File Operations (file.py)

Tools for file and directory management within code_workspace/.

FunctionDescription
describe_available_filesList available files in attachment store and code_workspace
list_directoryList contents of a directory
create_folderCreate a folder (supports nested directories)
delete_pathDelete a file or directory
load_fileLoad a file and register as attachment, supports multimodal (text/image/audio)
save_fileSave text content to a file
read_text_file_snippetRead text snippet (offset + limit), suitable for large files
read_file_segmentRead file by line range, supports line number metadata
apply_text_editsApply multiple text edits while preserving newlines and encoding
rename_pathRename a file or directory
copy_pathCopy a file or directory tree
move_pathMove a file or directory
search_in_filesSearch for text or regex patterns in workspace files

Example YAML: ChatDev_v1.yaml, file_tool_use_case.yaml


Python Environment Management (uv_related.py)

Manage Python environments and dependencies using uv.

FunctionDescription
install_python_packagesInstall Python packages using uv add
init_python_envInitialize Python environment (uv lock + venv)
uv_runExecute uv run in workspace to run modules or scripts

Example YAML: ChatDev_v1.yaml


Deep Research (deep_research.py)

Search result management and report generation tools for automated research workflows.

Search Result Management

FunctionDescription
search_save_resultSave or update a search result (URL, title, abstract, details)
search_load_allLoad all saved search results
search_load_by_urlLoad a specific search result by URL
search_high_light_keySave highlighted keywords for a search result

Report Management

FunctionDescription
report_readRead full report content
report_read_chapterRead a specific chapter (supports multi-level paths like Intro/Background)
report_outlineGet report outline (header hierarchy)
report_create_chapterCreate a new chapter
report_rewrite_chapterRewrite chapter content
report_continue_chapterAppend content to an existing chapter
report_reorder_chaptersReorder chapters
report_del_chapterDelete a chapter
report_export_pdfExport report to PDF

Example YAML: deep_research_v1.yaml


Web Tools (web.py)

Web search and webpage content retrieval.

FunctionDescription
web_searchPerform web search using Serper.dev, supports pagination and multiple languages
read_webpage_contentRead webpage content using Jina Reader, supports rate limiting

Environment Variables:

  • SERPER_DEV_API_KEY: Serper.dev API key
  • JINA_API_KEY: Jina API key (optional, auto rate-limited to 20 RPM without key)

Example YAML: deep_research_v1.yaml


Video Tools (video.py)

Manim animation rendering and video processing.

FunctionDescription
render_manimRender Manim script, auto-detects scene class and outputs video
concat_videosConcatenate multiple video files using FFmpeg

Example YAML: teach_video.yaml, teach_video.yaml


Code Execution (code_executor.py)

FunctionDescription
execute_codeExecute Python code string, returns stdout and stderr

⚠️ Security Note: This tool has elevated privileges and should only be used in trusted workflows.


User Interaction (user.py)

FunctionDescription
call_userSend instructions to the user and get a response, for scenarios requiring human input

Weather Query (weather.py)

Demo tools to illustrate Function Calling workflow.

FunctionDescription
get_city_numReturn city code (hardcoded example)
get_weatherReturn weather info by city code (hardcoded example)

Adding Custom Tools

  1. Create a Python file in functions/function_calling/ directory
  2. Define parameters using type annotations:
from typing import Annotated
from utils.function_catalog import ParamMeta

def my_tool(
    param1: Annotated[str, ParamMeta(description="Parameter description")],
    *,
    _context: dict | None = None,  # Optional, auto-injected by system
) -> str:
    """Function description (shown to LLM)"""
    return "result"
  1. Restart the backend server
  2. Reference in Agent node via name: my_tool or name: my_module:All