voxagent
A lightweight, model-agnostic LLM provider abstraction with streaming and tool support.
Features
- Multi-Provider: Unified interface for OpenAI, Anthropic, Google, Groq, Ollama
- Streaming: Typed
StreamChunkunion (TextDelta, ToolUse, MessageEnd, Error) - Tool System:
@tooldecorator for easy function-to-tool conversion - MCP Integration: First-class Model Context Protocol support
- Type Safe: Full type hints with
py.typedmarker - Minimal Dependencies: Core requires only
pydantic,httpx,anyio
Installation
# Core only (no provider SDKs)
pip install voxagent
# With specific providers
pip install voxagent[openai]
pip install voxagent[anthropic]
pip install voxagent[google]
pip install voxagent[ollama]
# All providers
pip install voxagent[all]
Quick Start
import asyncio
from voxagent import Agent
async def main():
agent = Agent(model="openai:gpt-4o")
result = await agent.run("Hello, world!")
print(result.output)
asyncio.run(main())
Streaming
from voxagent import Agent
from voxagent.providers import TextDeltaChunk
agent = Agent(model="anthropic:claude-3-5-sonnet")
async for chunk in agent.stream("Tell me a story"):
if isinstance(chunk, TextDeltaChunk):
print(chunk.delta, end="", flush=True)
Tools
from voxagent import Agent
from voxagent.tools import tool
@tool()
def get_weather(city: str) -> str:
"""Get the current weather for a city."""
return f"Sunny, 72°F in {city}"
agent = Agent(
model="openai:gpt-4o",
tools=[get_weather],
)
result = await agent.run("What's the weather in Paris?")
Supported Providers
| Provider | Model Format | Example |
|---|---|---|
| OpenAI | openai:model |
openai:gpt-4o |
| Anthropic | anthropic:model |
anthropic:claude-3-5-sonnet |
google:model |
google:gemini-1.5-pro |
|
| Groq | groq:model |
groq:llama-3.1-70b |
| Ollama | ollama:model |
ollama:llama3.2 |
API Reference
Agent
from voxagent import Agent
agent = Agent(
model="provider:model", # Required: provider:model string
system_prompt="...", # Optional: system instructions
tools=[...], # Optional: list of tools
temperature=0.7, # Optional: sampling temperature
)
# Single response
result = await agent.run("prompt")
# Streaming
async for chunk in agent.stream("prompt"):
...
StreamChunk Types
from voxagent.providers import (
TextDeltaChunk, # Text content
ToolUseChunk, # Tool invocation
MessageEndChunk, # End of message
ErrorChunk, # Error occurred
)
Contributing
See CONTRIBUTING.md for development setup and guidelines.
License
MIT License - see LICENSE for details.
Metadata
Release files for voxagent 0.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| voxagent-0.2.5.tar.gz | 70.1 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| voxagent-0.2.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 170.5 kB
Release files / voxagent-0.2.5.tar.gz
| Download URL | voxagent-0.2.5.tar.gz |
|---|---|
| Size | 70.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
58934a9c4807a327db6665f372bb72ab8892e2cb2ef9ddde96c72560904aca12
|
|
BLAKE2b-256 checksum How to use checksums |
2a1ecc33a8605dea54750129d6a4d1b10c5a3d3aca7aa85274b0e583eafc0ed8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 4, 2026.
Transparency logRelease files / voxagent-0.2.5-py3-none-any.whl
| Download URL | voxagent-0.2.5-py3-none-any.whl |
|---|---|
| Size | 100.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c8b20cd108a8d1f55ae0f156575c658977110533a62ea2bd7da1ebf1bf672c4a
|
|
BLAKE2b-256 checksum How to use checksums |
44bf58ace54813ea28df62abb58d45307b413e4092330d05e1e5aa5e4a5c3906
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 4, 2026.
Transparency logSecurity for voxagent 0.2.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for voxagent-0.2.5.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.