Skip to main content

HasteKit SDK

A Golang SDK for developers who want fine-grained control over LLM interactions and agent orchestration. The HasteKit SDK abstracts away provider differences, letting you switch between OpenAI, Anthropic, Gemini and more with a single line change. Build agents, connect MCP tools, and get structured outputs—all through a unified API.

Core Capabilities

Multi-Provider Support

Access to multiple providers through a unified API. Seamlessly switch between OpenAI, Anthropic, Gemini, xAI, Bedrock, and more.

Agent SDK

Build sophisticated AI agents with tools, MCP servers, conversation history, summarization, sub-agents, and skills.

Skills

Give agents folders of instructions they read only when a task calls for them, instead of paying for them every turn.

Hooks

Intercept tool calls and model calls in one place for auth, budgets, quotas, and audit.

Human-in-the-loop

Integrate human feedback into agent workflows for review, approval, and form-filling.

Durable Execution

Create durable agents that can pause, resume, and recover from failures. Powered by Temporal and Restate.

Example

Use the SDK as a lightweight wrapper to call any LLM provider. Simply change the Provider and Model to switch between providers—your application logic stays the same:

Get Started with the SDK →

Install the SDK and make your first LLM call in under 5 minutes.

Supported Providers

¹ Non-streaming only — xAI has no NewStreamingSpeech. Text is the Responses API (NewResponses), which is what agents use. OpenAI additionally implements the older Chat Completions API (NewChatCompletion / NewStreamingChatCompletion); no other provider does. ProviderOllama and ProviderOpenRouter are not in the table because their capabilities aren’t the SDK’s to state: both are served by the OpenAI-compatible client, so every method is wired up and each call is passed straight through. What actually answers depends on the endpoint and the model behind it. OpenRouter defaults to https://openrouter.ai/api/v1; Ollama needs an explicit BaseURL on its provider config.
A ❌ is not a graceful “unsupported” error. Unimplemented methods fall through to the embedded base provider, where the text and embedding methods panic and the media methods return (nil, nil) — so a call for a capability a provider doesn’t have will either crash or hand back a silent nil. Check this table before reaching for a non-text method on a non-OpenAI provider.