mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-08 05:44:57 +08:00
@openclaw/ai example: minimal chat completion
Smallest possible consumer of the published @openclaw/ai package: creates an
isolated runtime, registers the built-in API providers, and streams one
completion. No OpenClaw application code is involved — inside this repo the
workspace link resolves to the package's built dist, the same artifact npm
consumers install, so pnpm build must have run first.
ANTHROPIC_API_KEY=sk-ant-... node index.mjs "Say hello"
OPENAI_API_KEY=sk-... node index.mjs --provider openai "Say hello"
# keyless, against a local Ollama server (OLLAMA_MODEL overrides the model id)
node index.mjs --provider ollama "Say hello"
Text deltas stream to stdout; stop reason and token usage go to stderr.
Notes for library consumers:
createLlmRuntime()gives you an isolated registry; nothing is registered globally by importing the package.registerBuiltInApiProviders(runtime.registry)opts into the eight built-in transports (Anthropic, OpenAI Completions/Responses, Azure OpenAI, ChatGPT Responses, Google, Vertex, Mistral). Provider SDK modules load lazily on first use.- Host policy (custom fetch, secret redaction, strict-tool defaults, logging)
is injectable via
configureAiTransportHost; the defaults are inert. - Full TypeScript types ship with the package; this example uses plain ESM so
it runs with bare
node.