Technical reference

بستهٔ @openclaw/ai

@openclaw/ai شکل کتابخانه‌ای قابل‌انتشارِ لایه اجرای مدل OpenClaw است: قراردادهای پیام/ابزار/جریان مستقل از ارائه‌دهنده، اعتبارسنجی، عیب‌یابی، جریان‌های رویداد، یک رجیستری زمان‌اجرای ایزوله، و آداپتورهای بارگذاری تنبل برای هشت خانواده API داخلی (Anthropic Messages، OpenAI Completions، OpenAI Responses، Azure OpenAI Responses، ChatGPT/Codex Responses، Google Generative AI، Google Vertex، Mistral Conversations).

این کتابخانه در هر انتشار، در کنار بسته ریشه openclaw و با همان نسخه تثبیت‌شده منتشر می‌شود و npm-shrinkwrap.json مختص خود را دارد تا درخت وابستگی‌های انتقالی آن هنگام نصب قفل شود. نصب openclaw، نسخه منطبق @openclaw/ai را به‌طور خودکار نصب می‌کند؛ مصرف‌کنندگان کتابخانه می‌توانند بدون هیچ کد برنامه OpenClaw، مستقیماً به آن وابسته باشند.

شروع سریع

js
  const runtime = createLlmRuntime();registerBuiltInApiProviders(runtime.registry); const stream = runtime.streamSimple(model, { messages }, { apiKey });for await (const event of stream) {  if (event.type === "text_delta") process.stdout.write(event.delta);}const result = await stream.result();

نسخه‌ای قابل‌اجرا در examples/ai-chat مخزن قرار دارد.

قرارداد طراحی

  • به‌طور پیش‌فرض محدود به نمونه است. واردکردن بسته هیچ‌چیز را به‌صورت سراسری ثبت نمی‌کند. createApiRegistry() / createLlmRuntime() نمونه‌های ایزوله برمی‌گردانند؛ registerBuiltInApiProviders(registry) یک رجیستری را برای استفاده از انتقال‌های داخلی فعال می‌کند. ماژول‌های SDK ارائه‌دهنده در نخستین استفاده به‌صورت تنبل بارگذاری می‌شوند.
  • سیاست میزبان تزریق می‌شود، نه اینکه همراه بسته باشد. محافظت از fetch درخواست (برای مثال، سیاست SSRF)، پنهان‌سازی اسرار در متن بازپخش نتیجه ابزار، پیش‌فرض‌های ابزار سخت‌گیرانه OpenAI و ثبت عیب‌یابی، پورت‌های AiTransportHost هستند که با configureAiTransportHost پیکربندی می‌شوند. پیش‌فرض‌های کتابخانه غیرفعال‌اند؛ OpenClaw پیاده‌سازی‌های واقعی خود را در نمای جریان نصب می‌کند.
  • یک هویت واحد برای جریان رویداد. @openclaw/ai/event-stream سازنده متعارف EventStream است که میان هسته OpenClaw، agent-core و مصرف‌کنندگان خارجی مشترک است.
  • زیرمسیرهای internal/* جزو API نیستند. آن‌ها برای خود برنامه OpenClaw وجود دارند و هیچ تضمین semver ندارند.
  • شناسه‌های ارائه‌دهنده، اطلاعات اعتبارسنجی، کاتالوگ‌های مدل، تلاش‌های مجدد و جایگزینی در صورت خرابی، همچنان دغدغه‌های برنامه هستند. OpenClaw این موارد را پیرامون این بسته لایه‌بندی می‌کند؛ مصرف‌کننده کتابخانه یک شیء Model و گزینه‌ها را مستقیماً ارائه می‌دهد.

خروجی‌های زیرمسیر

زیرمسیر محتویات
. قراردادها، createApiRegistry، createLlmRuntime، configureAiTransportHost
./providers registerBuiltInApiProviders، resetApiProviders
./types نوع‌های مدل/پیام/ابزار/جریان
./validation اعتبارسنجی آرگومان‌های ابزار
./diagnostics قراردادهای عیب‌یابی
./event-stream پیاده‌سازی مشترک EventStream
./internal/* داخلی OpenClaw، بدون تضمین semver
Was this useful?
On this page

On this page