Инструменты

Справочник инструментов

63 встроенных инструмента, доступных агентам (до 75 с Computer Use, CDP и LSP). Каждый реализует трейт Tool и авто-регистрируется в ToolRegistry.

63 always-registered built-in tools plus up to 5 CDP browser tools, up to 6 computer tools, and LSP language server integration (up to 75 tools total) available across coding harnesses, AST repo-mapping, git worktrees, web, memory, browser, security, and swarm coordination. Each implements the Tool trait and auto-registers in the registry; MCP servers and plugins extend the catalog.

Обзор

Воркеры Fathom имеют доступ к обширному набору инструментов для веб-поиска, работы с файлами, браузером и компьютером, кода, памяти, управления и не только. Инструменты классифицируются по безопасности параллелизма для оптимального конкурентного исполнения.

Fathom agents have access to a comprehensive toolkit spanning web search, file operations, browser automation, OSINT pipelines, Git integration, and more. Tools are classified by parallelism safety for optimal concurrent execution.

Веб

web_search

parallel-безопасный

Поиск в интернете через настроенный бэкенд (Linkup/Exa/Tavily/Serper/Brave/Parallel/DuckDuckGo).

ПараметрТипОписание
querystringПоисковый запрос
limitu32Макс. результатов (по умолчанию 10)

Возвращает: список результатов (title, URL, snippet).

web_fetch

parallel-безопасный

Скачайте страницу и преобразуйте HTML в читаемый текст.

ПараметрТипОписание
urlstringURL страницы
extract_textboolИзвлекать только текст (по умолчанию true)

Возвращает: текст страницы (обрезан до 50K символов).

web_crawl

parallel-безопасный

Обход сайта в ширину с начального URL

ПараметрТипОписание
urlstringначальный URL (обязательно)
max_depthu32макс. глубина обхода (макс. 3)
max_pagesu32макс. страниц (макс. 50)
same_domainboolоставаться в том же домене (bool)
delay_msu64задержка между запросами (мс)
selectorstring?CSS-селектор
chars_per_pageu32макс. символов на страницу

↗ Заголовок + извлечённый текст каждой страницы

web_feed

parallel-безопасный

Парсинг RSS 2.0, Atom или sitemap.xml в чистый список элементов

ПараметрТипОписание
urlstringURL фида (обязательно)
limitu32?макс. элементов (по умолчанию 20)

↗ Элементы фида (title, link, description, pub_date)

Файлы

file_read

parallel-безопасный

Чтение файла с опциональной поддержкой частичного чтения.

ПараметрТипОписание
pathstringПуть к файлу
offsetu32?Начальная строка
limitu32?Число строк

Примечание: отслеживает прочитанные файлы для проверки «чтение перед записью».

file_write

Последовательный

Запись файла (каталоги создаются автоматически).

ПараметрТипОписание
pathstringПуть к файлу
contentstringСодержимое для записи

Примечание: блокировка по пути, обновляет историю файла.

file_edit

Последовательный

Правка нахождения/замены (точечная замена).

ПараметрТипОписание
pathstringПуть к файлу
old_stringstringЧто заменить
new_stringstringЗаменяющий текст

Проверка: чтение перед записью, проверка устаревания, контроль размера.

glob

parallel-безопасный

Поиск файлов по glob-шаблону.

