Справочник инструментов
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).
| Параметр | Тип | Описание |
|---|---|---|
query | string | Поисковый запрос |
limit | u32 | Макс. результатов (по умолчанию 10) |
Возвращает: список результатов (title, URL, snippet).
web_fetch
parallel-безопасныйСкачайте страницу и преобразуйте HTML в читаемый текст.
| Параметр | Тип | Описание |
|---|---|---|
url | string | URL страницы |
extract_text | bool | Извлекать только текст (по умолчанию true) |
Возвращает: текст страницы (обрезан до 50K символов).
web_crawl
parallel-безопасныйОбход сайта в ширину с начального URL
| Параметр | Тип | Описание |
|---|---|---|
url | string | начальный URL (обязательно) |
max_depth | u32 | макс. глубина обхода (макс. 3) |
max_pages | u32 | макс. страниц (макс. 50) |
same_domain | bool | оставаться в том же домене (bool) |
delay_ms | u64 | задержка между запросами (мс) |
selector | string? | CSS-селектор |
chars_per_page | u32 | макс. символов на страницу |
↗ Заголовок + извлечённый текст каждой страницы
web_feed
parallel-безопасныйПарсинг RSS 2.0, Atom или sitemap.xml в чистый список элементов
| Параметр | Тип | Описание |
|---|---|---|
url | string | URL фида (обязательно) |
limit | u32? | макс. элементов (по умолчанию 20) |
↗ Элементы фида (title, link, description, pub_date)
Файлы
file_read
parallel-безопасныйЧтение файла с опциональной поддержкой частичного чтения.
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к файлу |
offset | u32? | Начальная строка |
limit | u32? | Число строк |
Примечание: отслеживает прочитанные файлы для проверки «чтение перед записью».
file_write
ПоследовательныйЗапись файла (каталоги создаются автоматически).
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к файлу |
content | string | Содержимое для записи |
Примечание: блокировка по пути, обновляет историю файла.
file_edit
ПоследовательныйПравка нахождения/замены (точечная замена).
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к файлу |
old_string | string | Что заменить |
new_string | string | Заменяющий текст |
Проверка: чтение перед записью, проверка устаревания, контроль размера.
glob
parallel-безопасныйПоиск файлов по glob-шаблону.
| Параметр | Тип | Описание |
|---|---|---|
pattern | string | Glob-шаблон (например, **/*.rs) |
grep
parallel-безопасныйПоиск содержимого файлов по regex. Использует ripgrep, если доступен.
| Параметр | Тип | Описание |
|---|---|---|
pattern | string | Regex-шаблон |
path | string? | Каталог поиска |
file_pattern | string? | Фильтр файлов |
Shell
shell
ПоследовательныйВыполнить bash-команду.
| Параметр | Тип | Описание |
|---|---|---|
command | string | Команда для выполнения |
timeout | u64 | Таймаут в секундах (по умолчанию 120) |
Защита: блокирует деструктивные команды (rm -rf /, mkfs, fork-бомбы).
Код
code_symbols
parallel-безопасныйПоиск определений кода (функции, классы, структуры, трейты, методы) в файле или директории
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к файлу |
symbol_type | string? | фильтр по типу (function, class, struct, trait, method) |
↗ Список определений с именем, типом, файлом, строкой
repo_map
parallel-безопасныйПостроение компактной карты кодовой базы: файлы по языкам и их основные символы
| Параметр | Тип | Описание |
|---|---|---|
path | string? | корневой путь (по умолчанию: cwd) |
include_hidden | bool? | включить скрытые файлы (bool) |
↗ Дерево файлов с языковыми тегами и символами верхнего уровня
python_exec
ПоследовательныйВыполнить Python-код.
| Параметр | Тип | Описание |
|---|---|---|
code | string | Python-код |
timeout | u64? | таймаут в секундах (по умолчанию 30, макс. 600) |
↗ stdout, stderr, exit_code
node_exec
ПоследовательныйВыполнить Node.js код.
| Параметр | Тип | Описание |
|---|---|---|
code | string | JavaScript-код |
timeout | u64? | таймаут в секундах (по умолчанию 30) |
↗ stdout, stderr, exit_code
LSP
lsp
parallel-безопасныйЗапрос к Language Server Protocol для кодовой аналитики
| Параметр | Тип | Описание |
|---|---|---|
action | string | действие (обязательно: document_symbols|goto_definition|find_references|hover|workspace_symbols) |
file | string? | Путь к файлу |
line | u32? | номер строки (для goto/find/hover) |
character | u32? | позиция символа (для goto/find/hover) |
query | string? | поисковый запрос (для workspace_symbols) |
↗ Символы, расположения или hover-информация в зависимости от действия
Браузер (CDP)
Требуется Chrome, запущенный с --remote-debugging-port=9222. Наличие CDP определяется автоматически.
browser_navigate
parallel-безопасныйОткрыть URL в браузере.
| Параметр | Тип | Описание |
|---|---|---|
url | string | URL для открытия |
browser_screenshot
parallel-безопасныйСделать скриншот текущей страницы.
Возвращает: изображение base64 в metadata.base64.
browser_click
ПоследовательныйКликнуть элемент по CSS-селектору.
| Параметр | Тип | Описание |
|---|---|---|
selector | string | CSS-селектор |
browser_type
ПоследовательныйВвести текст в элемент.
| Параметр | Тип | Описание |
|---|---|---|
selector | string | CSS-селектор |
text | string | Текст для ввода |
browser_extract
parallel-безопасныйИзвлечь текстовое содержимое страницы (с рендерингом JS).
Возвращает: текст страницы (обрезан до 50K).
Vision
analyze_image
parallel-безопасныйАнализ изображения через vision-модель (Qwen 3.8).
| Параметр | Тип | Описание |
|---|---|---|
image | string | Путь к файлу или URL изображения |
prompt | string? | Что анализировать |
Конфиг: PARALLEL_VISION_API_BASE, PARALLEL_VISION_API_KEY, PARALLEL_VISION_MODEL.
Git
git_status
parallel-безопасныйПоказать статус рабочего дерева.
git_diff
parallel-безопасныйПоказать изменения.
| Параметр | Тип | Описание |
|---|---|---|
staged | bool? | Только стейдженные изменения |
path | string? | Конкретный файл |
git_log
parallel-безопасныйИстория коммитов.
| Параметр | Тип | Описание |
|---|---|---|
limit | u32? | Макс. коммитов |
git_add
ПоследовательныйДобавить файлы в staging.
| Параметр | Тип | Описание |
|---|---|---|
paths | string[] | Файлы для добавления |
git_commit
ПоследовательныйСоздать коммит.
| Параметр | Тип | Описание |
|---|---|---|
message | string | Сообщение коммита |
git_push
ПоследовательныйОтправить в удалённый репозиторий.
| Параметр | Тип | Описание |
|---|---|---|
remote | string? | Удалённый (по умолчанию: origin) |
branch | string? | Имя ветки |
pdf_extract
parallel-безопасныйИзвлечь текст из PDF-файла.
| Параметр | Тип | Описание |
|---|---|---|
path | string | Путь к PDF-файлу |
Возвращает: текст + число страниц. Поддерживает ToUnicode CMaps, шифрование (пустой пароль).
Парсинг
parse_html
parallel-безопасныйИзвлечение структурированных данных из HTML-страницы или файла с помощью CSS-селекторов
| Параметр | Тип | Описание |
|---|---|---|
url | string? | URL страницы |
path | string? | Путь к файлу |
selector | string | CSS-селектор |
mode | string? | режим: texts (по умолчанию), html, attr, links, tables |
base_url | string? | базовый URL для разрешения относительных ссылок |
max_chars | u32? | макс. символов вывода |
↗ Извлечённые элементы, соответствующие селектору
extract_json
parallel-безопасныйЗапрос к JSON-документу по точечному пути и возврат выбранных значений
| Параметр | Тип | Описание |
|---|---|---|
source | string | источник: URL, путь к файлу или inline JSON (обязательно) |
path | string | путь запроса в точечной нотации (обязательно) |
↗ Значения по указанному пути
OSINT / Генерация лидов
find_leads
parallel-безопасныйПоиск лидов высокого уровня. Оркестрирует бизнес-каталоги → корпоративные сайты → соцсети → извлечение контактов → дедупликацию.
| Параметр | Тип | Описание |
|---|---|---|
industry | string? | Отрасль |
location | string? | Локация |
company_size | string? | Размер компании |
role_titles | string[]? | Роли (CEO, CTO...) |
limit | u32? | Макс. лидов |
search_business_directory
parallel-безопасныйПоиск в бизнес-каталогах (2GIS, Google Maps, Yandex Maps, Yellow Pages).
| Параметр | Тип | Описание |
|---|---|---|
query | string | Что искать |
city | string? | Город |
Возвращает: название, категорию, адрес, телефон, сайт, email, рейтинг.
search_social
parallel-безопасныйПоиск людей/компаний в соцсетях (Twitter, Telegram, LinkedIn).
| Параметр | Тип | Описание |
|---|---|---|
query | string | Поисковый запрос |
platform | string? | Конкретная платформа |
parse_corporate_site
parallel-безопасныйПарсинг корпоративного сайта: информация о компании, команда, контакты.
| Параметр | Тип | Описание |
|---|---|---|
url | string | URL сайта |
Возвращает: название компании, описание, отрасль, размер, контакты, URL страницы команды, соцпрофили.
search_news
parallel-безопасныйПоиск новостей/упоминаний (Serper News или Google News RSS).
| Параметр | Тип | Описание |
|---|---|---|
query | string | Кого/что искать |
limit | u32? | Макс. статей (по умолчанию 10) |
Возвращает: title, URL, источник, дату, сниппет + извлечённые персоны/компании.
Верификация
verify_email
parallel-безопасныйПроверка email: синтаксис, MX-записи, одноразовость, ролевые проверки.
| Параметр | Тип | Описание |
|---|---|---|
email | string | Email для проверки |
Возвращает: is_valid_syntax, domain_exists, mx_records, is_disposable, is_role_based, confidence.
suggest_emails
parallel-безопасныйГенерация вероятных корпоративных email-адресов для персоны из стандартных перестановок имени
| Параметр | Тип | Описание |
|---|---|---|
name | string | Имя персоны |
domain | string | домен компании (обязательно) |
known_emails | string[]? | известные email для определения паттерна (string[]) |
smtp_check | bool? | выполнить SMTP-проверку (bool) |
↗ Кандидатные email со статусом проверки и уверенностью
verify_phone
parallel-безопасныйПроверить и нормализовать номер телефона (E.164).
| Параметр | Тип | Описание |
|---|---|---|
phone | string | Номер телефона |
Возвращает: Normalized (E.164), country_code, country_name, is_valid, is_mobile.
verify_social_profile
parallel-безопасныйПроверить, существует ли профиль в соцсети.
| Параметр | Тип | Описание |
|---|---|---|
url | string | URL профиля |
Возвращает: exists, platform, username, name, followers.
Обогащение
enrich_company
parallel-безопасныйОбогатить данные компании.
| Параметр | Тип | Описание |
|---|---|---|
company_name | string | Название компании |
website | string? | Сайт |
Возвращает: отрасль, размер, выручку, основание, штаб-квартиру, описание, технологии.
enrich_person
parallel-безопасныйОбогатить данные персоны.
| Параметр | Тип | Описание |
|---|---|---|
name | string | Имя персоны |
company | string? | Компания |
Возвращает: должность, компанию, linkedin, twitter, email, телефон, локацию, био.
Контакты
extract_contacts
parallel-безопасныйИзвлечение структурированной контактной информации из текста, HTML или URL
| Параметр | Тип | Описание |
|---|---|---|
input | string | текст, URL или путь к файлу (обязательно) |
enrich_entities | bool? | извлечь персоны/компании с LLM (bool) |
max_results | u32? | макс. контактов для возврата (u32) |
Возвращает: email, телефоны (E.164), соцпрофили, персон, компании — каждое с уверенностью и источником.
save_contacts
ПоследовательныйСохранение собранных контактов в постоянную базу контактов с дедупликацией
| Параметр | Тип | Описание |
|---|---|---|
contacts | array | массив объектов контактов (обязательно) |
push_to_crm | bool? | отправить в настроенный CRM (bool) |
↗ количество сохранённых, объединённых, пропущенных
Координация
spawn_agent
ПоследовательныйЗапуск суб-агента для выполнения конкретной исследовательской задачи
| Параметр | Тип | Описание |
|---|---|---|
task | string | Задача для субагента |
role | string? | Роль (по умолчанию: researcher) |
context | string? | дополнительный контекст для суб-агента |
background | bool? | запустить в фоне (bool) |
Лимит: глубина вложенности (max_depth).
question
parallel-безопасныйЗадать вопрос оператору и ждать ответа
| Параметр | Тип | Описание |
|---|---|---|
question | string | текст вопроса (обязательно, макс. 500 символов) |
↗ Текст ответа оператора
skill
parallel-безопасныйЗагрузка полных инструкций навыка по имени
| Параметр | Тип | Описание |
|---|---|---|
name | string | имя навыка (обязательно) |
↗ Инструкции навыка в виде текста
scratchpad
Зависит от контекстаОбщий журнал сессии для координации между агентами
| Параметр | Тип | Описание |
|---|---|---|
action | string | действие (обязательно: read|append) |
text | string? | текст для добавления (обязательно для append) |
↗ Текущее содержимое scratchpad (read) или подтверждение (append)
Отмена недавних правок файлов, сделанных в этой сессии
↗ Подтверждение операции отмены со списком откаченных файлов
Семантическая память
memory
Зависит от контекстаУправление постоянными записями памяти, сохраняющимися между сессиями
| Параметр | Тип | Описание |
|---|---|---|
action | string | действие (обязательно: list|read|add|update|delete|archive|restore) |
target | string? | memory or user (default: memory) |
content | string? | Содержимое для записи |
old_text | string? | Existing text for replace or remove |
operations | array? | Batch of add, replace, or remove operations when action is batch |
↗ Записи памяти или результат операции
memory_absorb
ПоследовательныйСохранение фактов в долгосрочную семантическую память с дедупликацией
| Параметр | Тип | Описание |
|---|---|---|
facts | array | массив объектов фактов (обязательно) |
source | string? | идентификатор источника |
↗ Отчёт о поглощении (создано, дубликаты, замещено)
memory_search
parallel-безопасныйПоиск по долгосрочной семантической памяти (гибрид векторного + BM25)
| Параметр | Тип | Описание |
|---|---|---|
query | string | Поисковый запрос |
limit | u32? | макс. результатов (по умолчанию 5) |
min_score | f32? | минимальный порог score (по умолчанию 0.25) |
↗ Ранжированные воспоминания с гибридными score
memory_digest
parallel-безопасныйЗагрузка детерминированного контекстного дайджеста по теме из долгосрочной памяти
| Параметр | Тип | Описание |
|---|---|---|
topic | string | тема (обязательно) |
↗ Отформатированный текст дайджеста для инъекции в системный промпт
memory_boost
ПоследовательныйПовысить или понизить важность хранимого воспоминания
| Параметр | Тип | Описание |
|---|---|---|
id | string | id записи памяти |
delta | f32? | дельта важности (по умолчанию 0.1, диапазон -1.0 до 1.0) |
↗ Обновлённое воспоминание с новой важностью
memory_link
ПоследовательныйДобавление типизированного ребра между двумя хранимыми воспоминаниями
| Параметр | Тип | Описание |
|---|---|---|
from | string | id исходного воспоминания (обязательно) |
to | string | id целевого воспоминания (обязательно) |
edge_type | string? | тип ребра: related_to, supersedes, contradicts, implements, extends, references |
reason | string? | причина связи |
↗ Подтверждение созданного ребра
memory_graph
Зависит от контекстаГраф знаний сущностей для персон, компаний, локаций и типизированных связей
| Параметр | Тип | Описание |
|---|---|---|
action | string | действие (обязательно: add|query|list) |
entities | array? | сущности для добавления (массив) |
relations | array? | связи между сущностями (массив) |
name | string? | имя сущности (для query) |
entity_type | string? | тип сущности (person, company, location) |
depth | u32? | макс. переходов для обхода графа (по умолчанию 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-dependent | memory (file-backed), memory_graph, scratchpad | Зависит от контекста |
Детекция перекрытия путей: два файловых инструмента, нацеленных на один путь, автоматически сериализуются.
Поисковые бэкенды
Поддерживаются семь поисковых бэкендов. Каждый настраивается через подсекции [search.*] в config.toml.
| Бэкенд | Формат API | Нужен ключ |
|---|---|---|
linkup | Поисковый API Linkup | Да |
exa | API нейропоиска Exa | Да |
tavily | Поисковый API Tavily | Да |
serper | API Serper (Google) | Да |
brave | Поисковый API Brave | Да |
parallel | Поисковый API Parallel.ai | Да |
duckduckgo | DuckDuckGo Instant Answer | Нет |
Режимы Hybrid и Smart
hybrid
Перебирает настроенные бэкенды по порядку (linkup → exa → tavily → serper → brave → parallel.ai → duckduckgo). Возвращает результаты первого ответившего бэкенда.
smart
Опрашивает все настроенные бэкенды параллельно. Дедуплицирует результаты по URL, затем ранжирует с помощью reciprocal rank fusion для оптимальной релевантности.