Claudine AI agent
Project description
🤖 Claudine
A Python wrapper for the Anthropic Claude API that simplifies tool use, token tracking, and agent functionality.
📦 Installation
# Using uv
uv pip install -e .
# With development dependencies
uv pip install -e ".[dev]"
✨ Features
- 🔌 Easy integration with Claude 3 models
- 🛠️ Tool registration and management
- 🔢 Token usage tracking and reporting
- 💰 Cost information tracking
- 📞 Support for tool callbacks
- 💬 Simplified message handling
🚀 Quick Start
from claudine import Agent
# Initialize the agent
agent = Agent()
# Process a prompt
response = agent.process_prompt("Write a short poem about programming.")
print(response)
# Get token usage information
token_info = agent.get_token_usage()
print(f"Total tokens used: {token_info.total_usage.total_tokens}")
# Get cost information
cost_info = agent.get_cost()
print(f"Total cost: ${cost_info['total_cost'].total_cost:.6f} {cost_info['total_cost'].unit}")
🔧 Tool Usage
from claudine import Agent
def search_web(query: str) -> str:
"""Search the web for information."""
# Implementation here
return f"Results for: {query}"
# Initialize agent with tools
agent = Agent(
tools=[search_web]
)
# Process a prompt that might use tools
response = agent.process_prompt("What's the weather in London?")
print(response)
📝 Text Editor Tool
Claudine supports the text editor tool for Claude, allowing it to view and edit text files:
def handle_editor_tool(command, **kwargs):
# Implement the text editor tool
# ...
# Initialize the agent with the text editor tool
agent = Agent(text_editor_tool=handle_editor_tool)
The text editor tool supports the following commands:
- 👁️
view: View the contents of a file - 🔄
str_replace: Replace text in a file - ✨
create: Create a new file - ➕
insert: Insert text at a specific position - ↩️
undo_edit: Undo the last edit
For more information, see the Anthropic documentation.
🔢 Token Tracking
Claudine provides detailed token usage information:
token_info = agent.get_token_usage()
# Text usage
print(f"Text input tokens: {token_info.text_usage.input_tokens}")
print(f"Text output tokens: {token_info.text_usage.output_tokens}")
# Tool usage
print(f"Tool input tokens: {token_info.tools_usage.input_tokens}")
print(f"Tool output tokens: {token_info.tools_usage.output_tokens}")
# Total usage
print(f"Total tokens: {token_info.total_usage.total_tokens}")
🐛 Debugging
Claudine provides a debug mode to help you understand what's happening behind the scenes:
# Initialize agent with debug mode
agent = Agent(debug_mode=True)
# Process a prompt
response = agent.process_prompt("Hello, Claude!")
When debug mode is enabled, Claudine will print detailed information about the API requests being sent to Claude, including:
- 💬 Message content
- 🛠️ Tool definitions
- ⚙️ Model parameters
This is particularly useful when debugging tool use and text editor interactions.
💰 Cost Tracking
Claudine also provides detailed cost information:
cost_info = agent.get_cost()
# Text costs
print(f"Text input cost: ${cost_info['text_cost'].input_cost:.6f} {cost_info['text_cost'].unit}")
print(f"Text output cost: ${cost_info['text_cost'].output_cost:.6f} {cost_info['text_cost'].unit}")
print(f"Text total cost: ${cost_info['text_cost'].total_cost:.6f} {cost_info['text_cost'].unit}")
# Tool costs
print(f"Tool input cost: ${cost_info['tools_cost'].input_cost:.6f} {cost_info['tools_cost'].unit}")
print(f"Tool output cost: ${cost_info['tools_cost'].output_cost:.6f} {cost_info['tools_cost'].unit}")
print(f"Tool total cost: ${cost_info['tools_cost'].total_cost:.6f} {cost_info['tools_cost'].unit}")
# Total cost
print(f"Total cost: ${cost_info['total_cost'].total_cost:.6f} {cost_info['total_cost'].unit}")
# Cost by tool
for tool_name, cost in cost_info['by_tool'].items():
print(f"Tool: {tool_name}")
print(f" Input cost: ${cost.input_cost:.6f} {cost.unit}")
print(f" Output cost: ${cost.output_cost:.6f} {cost.unit}")
print(f" Total cost: ${cost.total_cost:.6f} {cost.unit}")
📄 License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claudine-0.1.0.tar.gz.
File metadata
- Download URL: claudine-0.1.0.tar.gz
- Upload date:
- Size: 56.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b37604e357918786cb493c9ec83cb77878e4c517de47352cd491d14d49e3f570
|
|
| MD5 |
f03fb7627174154a51dbfbd738a8e50a
|
|
| BLAKE2b-256 |
3757b35151f81af978767b200184d20519ca1579d3b85e0d4eba735f476090f5
|
File details
Details for the file claudine-0.1.0-py3-none-any.whl.
File metadata
- Download URL: claudine-0.1.0-py3-none-any.whl
- Upload date:
- Size: 39.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c340f6b85765d97e00baba56ad90c28c6c78ce4894cd43ab44cd3e6fc71bfa48
|
|
| MD5 |
d10e27cc129047c74fa760a9066ac13b
|
|
| BLAKE2b-256 |
30e4427d6d031eaf2630065196784f246c34f681bfcb2d91423ec66798a7da40
|