Skip to main content

Anthropic tools

The anthropic-tools library simplifies the usage of Anthropics’s tool use feature. It abstracts away the complexity of parsing function signatures and docstrings by providing developers with a clean and intuitive interface. It's a near-clone of my openai-functions library that does the same with OpenAI.

License: MIT PyPI version Documentation Status

Installation

You can install anthropic-tools from PyPI using pip:

pip install anthropic-tools

Usage

  1. Import the necessary modules and provide your API key:
import enum
import anthropic
from anthropic_tools import Conversation

client = anthropic.Anthropic(
    api_key="<YOUR_API_KEY>",
)
  1. Create a Conversation instance:
conversation = Conversation(client)
  1. Define your tools using the @conversation.add_tool decorator:
class Unit(enum.Enum):
    FAHRENHEIT = "fahrenheit"
    CELSIUS = "celsius"

@conversation.add_tool()
def get_current_weather(location: str, unit: Unit = Unit.FAHRENHEIT) -> dict:
    """Get the current weather in a given location.

    Args:
        location (str): The city and state, e.g., San Francisco, CA
        unit (Unit): The unit to use, e.g., fahrenheit or celsius
    """
    return {
        "location": location,
        "temperature": "72",
        "unit": unit.value,
        "forecast": ["sunny", "windy"],
    }
  1. Ask the AI a question:
response = conversation.ask("What's the weather in San Francisco?")
# Should return three messages, the last one's content being something like:
# The current weather in San Francisco is 72 degrees Fahrenheit and it is sunny and windy.

You can read more about how to use Conversation here.

More barebones use - just schema generation and result parsing:

from anthropic_tools import ToolWrapper

wrapper = ToolWrapper(get_current_weather)
schema = wrapper.schema
result = wrapper({"location": "San Francisco, CA"})

Or you could use skills.

How it Works

anthropic-tools takes care of the following tasks:

  • Parsing the function signatures (with type annotations) and docstrings.
  • Sending the conversation and tool descriptions to Anthropic Claude.
  • Deciding whether to call a tool based on the model's response.
  • Calling the appropriate function with the provided arguments.
  • Updating the conversation with the tool response.
  • Repeating the process until the model generates a user-facing message.

This abstraction allows developers to focus on defining their functions and adding user messages without worrying about the details of tool use.

Note

Please note that anthropic-tools is an unofficial project not maintained by Anthropic. Use it at your discretion.

Metadata

Release files for anthropic-tools 1.0.7

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

Source distribution (sdist)

Source distribution for anthropic-tools 1.0.7
File Size Uploaded
anthropic_tools-1.0.7.tar.gz 16.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for anthropic-tools 1.0.7
File Interpreter ABI Platform
anthropic_tools-1.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 39.9 kB

Release files / anthropic_tools-1.0.7.tar.gz

Download URL anthropic_tools-1.0.7.tar.gz
Size 16.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c594f7f405ee208f4a32ffaede098fb00efbddc8d714dc601dceddfd7ca51c4b
BLAKE2b-256 checksum
How to use checksums
8c66a10d6859ecd7d4ee2caebf61b930dd7016d887002df630ce480843b88187
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.2 CPython/3.11.8 Linux/6.8.2-zen2-1-zen

Release files / anthropic_tools-1.0.7-py3-none-any.whl

Download URL anthropic_tools-1.0.7-py3-none-any.whl
Size 23.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5144d9a93c583870c2b6d7744b4b79e105da5cd1e5b9975ee1e8d56f378134b5
BLAKE2b-256 checksum
How to use checksums
fc511101eb20e442b54e015c1f324f897b20db7bdc7c428030caadc7da38e866
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.2 CPython/3.11.8 Linux/6.8.2-zen2-1-zen

Release history Release notifications | RSS feed

This release

1.0.7 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

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