Skip to content

feat(exa): add highlights, max_age_hours, instant search type, and new categories#452

Merged
mkmeral merged 3 commits intostrands-agents:mainfrom
theishangoswami:devin/1776288442-exa-highlights-maxagehours
Apr 21, 2026
Merged

feat(exa): add highlights, max_age_hours, instant search type, and new categories#452
mkmeral merged 3 commits intostrands-agents:mainfrom
theishangoswami:devin/1776288442-exa-highlights-maxagehours

Conversation

@theishangoswami
Copy link
Copy Markdown
Contributor

adds support for:

  • highlights param on both exa_search and exa_get_contents — token-efficient page excerpts (bool or dict with maxCharacters/query)
  • max_age_hours param — content freshness control (0=always livecrawl, -1=cache only, N=livecrawl if older than N hours). old livecrawl enum kept for backward compat
  • instant search type — lowest latency option alongside auto/fast/deep
  • research paper and people categories

also:

  • renders highlights in both format_search_response and format_contents_response
  • adds highlights to test fixtures and 2 new highlight rendering tests
  • all pre-commit hooks pass (format, lint, type-lint, tests)

Co-Authored-By: ishan <ishan@exa.ai>
@mvangara10
Copy link
Copy Markdown

@mkmeral could you please review the PR

@mkmeral
Copy link
Copy Markdown
Contributor

mkmeral commented Apr 16, 2026

/strands review

Copy link
Copy Markdown
Contributor

@agent-of-mkmeral agent-of-mkmeral left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assessment: ⚠️ Request Changes

Clean feature addition that extends the exa tool with useful Exa API capabilities. The code follows existing patterns well. Requesting changes for missing documentation PR section and a few issues noted inline.

Review Details
  • Documentation: No "Documentation PR" section in the PR description. Since this adds new public API parameters (highlights, max_age_hours, instant search type, new categories), either a docs PR link or a justification for why docs aren't needed is required.
  • Testing: Highlight rendering tests are good additions ✅. However, there are no tests verifying the new parameters (highlights, max_age_hours) are correctly passed through to the API payload in either exa_search or exa_get_contents. Payload construction tests would strengthen confidence.
  • Commit format: The second commit (add x-exa-integration header for usage tracking) doesn't follow conventional commit format. Should be prefixed with a type like feat(exa): or chore(exa):.
  • Tracking header: The x-exa-integration: aws-strands-agent header is a partner integration tracking header. This is fine and common practice, but worth calling out for visibility since it's a behavioral change in an open-source tool.

Good work overall — the code is clean and follows existing patterns.


🤖 AI agent response. Strands Agents. Feedback welcome!

Comment thread src/strands_tools/exa.py
Comment thread src/strands_tools/exa.py
Comment thread src/strands_tools/exa.py
…egration header

Co-Authored-By: ishan <ishan@exa.ai>
@mkmeral mkmeral changed the title add highlights, max_age_hours, instant search type, and new categories to exa tool feat(exa): add highlights, max_age_hours, instant search type, and new categories Apr 21, 2026
@mkmeral mkmeral merged commit 4ab97ef into strands-agents:main Apr 21, 2026
15 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants