This commit is contained in:
oogway 2026-01-30 11:21:25 -05:00 committed by GitHub
commit a188d9762a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 5 deletions

View File

@ -5,11 +5,12 @@ import { join } from "node:path";
import { tmpdir } from "node:os";
describe("Ollama provider", () => {
it("should not include ollama when no API key is configured", async () => {
it("should not include ollama in test environment (no local discovery)", async () => {
const agentDir = mkdtempSync(join(tmpdir(), "openclaw-test-"));
const providers = await resolveImplicitProviders({ agentDir });
// Ollama requires explicit configuration via OLLAMA_API_KEY env var or profile
// In test environments, Ollama discovery is skipped and no API key is configured,
// so the provider should not be included
expect(providers?.ollama).toBeUndefined();
});
});

View File

@ -446,12 +446,18 @@ export async function resolveImplicitProviders(params: {
providers.xiaomi = { ...buildXiaomiProvider(), apiKey: xiaomiKey };
}
// Ollama provider - only add if explicitly configured
// Ollama provider - auto-discover local models, no API key needed
const ollamaKey =
resolveEnvApiKeyVarName("ollama") ??
resolveApiKeyFromProfiles({ provider: "ollama", store: authStore });
if (ollamaKey) {
providers.ollama = { ...(await buildOllamaProvider()), apiKey: ollamaKey };
const ollamaProvider = await buildOllamaProvider();
// Add provider if models are discovered OR if explicitly configured with API key
if (ollamaProvider.models.length > 0 || ollamaKey) {
providers.ollama = {
...ollamaProvider,
// Use configured key if available, otherwise use placeholder for local auth
apiKey: ollamaKey ?? "local",
};
}
return providers;