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 مربوط به Plugin متصل میکند و آن را همراه با ابزارهای محلی پراکسی دوباره صادر میکند. |
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 را ببینید.