Skip to main content

haive-tools

PyPI version Python Versions License: MIT CI Docs PyPI Downloads

Tool implementations for Haive agents — search, calculators, APIs, code execution, and integrations.

A curated collection of LangChain-compatible tools, ready to drop into any Haive agent. Each tool is wrapped, tested, and exposed via a consistent interface. Use them with ReactAgent, MultiAgent, MemoryAgent, or any agent that takes tools.


Why haive-tools?

LangChain has hundreds of tools but they're scattered across packages, have inconsistent interfaces, and many require fiddly setup. haive-tools curates the most useful ones, fixes their quirks, and packages them as a coherent toolkit.

Tool categories

Category Tools What they do
🔍 Search Tavily, Google Search, DuckDuckGo, SerpAPI, Brave Search Web search with structured results
🧮 Calculators Python REPL, math expressions, Wolfram Alpha Calculation and symbolic math
🌐 Web Fetch URL, scrape HTML, parse JSON HTTP requests and web scraping
🐍 Code Python REPL (sandboxed), shell commands Code execution
📊 Data CSV/JSON parsers, structured extractors Data processing
🎮 Fun APIs Pokémon (PokéBase), Pokémon TCG API wrappers for testing
📖 Documents PDF reader, docx parser, web fetcher Document loading
🗄️ Databases SQL execution, schema inspection Database tools

Installation

pip install haive-tools

# For Tavily search:
pip install haive-tools[tavily]

# For all extras:
pip install haive-tools[all]

Quick Start

Web Search with Tavily

from haive.tools.search import tavily_search_tool
from haive.agents.react.agent import ReactAgent
from haive.core.engine.aug_llm import AugLLMConfig
import os

# Set TAVILY_API_KEY in env
os.environ["TAVILY_API_KEY"] = "tvly-..."

agent = ReactAgent(
    name="researcher",
    engine=AugLLMConfig(
        tools=[tavily_search_tool],
        system_message="Use the search tool to find information.",
    ),
    max_iterations=5,
)

result = agent.run("What are the latest advances in quantum computing in 2025?")

Calculator + Web Search Combo

from haive.tools.search import tavily_search_tool
from haive.tools.calculators import python_calculator
from haive.agents.react.agent import ReactAgent
from haive.core.engine.aug_llm import AugLLMConfig

agent = ReactAgent(
    name="research_assistant",
    engine=AugLLMConfig(
        tools=[tavily_search_tool, python_calculator],
        system_message="Use search for facts and calculator for math.",
    ),
)

result = agent.run("What is the population of Tokyo divided by the area of Japan?")
# Agent: searches for both values, then calculates ratio

Custom Tool Composition

from langchain_core.tools import tool
from haive.tools.search import tavily_search_tool
from haive.tools.web import fetch_url

@tool
def get_weather(city: str) -> str:
    """Get current weather for a city."""
    # ... your custom logic ...
    return f"Sunny, 72°F in {city}"

agent = ReactAgent(
    name="multi_tool",
    engine=AugLLMConfig(tools=[
        tavily_search_tool,
        fetch_url,
        get_weather,
    ]),
)

Tool Routing

All tools work with Haive's automatic tool routing system. You can mix:

  • LangChain BaseTool (from @tool decorator) → routed to langchain_tool
  • Pydantic models with __call__ → routed to pydantic_tool (stateful tools)
  • Plain callables → routed to function
from pydantic import BaseModel

class StatefulSearchTool(BaseModel):
    """Search tool with configurable settings."""
    api_key: str
    max_results: int = 5
    region: str = "us"

    def __call__(self, query: str) -> str:
        # Each instance has its own state
        return f"Searching {self.region}: {query}"

# Two instances with different config
us_search = StatefulSearchTool(api_key="...", region="us")
eu_search = StatefulSearchTool(api_key="...", region="eu")

agent = ReactAgent(engine=AugLLMConfig(tools=[us_search, eu_search]))

Tool Reference

Search

  • tavily_search_tool — Tavily web search (5 results, news + general)
  • google_search_tool — Google Custom Search API
  • duckduckgo_search_tool — Free DuckDuckGo search
  • brave_search_tool — Brave Search API
  • serpapi_search_tool — SerpAPI for Google/Bing/etc.

Calculators

  • python_calculator — Sandboxed Python REPL for math expressions
  • wolfram_alpha_tool — Symbolic math via Wolfram Alpha API

Web

  • fetch_url — HTTP GET with auto-decoding
  • scrape_url — Scrape HTML with BeautifulSoup
  • parse_json — Parse JSON responses

Code

  • python_repl — Sandboxed Python execution
  • shell_command — Execute shell commands (with safety checks)

Documents

  • read_pdf — Extract text from PDF files
  • read_docx — Parse Word documents
  • web_loader — Load and parse web pages

Documentation

📖 Full documentation: https://pr1m8.github.io/haive-tools/


Related Packages

Package Description
haive-core Foundation: engines, graphs
haive-agents Production agents
haive-mcp Dynamic MCP server tools (1,960+)

License

MIT © pr1m8

Metadata

Release files for haive-tools 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for haive-tools 1.0.1
File Size Uploaded
haive_tools-1.0.1.tar.gz 101.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for haive-tools 1.0.1
File Interpreter ABI Platform
haive_tools-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 264.1 kB

Release files / haive_tools-1.0.1.tar.gz

Download URL haive_tools-1.0.1.tar.gz
Size 101.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2bb7fb45a2177789df4d33a6a740b48d64f2891f00439221ec3a2ddbbfd27aa7
BLAKE2b-256 checksum
How to use checksums
0a7d41a876a4b4ad64c771cb114fb59830a735e2729d334d29ec8526e79263b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / haive_tools-1.0.1-py3-none-any.whl

Download URL haive_tools-1.0.1-py3-none-any.whl
Size 162.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
33631bc5e3066b862bcdfee89b535cdeacf7ca4a1ad58723289272b7123bee30
BLAKE2b-256 checksum
How to use checksums
bea23712fbc8258fcfc9c285fb4e9378b8966bd0a87b7ce20e65b8c7e46925c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page