Tools

Tools Reference

49 built-in tools available to agents. Each implements the Tool trait and auto-registers in the ToolRegistry.

Overview

Parallel Research 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

web_search

Parallel-safe

Search the internet via the configured backend (Linkup/Exa/Tavily/Serper/Brave/Parallel/DuckDuckGo).

ParameterTypeDescription
querystringSearch query
limitu32Max results (default 10)

Returns: List of results (title, URL, snippet).

web_fetch

Parallel-safe

Download a page and convert HTML to readable text.

ParameterTypeDescription
urlstringPage URL
extract_textboolExtract text only (default true)

Returns: Page text (truncated to 50K chars).

Files

file_read

Parallel-safe

Read a file with optional partial reading support.

ParameterTypeDescription
pathstringFile path
offsetu32?Start line
limitu32?Number of lines

Note: Tracks read files for read-before-write validation.

file_write

Sequential

Write a file (creates directories automatically).

ParameterTypeDescription
pathstringFile path
contentstringContent to write

Note: Per-path locking, updates file history.

file_edit

Sequential

Find/replace edit (surgical replacement).

ParameterTypeDescription
pathstringFile path
old_stringstringWhat to replace
new_stringstringReplacement text

Validation: read-before-write, staleness check, size guard.

glob

Parallel-safe

Search files by glob pattern.

ParameterTypeDescription
patternstringGlob pattern (e.g. **/*.rs)

grep

Parallel-safe

Search file contents with regex. Uses ripgrep when available.

ParameterTypeDescription
patternstringRegex pattern
pathstring?Search directory
file_patternstring?File filter

Shell

shell

Sequential

Execute a bash command.

ParameterTypeDescription
commandstringCommand to execute
timeoutu64Timeout in seconds (default 120)

Protection: Blocks destructive commands (rm -rf /, mkfs, fork bombs).

python_exec

Sequential

Execute Python code.

ParameterTypeDescription
codestringPython code
timeoutu64?Timeout

node_exec

Sequential

Execute Node.js code.

ParameterTypeDescription
codestringJavaScript code
timeoutu64?Timeout

Browser (CDP)

Requires Chrome running with --remote-debugging-port=9222. CDP availability is detected automatically.

browser_navigate

Sequential

Open a URL in the browser.

ParameterTypeDescription
urlstringURL to open

browser_screenshot

Sequential

Take a screenshot of the current page.

Returns: base64 image in metadata.base64.

browser_click

Sequential

Click an element by CSS selector.

ParameterTypeDescription
selectorstringCSS selector

browser_type

Sequential

Type text into an element.

ParameterTypeDescription
selectorstringCSS selector
textstringText to enter

browser_extract

Sequential

Extract text content from page (with JS rendering).

Returns: Page text (truncated to 50K).

Vision

analyze_image

Parallel-safe

Analyze an image via vision model (Qwen 3.8).

ParameterTypeDescription
imagestringFile path or image URL
promptstring?What to analyze

Config: PARALLEL_VISION_API_BASE, PARALLEL_VISION_API_KEY, PARALLEL_VISION_MODEL.

Git

git_status

Parallel-safe

Show working tree status.

git_diff

Parallel-safe

Show changes.

ParameterTypeDescription
stagedbool?Staged changes only
pathstring?Specific file

git_log

Parallel-safe

Commit history.

ParameterTypeDescription
limitu32?Max commits

git_add

Sequential

Add files to staging.

ParameterTypeDescription
pathsstring[]Files to add

git_commit

Sequential

Create a commit.

ParameterTypeDescription
messagestringCommit message

git_push

Sequential

Push to remote.

ParameterTypeDescription
remotestring?Remote (default: origin)
branchstring?Branch name

PDF

pdf_extract

Parallel-safe

Extract text from a PDF file.

ParameterTypeDescription
pathstringPDF file path

Returns: Text + page count. Supports ToUnicode CMaps, encryption (empty password).

OSINT / Lead Generation

extract_contacts

Parallel-safe

Extract contacts from text, HTML, or URL.

ParameterTypeDescription
textstring?Text to analyze
htmlstring?HTML to analyze
urlstring?URL to download and analyze

Returns: Emails, phones (E.164), social profiles, persons, companies — each with confidence and source.

find_leads

Parallel-safe

High-level lead search. Orchestrates business directories → corporate sites → social networks → contact extraction → deduplication.

ParameterTypeDescription
industrystring?Industry
locationstring?Location
company_sizestring?Company size
role_titlesstring[]?Roles (CEO, CTO...)
limitu32?Max leads

search_business_directory

Parallel-safe

Search business directories (2GIS, Google Maps, Yandex Maps, Yellow Pages).

ParameterTypeDescription
querystringWhat to search for
citystring?City

Returns: Name, category, address, phone, website, email, rating.

search_social

Parallel-safe

Search people/companies on social networks (Twitter, Telegram, LinkedIn).

ParameterTypeDescription
querystringSearch query
platformstring?Specific platform

parse_corporate_site

Parallel-safe

Parse corporate website: company info, team, contacts.

ParameterTypeDescription
urlstringWebsite URL

Returns: Company name, description, industry, size, contacts, team page URL, social profiles.

search_news

Parallel-safe

Search news/mentions (Serper News or Google News RSS).

ParameterTypeDescription
querystringWho/what to search
limitu32?Max articles (default 10)

Returns: Title, URL, source, date, snippet + extracted persons/companies.

Verification

verify_email

Parallel-safe

Verify email: syntax, MX records, disposable, role-based checks.

ParameterTypeDescription
emailstringEmail to verify

Returns: is_valid_syntax, domain_exists, mx_records, is_disposable, is_role_based, confidence.

verify_phone

Parallel-safe

Validate and normalize phone number (E.164).

ParameterTypeDescription
phonestringPhone number

Returns: Normalized (E.164), country_code, country_name, is_valid, is_mobile.

verify_social_profile

Parallel-safe

Check if a social media profile exists.

ParameterTypeDescription
urlstringProfile URL

Returns: exists, platform, username, name, followers.

Enrichment

enrich_company

Parallel-safe

Enrich company data.

ParameterTypeDescription
company_namestringCompany name
websitestring?Website

Returns: Industry, size, revenue, founded, headquarters, description, technologies.

enrich_person

Parallel-safe

Enrich person data.

ParameterTypeDescription
namestringPerson name
companystring?Company

Returns: Title, company, linkedin, twitter, email, phone, location, bio.

Meta

spawn_agent

Sequential

Launch a sub-agent for a sub-task.

ParameterTypeDescription
taskstringTask for the sub-agent
rolestring?Role (default: researcher)

Limit: Nesting depth (max_depth).

memory

Sequential

Manage agent memory (MEMORY.md / USER.md).

ParameterTypeDescription
actionstringadd | replace | remove | batch
targetstringmemory | user
contentstring?Content to write
old_textstring?For replace/remove
operationsarray?For batch operations

Parallelism Safety

Tools are classified for smart parallelism:

ClassToolsBehavior
Parallel-safeweb_search, web_fetch, file_read, glob, grep, pdf_extract, analyze_image, verify_*, enrich_*, search_*, extract_contacts, git_status, git_diff, git_logCan execute in parallel
Sequentialfile_write, file_edit, shell, python_exec, node_exec, browser_*, git_add, git_commit, git_push, spawn_agent, memoryExecute sequentially (exclusive access)

Path-overlap detection: Two file tools targeting the same path are automatically serialized.

Search Backends

Seven search backends are supported. Each is configured via [search.*] sub-sections in config.toml.

BackendAPI FormatKey Required
linkupLinkup Search APIYes
exaExa Neural Search APIYes
tavilyTavily Search APIYes
serperSerper (Google) APIYes
braveBrave Search APIYes
parallelParallel Search APIYes
duckduckgoDuckDuckGo Instant AnswerNo

Hybrid & Smart Modes

hybrid

Tries configured backends in order (linkup → exa → tavily → serper → brave → parallel → duckduckgo). Returns results from the first backend that responds.

smart

Queries all configured backends in parallel. Deduplicates results by URL, then ranks using reciprocal rank fusion for optimal relevance.