Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions dynamiq/nodes/tools/exa_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -231,8 +231,7 @@ class ExaInputSchema(BaseModel):
include_full_content: bool | None = Field(
default=None,
description=(
"Shortcut flag: True requests default text/highlight/summary payloads for each result "
"(equivalent to ContentsRequest with simple booleans)."
"Shortcut flag: True requests default text/highlight/summary payloads for each result"
),
)
use_autoprompt: bool | None = Field(
Expand Down Expand Up @@ -297,6 +296,7 @@ class ExaInputSchema(BaseModel):
"Return all page contents concatenated into a single context string. True uses defaults; provide "
"ContextOptions to set a maxCharacters budget (Exa recommends >=10000)."
),
json_schema_extra={"is_accessible_to_agent": False},
)
moderation: bool | None = Field(
default=None,
Expand All @@ -308,6 +308,7 @@ class ExaInputSchema(BaseModel):
"Full customization of Exa's contents payload (text/highlights/summary/livecrawl/subpages/extras/context). "
"Use this when include_full_content is insufficient."
),
json_schema_extra={"is_accessible_to_agent": False},
)


Expand Down
16 changes: 5 additions & 11 deletions dynamiq/nodes/tools/firecrawl_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,30 +12,22 @@
from dynamiq.utils.logger import logger

DESCRIPTION_FIRECRAWL_SEARCH = """Search the web with Firecrawl across web, news, and image verticals.

What it does:
- Returns SERP results with geo/time filters and category biasing (github/research/pdf)
- Lets you control result count, recency, geo bias, timeout, and URL validation in one call

Parameters (FirecrawlSearchInput):
- `query` (required): search string.
- `limit` (1-100): max results to return (default 5).
- `sources` (list of objects): choose verticals with optional per-source settings:
- Web: {"type":"web","tbs":"qdr:d","location":"San Francisco,California,United States"}
- News: {"type":"news"}
- Images: {"type":"images"}
- `categories` (list): bias results toward content types, e.g., ["github","research","pdf"].
- `tbs`: time filter (qdr:h/d/w/m/y or custom ranges like cdr:1,cd_min:MM/DD/YYYY,cd_max:MM/DD/YYYY).
- `location`: city/state/country string for geo bias.
- `country`: ISO country code for geo targeting (e.g., "US").
- `timeout`: request timeout in milliseconds (default 60000).
- `ignoreInvalidURLs`: true to drop invalid links from the response.

Examples:
{"query": "firecrawl docs", "limit": 5}
{"query": "openai funding", "sources": [{"type": "news"}], "limit": 3}
{"query": "sunset wallpaper imagesize:1920x1080", "sources": [{"type": "images"}], "limit": 5}
{"query": "langchain github", "categories": ["github"], "tbs": "qdr:w"}"""
{"query": "openai funding", "limit": 3}
{"query": "dynamiq github", "categories": ["github"], "tbs": "qdr:w"}"""


class SourceWeb(BaseModel):
Expand Down Expand Up @@ -70,7 +62,9 @@ class FirecrawlSearchInput(BaseModel):
query: str = Field(..., description="Search query to execute on Firecrawl.")
limit: int | None = Field(default=None, ge=1, le=100, description="Maximum number of search results to return.")
sources: list[SourceType] | None = Field(
default=None, description="Result types to fetch: web/news/images with optional per-source options."
default=None,
description="Result types to fetch: web/news/images with optional per-source options.",
json_schema_extra={"is_accessible_to_agent": False},
)
categories: list[CategoryType] | None = Field(
default=None,
Expand Down
2 changes: 2 additions & 0 deletions dynamiq/nodes/tools/tavily.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ class TavilyInputSchema(BaseModel):
include_favicon: bool | None = Field(
default=None,
description="Include the favicon URL for each result.",
json_schema_extra={"is_accessible_to_agent": False},
)
include_answer: bool | Literal["basic", "advanced"] | None = Field(
default=None,
Expand All @@ -122,6 +123,7 @@ class TavilyInputSchema(BaseModel):
use_cache: bool | None = Field(
default=None,
description="Use cached Tavily results when available.",
json_schema_extra={"is_accessible_to_agent": False},
)


Expand Down
Loading