bx-ai-models — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited bx-ai-models (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
aiModel() BIF// Signature
aiModel( provider="", params={}, apiKey="" )Returns a reusable model object used in pipelines, agents, and direct calls.
// Basic — uses default provider from module config
model = aiModel()
// Specific provider
model = aiModel( provider: "openai" )
model = aiModel( provider: "claude" )
model = aiModel( provider: "gemini" )
model = aiModel( provider: "ollama" )
// With default parameters (applied to every call on this model)
model = aiModel(
provider: "openai",
params : {
model : "gpt-4o",
temperature: 0.7,
max_tokens : 2000
}
)| Provider | Key Name | Notes |
|---|---|---|
| OpenAI | openai | GPT-4o, GPT-4-turbo, o1, etc. |
| Anthropic Claude | claude | Claude 3.5 Sonnet, Haiku, Opus |
| Google Gemini | gemini | Gemini 1.5 Pro, Flash |
| Grok (xAI) | grok | Grok-2 |
| Groq | groq | Ultra-fast inference; Llama, Mixtral |
| DeepSeek | deepseek | DeepSeek-R1, DeepSeek-V3 |
| Ollama | ollama | Local models — no API key needed |
| Mistral | mistral | Mistral Large, Pixtral |
| Perplexity | perplexity | Online search-augmented |
Configure providers once in ModuleConfig.bx or boxlang.json rather than repeating API keys in every call:
// ModuleConfig.bx
moduleSettings = {
"bx-ai": {
defaultProvider: "openai",
providers: {
openai: {
apiKey: server.system.environment.OPENAI_API_KEY,
model : "gpt-4o"
},
claude: {
apiKey: server.system.environment.ANTHROPIC_API_KEY,
model : "claude-3-5-sonnet-20241022"
}
}
}
}With pre-configured providers you can omit apiKey everywhere:
// No apiKey needed — resolved from module config
result = aiChat( "Hello" )
model = aiModel( provider: "claude" )
agent = aiAgent( name: "Bot", model: aiModel( provider: "openai" ) )aiService() — Service-Level Access// Get the global AI service
service = aiService()
// List configured providers
providers = service.getProviders()
// Get a specific provider instance
openaiProvider = service.getProvider( "openai" )
// Set the default provider at runtime
service.setDefaultProvider( "claude" )// Override model on a per-request basis via params
result = aiChat(
"Complex reasoning task",
{ model: "o1-preview", temperature: 1 },
{ provider: "openai" }
)
// Use a cheaper model for simple tasks
simple = aiChat(
"Is this email spam? Yes or No.",
{ model: "gpt-4o-mini", temperature: 0.0 },
{ provider: "openai" }
)aiModel( "gpt-4o" ) is WRONG — gpt-4o is a model name, not provideraiModel( provider: "openai", params: { model: "gpt-4o" } ) is correct~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.