Skip to content

Provider Overview

Human uses a vtable-driven provider interface. All AI model backends implement hu_provider_t and are selected by name at runtime.

Each provider implements:

Method Description
chat Non-streaming chat completion
chat_with_tools Chat with tool calls (optional)
stream_chat Streaming completion (optional)
supports_native_tools Whether provider uses OpenAI-style tool schema
get_name Provider identifier
deinit Cleanup

Optional methods: warmup, supports_streaming, supports_vision.

These have dedicated implementations with format-specific handling:

Name Type Default base URL
openai Native https://api.openai.com/v1
anthropic Native https://api.anthropic.com
gemini Native https://generativelanguage.googleapis.com
google Native (same as gemini)
ollama Native http://localhost:11434
openrouter Native https://openrouter.ai/api/v1
compatible Native (configurable)
claude_cli Native (Claude CLI)
codex_cli Native (Codex CLI)
openai-codex Native (OpenAI Codex)

These use the compatible backend with preset base URLs:

Name Default base URL
groq https://api.groq.com/openai
mistral https://api.mistral.ai/v1
deepseek https://api.deepseek.com
xai, grok https://api.x.ai
cerebras https://api.cerebras.ai/v1
perplexity https://api.perplexity.ai
cohere https://api.cohere.com/compatibility
together, together-ai https://api.together.xyz
fireworks, fireworks-ai https://api.fireworks.ai/inference/v1
huggingface https://router.huggingface.co/v1
siliconflow https://api.siliconflow.cn/v1
venice https://api.venice.ai
vercel, vercel-ai https://ai-gateway.vercel.sh/v1
chutes https://chutes.ai/api/v1
synthetic https://api.synthetic.new/openai/v1
opencode, opencode-zen https://opencode.ai/zen/v1
astrai https://as-trai.com/v1
poe https://api.poe.com/v1
moonshot, kimi https://api.moonshot.cn/v1
glm, zhipu, zai, z.ai https://api.z.ai/api/paas/v4
minimax https://api.minimax.io/v1
qwen, dashscope https://dashscope.aliyuncs.com/compatible-mode/v1
qianfan, baidu https://aip.baidubce.com
doubao, volcengine, ark https://ark.cn-beijing.volces.com/api/v3
byteplus https://ark.ap-southeast.bytepluses.com/api/v3
bedrock, aws-bedrock https://bedrock-runtime.us-east-1.amazonaws.com
cloudflare, cloudflare-ai https://gateway.ai.cloudflare.com/v1
copilot, github-copilot https://api.githubcopilot.com
nvidia, nvidia-nim https://integrate.api.nvidia.com/v1
ovhcloud, ovh https://oai.endpoints.kepler.ai.cloud.ovh.net/v1
Name Default base URL
lmstudio, lm-studio http://localhost:1234/v1
vllm http://localhost:8000/v1
llamacpp, llama.cpp http://localhost:8080/v1
sglang http://localhost:30000/v1
osaurus http://localhost:1337/v1
litellm http://localhost:4000

No API key is required for local providers.

Set default_provider in config or pass --provider on the CLI:

Terminal window
./human agent --provider ollama --model llama3

For compatible providers, add a providers entry with your API key:

{
"providers": [{ "name": "groq", "api_key": "gsk_..." }],
"default_provider": "groq"
}