Technical reference
معماری محیط اجرای عامل
OpenClaw مالک زماناجرای داخلی عامل است. کد زماناجرا در src/agents/ قرار دارد، انتقال مدل/ارائهدهنده در src/llm/ قرار دارد و قراردادهای در معرض Plugin از طریق barrelهای openclaw/plugin-sdk/* ارائه میشوند.
چیدمان زماناجرا
| مسیر | مسئولیت |
|---|---|
src/agents/embedded-agent-runner/ |
حلقه تلاش داخلی (run.ts، run/)، انتخاب مدل و نرمالسازی ارائهدهنده (model*.ts)، پارامترهای درخواست مختص هر ارائهدهنده (extra-params.*)، Compaction، و سیمکشی رونوشت و نشست. |
src/agents/sessions/ |
ماندگاری نشست (session-manager.ts)، کشف منابع (package-manager.ts، resource-loader.ts)، بارگذاری دروننشستی extensions، قالبهای پرامپت، Skills، پوستهها و رندرکنندههای ابزار مبتنی بر TUI (tools/). |
packages/agent-core/ |
هسته قابلاستفاده مجدد عامل (@openclaw/agent-core): حلقه عامل، انواع مهار، پیامها، کمکتابعهای Compaction، قالبهای پرامپت، Skills و قراردادهای ذخیرهسازی نشست. |
src/agents/runtime/ |
نمای OpenClaw که @openclaw/agent-core را به زماناجرای LLM متعلق به SDK افزونه متصل میکند و آن را همراه با ابزارهای پراکسی محلی بازصادر میکند. |
src/agents/agent-tools*.ts |
تعریف ابزارهای متعلق به OpenClaw، شِمای پارامترها، سیاست ابزار، آداپتورهای پیش/پس از فراخوانی ابزار و ابزارهای ویرایش میزبان/سندباکس. |
src/agents/agent-hooks/ |
هوکهای داخلی زماناجرا: محافظ Compaction، دستورالعملهای Compaction، هرس زمینه. |
src/agents/harness/ |
رجیستری مهار، سیاست انتخاب و چرخهعمر مهارهای داخلی و ثبتشده توسط Plugin. |
src/llm/ |
رجیستری مدل/ارائهدهنده، کمکتابعهای انتقال و پیادهسازیهای جریان مختص ارائهدهنده (src/llm/providers/). |
مرزها
هسته زماناجرای داخلی را از طریق ماژولهای OpenClaw و barrelهای SDK فراخوانی میکند؛ هیچ بسته چارچوب عامل خارجی باقی نمانده است. Pluginها از نقاط ورود مستندشده openclaw/plugin-sdk/* استفاده میکنند و اجزای داخلی src/** را وارد نمیکنند.
@earendil-works/pi-tui همچنان یک وابستگی شخص ثالث است: جعبهابزار مؤلفههای ترمینال که TUI محلی و رندرکنندههای ابزار نشست از آن استفاده میکنند. داخلیسازی آن تلاشی جداگانه برای فروشندهسازی خواهد بود.
مانیفستها
بستههای منابع، منابع OpenClaw را در فراداده package.json اعلام میکنند. ورودیها مسیر فایل یا الگوهای glob نسبت به ریشه بسته هستند:
{ "openclaw": { "extensions": ["extensions/index.ts"], "skills": ["skills/*.md"], "prompts": ["prompts/*.md"], "themes": ["themes/*.json"] }}انواع منابعی که در مانیفست فهرست نشدهاند، به کشف دایرکتوریهای متعارف extensions/، skills/، prompts/ و themes/ برمیگردند.
انتخاب زماناجرا
- شناسه زماناجرای داخلی
openclawاست. نام مستعار قدیمیpiبهopenclawنرمال میشود؛codex-app-serverبهcodexنرمال میشود. - مهارهای Plugin شناسههای زماناجرای بیشتری ثبت میکنند (برای مثال
codex). - سیاست زماناجرا، پیکربندی
agentRuntime.idمحدود به مدل/ارائهدهنده است (ورودی مدل بر ورودی ارائهدهنده اولویت دارد). مقدار تنظیمنشده یاdefaultبهautoتفکیک میشود. autoیک مهار Plugin ثبتشده را انتخاب میکند که از مسیر مؤثر ارائهدهنده پشتیبانی کند؛ در غیر این صورت، زماناجرای داخلی OpenClaw انتخاب میشود. پیشوند ارائهدهنده یا مدل بهتنهایی هرگز مهاری را انتخاب نمیکند.- OpenAI تنها برای یک مسیر دقیق و رسمی HTTPS از نوع Platform Responses یا ChatGPT Responses و بدون بازنویسی تألیفی درخواست، میتواند
codexرا بهطور ضمنی انتخاب کند. آداپتورهای Completions، نقاط پایانی سفارشی و مسیرهای دارای رفتار تألیفی درخواست رویopenclawباقی میمانند؛ نقاط پایانی رسمی HTTP با متن ساده رد میشوند. به زماناجرای ضمنی عامل OpenAI مراجعه کنید.
نسلهای زماناجرای مدل
راهاندازی Gateway و انتشار پیکربندی، Plugin یا احراز هویت، برای هر عامل پیکربندیشده یک نسل آماده زماناجرای مدل میسازد. هر نسل، قالب احراز هویت کشفشده، رجیستری مدل و کاتالوگ مدل نگاشتشده را بهصورت یک عکس فوری اتمی در اختیار دارد. اجراهای عامل، مخازن تغییرپذیر احراز هویت و رجیستری را از آن عکس فوری منشعب میکنند؛ مسیرهای مرور، وضعیت، Cron، doctor، TUI، PDF و تصویر بهجای تکرار کشف سیستم فایل، کاتالوگ منتشرشده را میخوانند.
زماناجراهای تعبیهشده مستقل نیز در مرز فعالسازی خود، همین شکل عکس فوری را منتشر میکنند. یک نسل ناموفق یا منقضی هرگز در کنار نسل جزئی جدیدتر ارائه نمیشود؛ مالک چرخهعمر باید ابتدا جایگزینی کامل منتشر کند.