ПараметрТипОписание
patternstringGlob-шаблон (например, **/*.rs)

grep

parallel-безопасный

Поиск содержимого файлов по regex. Использует ripgrep, если доступен.

ПараметрТипОписание
patternstringRegex-шаблон
pathstring?Каталог поиска
file_patternstring?Фильтр файлов

Shell

shell

Последовательный

Выполнить bash-команду.

ПараметрТипОписание
commandstringКоманда для выполнения
timeoutu64Таймаут в секундах (по умолчанию 120)

Защита: блокирует деструктивные команды (rm -rf /, mkfs, fork-бомбы).

Код

code_symbols

parallel-безопасный

Поиск определений кода (функции, классы, структуры, трейты, методы) в файле или директории

ПараметрТипОписание
pathstringПуть к файлу
symbol_typestring?фильтр по типу (function, class, struct, trait, method)

↗ Список определений с именем, типом, файлом, строкой

repo_map

parallel-безопасный

Построение компактной карты кодовой базы: файлы по языкам и их основные символы

ПараметрТипОписание
pathstring?корневой путь (по умолчанию: cwd)
include_hiddenbool?включить скрытые файлы (bool)

↗ Дерево файлов с языковыми тегами и символами верхнего уровня

python_exec

Последовательный

Выполнить Python-код.

ПараметрТипОписание
codestringPython-код
timeoutu64?таймаут в секундах (по умолчанию 30, макс. 600)

↗ stdout, stderr, exit_code

node_exec

Последовательный

Выполнить Node.js код.

ПараметрТипОписание
codestringJavaScript-код
timeoutu64?таймаут в секундах (по умолчанию 30)

↗ stdout, stderr, exit_code

LSP

lsp

parallel-безопасный

Запрос к Language Server Protocol для кодовой аналитики

ПараметрТипОписание
actionstringдействие (обязательно: document_symbols|goto_definition|find_references|hover|workspace_symbols)
filestring?Путь к файлу
lineu32?номер строки (для goto/find/hover)
characteru32?позиция символа (для goto/find/hover)
querystring?поисковый запрос (для workspace_symbols)

↗ Символы, расположения или hover-информация в зависимости от действия

Браузер (CDP)

Требуется Chrome, запущенный с --remote-debugging-port=9222. Наличие CDP определяется автоматически.

browser_navigate

parallel-безопасный

Открыть URL в браузере.

ПараметрТипОписание
urlstringURL для открытия

browser_screenshot

parallel-безопасный

Сделать скриншот текущей страницы.

Возвращает: изображение base64 в metadata.base64.

browser_click

Последовательный

Кликнуть элемент по CSS-селектору.

ПараметрТипОписание
selectorstringCSS-селектор

browser_type

Последовательный

Ввести текст в элемент.

ПараметрТипОписание
selectorstringCSS-селектор
textstringТекст для ввода

browser_extract

parallel-безопасный

Извлечь текстовое содержимое страницы (с рендерингом JS).

Возвращает: текст страницы (обрезан до 50K).

Vision

analyze_image

parallel-безопасный

Анализ изображения через vision-модель (Qwen 3.8).

ПараметрТипОписание
imagestringПуть к файлу или URL изображения
promptstring?Что анализировать

Конфиг: PARALLEL_VISION_API_BASE, PARALLEL_VISION_API_KEY, PARALLEL_VISION_MODEL.

Git

git_status

parallel-безопасный

Показать статус рабочего дерева.

git_diff

parallel-безопасный

Показать изменения.

ПараметрТипОписание
stagedbool?Только стейдженные изменения
pathstring?Конкретный файл

git_log

parallel-безопасный

История коммитов.

ПараметрТипОписание
limitu32?Макс. коммитов

git_add

Последовательный

Добавить файлы в staging.

ПараметрТипОписание
pathsstring[]Файлы для добавления

git_commit

Последовательный

Создать коммит.

ПараметрТипОписание
messagestringСообщение коммита

git_push

Последовательный

Отправить в удалённый репозиторий.

ПараметрТипОписание
remotestring?Удалённый (по умолчанию: origin)
branchstring?Имя ветки

PDF

pdf_extract

parallel-безопасный

Извлечь текст из PDF-файла.

ПараметрТипОписание
pathstringПуть к PDF-файлу

Возвращает: текст + число страниц. Поддерживает ToUnicode CMaps, шифрование (пустой пароль).

Парсинг

parse_html

parallel-безопасный

Извлечение структурированных данных из HTML-страницы или файла с помощью CSS-селекторов

ПараметрТипОписание
urlstring?URL страницы
pathstring?Путь к файлу
selectorstringCSS-селектор
modestring?режим: texts (по умолчанию), html, attr, links, tables
base_urlstring?базовый URL для разрешения относительных ссылок
max_charsu32?макс. символов вывода

↗ Извлечённые элементы, соответствующие селектору

extract_json

parallel-безопасный

Запрос к JSON-документу по точечному пути и возврат выбранных значений

ПараметрТипОписание
sourcestringисточник: URL, путь к файлу или inline JSON (обязательно)
pathstringпуть запроса в точечной нотации (обязательно)

↗ Значения по указанному пути

OSINT / Генерация лидов

find_leads

parallel-безопасный

Поиск лидов высокого уровня. Оркестрирует бизнес-каталоги → корпоративные сайты → соцсети → извлечение контактов → дедупликацию.

ПараметрТипОписание
industrystring?Отрасль
locationstring?Локация
company_sizestring?Размер компании
role_titlesstring[]?Роли (CEO, CTO...)
limitu32?Макс. лидов

search_business_directory

parallel-безопасный

Поиск в бизнес-каталогах (2GIS, Google Maps, Yandex Maps, Yellow Pages).

ПараметрТипОписание
querystringЧто искать
citystring?Город

Возвращает: название, категорию, адрес, телефон, сайт, email, рейтинг.

search_social

parallel-безопасный

Поиск людей/компаний в соцсетях (Twitter, Telegram, LinkedIn).

ПараметрТипОписание
querystringПоисковый запрос
platformstring?Конкретная платформа

parse_corporate_site

parallel-безопасный

Парсинг корпоративного сайта: информация о компании, команда, контакты.

ПараметрТипОписание
urlstringURL сайта

Возвращает: название компании, описание, отрасль, размер, контакты, URL страницы команды, соцпрофили.

search_news

parallel-безопасный

Поиск новостей/упоминаний (Serper News или Google News RSS).

ПараметрТипОписание
querystringКого/что искать
limitu32?Макс. статей (по умолчанию 10)

Возвращает: title, URL, источник, дату, сниппет + извлечённые персоны/компании.

Верификация

verify_email

parallel-безопасный

Проверка email: синтаксис, MX-записи, одноразовость, ролевые проверки.

ПараметрТипОписание
emailstringEmail для проверки

Возвращает: is_valid_syntax, domain_exists, mx_records, is_disposable, is_role_based, confidence.

suggest_emails

parallel-безопасный

Генерация вероятных корпоративных email-адресов для персоны из стандартных перестановок имени

ПараметрТипОписание
namestringИмя персоны
domainstringдомен компании (обязательно)
known_emailsstring[]?известные email для определения паттерна (string[])
smtp_checkbool?выполнить SMTP-проверку (bool)

↗ Кандидатные email со статусом проверки и уверенностью

verify_phone

parallel-безопасный

Проверить и нормализовать номер телефона (E.164).

ПараметрТипОписание
phonestringНомер телефона

Возвращает: Normalized (E.164), country_code, country_name, is_valid, is_mobile.

verify_social_profile

parallel-безопасный

Проверить, существует ли профиль в соцсети.

ПараметрТипОписание
urlstringURL профиля

Возвращает: exists, platform, username, name, followers.

Обогащение

enrich_company

parallel-безопасный

Обогатить данные компании.

ПараметрТипОписание
company_namestringНазвание компании
websitestring?Сайт

Возвращает: отрасль, размер, выручку, основание, штаб-квартиру, описание, технологии.

enrich_person

parallel-безопасный

Обогатить данные персоны.

ПараметрТипОписание
namestringИмя персоны
companystring?Компания

Возвращает: должность, компанию, linkedin, twitter, email, телефон, локацию, био.

Контакты

extract_contacts

parallel-безопасный

Извлечение структурированной контактной информации из текста, HTML или URL

ПараметрТипОписание
inputstringтекст, URL или путь к файлу (обязательно)
enrich_entitiesbool?извлечь персоны/компании с LLM (bool)
max_resultsu32?макс. контактов для возврата (u32)

Возвращает: email, телефоны (E.164), соцпрофили, персон, компании — каждое с уверенностью и источником.

save_contacts

Последовательный

Сохранение собранных контактов в постоянную базу контактов с дедупликацией

ПараметрТипОписание
contactsarrayмассив объектов контактов (обязательно)
push_to_crmbool?отправить в настроенный CRM (bool)

↗ количество сохранённых, объединённых, пропущенных

Координация

spawn_agent

Последовательный

Запуск суб-агента для выполнения конкретной исследовательской задачи

ПараметрТипОписание
taskstringЗадача для субагента
rolestring?Роль (по умолчанию: researcher)
contextstring?дополнительный контекст для суб-агента
backgroundbool?запустить в фоне (bool)

Лимит: глубина вложенности (max_depth).

question

parallel-безопасный

Задать вопрос оператору и ждать ответа

ПараметрТипОписание
questionstringтекст вопроса (обязательно, макс. 500 символов)

↗ Текст ответа оператора

skill

parallel-безопасный

Загрузка полных инструкций навыка по имени

ПараметрТипОписание
namestringимя навыка (обязательно)

↗ Инструкции навыка в виде текста

scratchpad

Зависит от контекста

Общий журнал сессии для координации между агентами

ПараметрТипОписание
actionstringдействие (обязательно: read|append)
textstring?текст для добавления (обязательно для append)

↗ Текущее содержимое scratchpad (read) или подтверждение (append)

undoSequential

Отмена недавних правок файлов, сделанных в этой сессии

steps (usize?, default 1)

↗ Подтверждение операции отмены со списком откаченных файлов

Семантическая память

memory

Зависит от контекста

Управление постоянными записями памяти, сохраняющимися между сессиями

ПараметрТипОписание
actionstringдействие (обязательно: list|read|add|update|delete|archive|restore)
targetstring?memory or user (default: memory)
contentstring?Содержимое для записи
old_textstring?Existing text for replace or remove
operationsarray?Batch of add, replace, or remove operations when action is batch

↗ Записи памяти или результат операции

memory_absorb

Последовательный

Сохранение фактов в долгосрочную семантическую память с дедупликацией

ПараметрТипОписание
factsarrayмассив объектов фактов (обязательно)
sourcestring?идентификатор источника

↗ Отчёт о поглощении (создано, дубликаты, замещено)

memory_search

parallel-безопасный

Поиск по долгосрочной семантической памяти (гибрид векторного + BM25)

ПараметрТипОписание
querystringПоисковый запрос
limitu32?макс. результатов (по умолчанию 5)
min_scoref32?минимальный порог score (по умолчанию 0.25)

↗ Ранжированные воспоминания с гибридными score

memory_digest

parallel-безопасный

Загрузка детерминированного контекстного дайджеста по теме из долгосрочной памяти

ПараметрТипОписание
topicstringтема (обязательно)

↗ Отформатированный текст дайджеста для инъекции в системный промпт

memory_boost

Последовательный

Повысить или понизить важность хранимого воспоминания

ПараметрТипОписание
idstringid записи памяти
deltaf32?дельта важности (по умолчанию 0.1, диапазон -1.0 до 1.0)

↗ Обновлённое воспоминание с новой важностью

memory_link

Последовательный

Добавление типизированного ребра между двумя хранимыми воспоминаниями

ПараметрТипОписание
fromstringid исходного воспоминания (обязательно)
tostringid целевого воспоминания (обязательно)
edge_typestring?тип ребра: related_to, supersedes, contradicts, implements, extends, references
reasonstring?причина связи

↗ Подтверждение созданного ребра

memory_graph

Зависит от контекста

Граф знаний сущностей для персон, компаний, локаций и типизированных связей

ПараметрТипОписание
actionstringдействие (обязательно: add|query|list)
entitiesarray?сущности для добавления (массив)
relationsarray?связи между сущностями (массив)
namestring?имя сущности (для query)
entity_typestring?тип сущности (person, company, location)
depthu32?макс. переходов для обхода графа (по умолчанию 2)

↗ Сущности и связи, соответствующие запросу

Безопасность параллелизма

Инструменты классифицируются для умного параллелизма:

КлассИнструментыПоведение
parallel-безопасныйweb_search, web_fetch, web_crawl, web_feed, file_read, glob, grep, code_symbols, repo_map, parse_html, extract_json, pdf_extract, analyze_image, verify_email, suggest_emails, verify_phone, verify_social_profile, enrich_company, enrich_person, extract_contacts, search_business_directory, search_social, search_news, parse_corporate_site, find_leads, git_status, git_diff, git_log, browser_navigate, browser_screenshot, browser_extract, memory_search, memory_digest, lsp, question, skillМожет выполняться параллельно
Последовательныйfile_write, file_edit, shell, python_exec, node_exec, browser_click, browser_type, git_add, git_commit, git_push, spawn_agent, save_contacts, memory_absorb, memory_boost, memory_link, undoВыполняется последовательно (исключительный доступ)
Context-dependentmemory (file-backed), memory_graph, scratchpadЗависит от контекста

Детекция перекрытия путей: два файловых инструмента, нацеленных на один путь, автоматически сериализуются.

Поисковые бэкенды

Поддерживаются семь поисковых бэкендов. Каждый настраивается через подсекции [search.*] в config.toml.

БэкендФормат APIНужен ключ
linkupПоисковый API LinkupДа
exaAPI нейропоиска ExaДа
tavilyПоисковый API TavilyДа
serperAPI Serper (Google)Да
braveПоисковый API BraveДа
parallelПоисковый API Parallel.aiДа
duckduckgoDuckDuckGo Instant AnswerНет

Режимы Hybrid и Smart

hybrid

Перебирает настроенные бэкенды по порядку (linkup → exa → tavily → serper → brave → parallel.ai → duckduckgo). Возвращает результаты первого ответившего бэкенда.

smart

Опрашивает все настроенные бэкенды параллельно. Дедуплицирует результаты по URL, затем ранжирует с помощью reciprocal rank fusion для оптимальной релевантности.