with one click
autobot-provider
Add new LLM providers to Autobot with proper integration
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Add new LLM providers to Autobot with proper integration
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Create proper releases following EVALinux standards with signed tags and changelogs
Testing guidelines for Autobot with AAA pattern and Crystal spec best practices
Create new tools for Autobot agent with proper schema and safety
Scheduling rules for reminders and recurring tasks.
| name | autobot-provider |
| description | Add new LLM providers to Autobot with proper integration |
| tags | ["provider","llm","integration"] |
| metadata | {"scope":"feature-development"} |
Create provider implementation:
src/autobot/providers/<name>_provider.crHttpProvider or implement Provider interfaceRegister provider:
ProviderSpec to the PROVIDERS list in src/autobot/providers/registry.cr.Add configuration schema:
src/autobot/config/schema.cr with provider config if needed.Create tests:
spec/autobot/providers/<name>_provider_spec.crregistry_spec.cr.Add documentation:
docs/<name>.md - Provider setup guide.docs/providers.md - Add to provider comparison.# src/autobot/providers/<name>_provider.cr
module Autobot
module Providers
class <Name>Provider < HttpProvider
def initialize(
api_key : String,
api_base : String? = nil,
@model : String = "default-model",
@extra_headers = {} of String => String,
provider_name : String? = nil,
)
super(api_key, api_base)
@gateway = Providers.find_gateway(provider_name, api_key, api_base)
end
def chat(
messages : Array(Hash(String, JSON::Any)),
tools : Array(Hash(String, JSON::Any))? = nil,
model : String? = nil,
max_tokens : Int32 = DEFAULT_MAX_TOKENS,
temperature : Float64 = DEFAULT_TEMPERATURE,
) : Response
# Implement API-specific logic here
# Or call super for OpenAI-compatible APIs
super
end
def default_model : String
@model
end
end
end
end
For providers with non-standard APIs (like AWS Bedrock), inherit directly from Provider:
class BedrockProvider < Provider
# Implement abstract methods directly
# See src/autobot/providers/bedrock_provider.cr for full example
end
Add to PROVIDERS in src/autobot/providers/registry.cr:
ProviderSpec.new(
name: "<name>",
keywords: ["<keyword1>", "<keyword2>"],
display_name: "<Display Name>",
api_url: "https://api.<provider>.com/v1/chat/completions",
)
Each provider doc must include:
Use this skill when:
Related Skills: autobot-test