تثبيت goose وتكوين مزود مخصص
هل تريد مساعد ذكاء اصطناعي يمكنه قراءة الملفات، أو كتابة المحتوى، أو التعامل مع المهام المتكررة دون أن يقتصر على متصفح الويب؟ يوفر goose إصدارات سطح المكتب والطرفية. بمجرد تثبيته وتكوينه بنموذج، يصبح جاهزاً للاستخدام على جهازك الخاص.
goose هو مساعد ذكاء اصطناعي للأغراض العامة يعمل على جهازك. بالإضافة إلى البرمجة، يمكنه التعامل مع البحث، والكتابة، والأتمتة، وتنظيم البيانات. يمكنك استخدامه من خلال تطبيق سطح المكتب، أو الطرفية، أو API، وتشترك إصدارات سطح المكتب والطرفية في نفس تكوين النموذج. إنه مناسب لمهام البرمجة المتكررة ويمكنه أيضاً الاتصال بـ GitHub، وقواعد البيانات، والملفات.
قبل البدء
يوفر goose خيارين للتثبيت: سطح المكتب (Desktop) و CLI. سطح المكتب هو الإصدار الرسومي الذي يحتوي على نافذة، بينما يتم استخدام CLI عن طريق إدخال الأوامر في الطرفية. يشترك كلاهما في نفس التكوين الأساسي، بما في ذلك المزود (Provider) والنموذج. المزود هو تكوين الاتصال الذي يخبر goose بخدمة النموذج التي يجب استخدامها.
تريد نافذة
goose Desktop
- تنزيل ملف zip على macOS
- أو استخدم brew cask
- استخدم حزمة المثبت على Linux
الطرفية فقط
goose CLI
- download_cli.sh
- أو Homebrew CLI
- ثم قم بتشغيل goose session
Windows
اختر بيئة أولاً
- Git Bash أو MSYS2
- يمكنك أيضاً استخدام PowerShell
- إذا لم يتم العثور على الأمر، أضفه إلى PATH
قبل البدء، جهز معرف النموذج من قائمة النماذج الحالية. معرف النموذج هو الاسم الذي تستخدمه خدمة النموذج لتحديد نموذج معين، ويجب عليك نسخ المعرف الكامل عند استخدامه.
التثبيت والتشغيل لأول مرة
إذا كنت تريد نافذة رسومية
هناك طريقتان موثقتان للتثبيت على macOS:
- قم بتنزيله من صفحة التثبيت. توفر الصفحة إصدارات macOS Silicon و macOS Intel. بعد التنزيل، استخرج ملف zip وقم بتشغيل التطبيق بداخله.
- بدلاً من ذلك، استخدم Homebrew:
brew install --cask block-goose
يقوم هذا بتنزيل نفس التطبيق ويمكنه أيضاً التعامل مع التحديثات.
إذا كنت تستخدم Apple Mac M3 ولم تظهر نافذة بعد فتح التطبيق، فتحقق مما إذا كان ~/.config قابلاً للقراءة والكتابة. يستخدم goose هذا المجلد لكتابة السجلات.
بالنسبة لإصدار سطح المكتب على Linux، قم بتنزيله من صفحة التثبيت. الحزم المتاحة هي DEB لـ Ubuntu/Debian، و RPM لـ RHEL/Fedora، و Flatpak. على Debian أو Ubuntu، قم بتنزيل ملف DEB، وافتح المجلد الذي تم حفظه فيه، وقم بتشغيل sudo dpkg -i (filename).deb، ثم افتح goose من قائمة التطبيقات. استبدل (filename) باسم الملف الفعلي.
بالنسبة لإصدار سطح المكتب على Windows، قم بتنزيله من صفحة التثبيت، واستخرج ملف zip، وقم بتشغيل التطبيق بداخله.
إذا كنت تريد إصدار الطرفية فقط
على macOS و Linux، قم بتشغيل:
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash
لتخطي التكوين التفاعلي أثناء التثبيت، أضف CONFIGURE=false قبل bash:
curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | CONFIGURE=false bash
على macOS، يمكنك أيضاً تشغيل:
brew install block-goose-cli
لتحديث CLI مثبت، قم بتشغيل:
goose update
على Windows، يلزم توفر إحدى البيئات الثلاث التالية: Git Bash، المضمن مع Git for Windows والمشار إليه كخيار موصى به؛ أو MSYS2؛ أو PowerShell المضمن مع Windows 10/11. في Git Bash و MSYS2، استخدم نفس أمر download_cli.sh الموضح أعلاه. في PowerShell، قم بتنزيل البرنامج النصي أولاً ثم قم بتشغيله:
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/aaif-goose/goose/main/download_cli.ps1" -OutFile "download_cli.ps1"
.\download_cli.ps1
إذا قيل لك أن goose ليس في PATH، فاتبع صفحة التثبيت وأضف ~/.local/bin أو %USERPROFILE%\.local\bin إلى تكوين shell الحالي، ثم أعد فتح الطرفية. PATH عبارة عن مجموعة من المجلدات التي تبحث فيها الطرفية عن البرامج. إذا لم يتم تضمين مجلد التثبيت، فقد لا تتمكن من تشغيل برنامج مثبت عن طريق إدخال اسمه مباشرة.
اعتباراً من 2026-10-09، كان إصدار CLI هو 1.54.0. افتراضياً، يضع برنامج التثبيت البرنامج في ~/.local/bin. يمكنك تغيير هذا المجلد باستخدام متغير البيئة GOOSE_BIN_DIR. إذا قمت بتغييره، فلن يقوم البرنامج النصي بتحديث تكوين shell تلقائياً، وستبلغ الطرفية بأن المجلد ليس في PATH. أضف ذلك المجلد إلى PATH أو قم بتشغيل goose باستخدام مساره الكامل.
في المرة الأولى التي تستخدم فيها goose، سيطلب منك تكوين مزود (Provider). يمكنك تخطي المزودين المدمجين وإضافة مزود مخصص كما هو موضح في القسم التالي. في الطرفية، انتقل إلى المجلد الذي تريد العمل فيه وقم بتشغيل:
goose session
الحصول على قيم الاتصال من OmniProxy
جهز العنوان، والمفتاح، واسم النموذج من مثيل OmniProxy الخاص بك. يستخدم مثال المزود المخصص base_url ينتهي بـ /v1/chat/completions، لذا يتبع هذا الدليل نفس التنسيق:
API URL: https://your-omniproxy-origin.example/v1/chat/completions
API Key: <YOUR_OMNIPROXY_API_KEY>
Models: Copy from the current OmniProxy model list; separate multiple models with commas
انسخ اسم النموذج الكامل من قائمة OmniProxy الحالية، بما في ذلك أي شرطات مائلة. اعتباراً من 2026-10-09، كان معرفا المرجع في وثائق المزود هما grok-4.7 لـ Grok و gpt-6-luna من وثائق OpenAI. يدعم gpt-6-luna إكمال الدردشة (Chat Completions)؛ يتم دعم استدعاء الوظائف في إكمال الدردشة فقط عند تعيين reasoning_effort إلى none. لا تنسخ اسماً لا يظهر في القائمة.
إدخال إعدادات الأداة
يمكن للمزود المخصص استخدام تنسيق متوافق مع OpenAI أو Anthropic أو Ollama. يعني التنسيق المتوافق أن الأداة ترسل الطلبات وفقاً لمواصفات API مشتركة. عند الاتصال بـ OmniProxy، حدد OpenAI Compatible.
سطح المكتب
- انقر فوق الزر الموجود في الزاوية العلوية اليسرى لفتح الشريط الجانبي.
- انقر فوق Settings.
- انقر فوق Models.
- انقر فوق Configure providers.
- انقر فوق Add Custom Provider في أسفل النافذة.
- بالنسبة لنوع المزود (Provider Type)، حدد OpenAI Compatible. يمكنك تعيين اسم العرض (Display Name) إلى OmniProxy. أدخل العنوان من القسم السابق في API URL. إذا كان المفتاح مطلوباً، فحدد الخيار الذي يتطلب مفتاح API وأدخل مفتاح OmniProxy الخاص بك. في النماذج المتاحة (Available Models)، أدخل أسماء النماذج، وافصل بين الأسماء المتعددة بفواصل.
- انقر فوق Create Provider.
لا يمكن لإصدار سطح المكتب حالياً تحديد رؤوس طلبات مخصصة في هذه النافذة. إذا كنت بحاجة إلى رؤوس طلبات، فقم بتحرير ملف التكوين بعد إنشاء المزود.
الطرفية
قم بتشغيل:
goose configure
حدد Custom Providers، ثم حدد Add A Custom Provider. بالنسبة لنوع API، حدد OpenAI Compatible، ثم اتبع التعليمات لإدخال الاسم، و API URL، وما إذا كان المفتاح مطلوباً، وأسماء النماذج، وما إذا كانت استجابات البث (streaming) مدعومة.
عند التكوين يدوياً على Windows، إذا أبلغت سلسلة المفاتيح (keychain) عن خطأ، تقول تعليمات التثبيت برفض حفظ المفتاح في سلسلة المفاتيح واستخدام متغير بيئة بدلاً من ذلك. ثم قم بتشغيل goose configure مرة أخرى. سلسلة المفاتيح هي نظام تخزين آمن صغير يستخدمه نظام التشغيل لتخزين الأسرار.
ملف التكوين
المجلدات الموثقة هي:
- macOS و Linux:
~/.config/goose/custom_providers/ - Windows:
%APPDATA%\Block\goose\config\custom_providers\
يمكنك جعل الملف يعتمد على المثال المقدم. استبدل الاسم، والعنوان، والنماذج بقيمك الخاصة. قم بتخزين المفتاح في متغير البيئة المحدد بواسطة api_key_env؛ لا تكتب المفتاح الحقيقي في الملف:
{
"name": "omniproxy",
"engine": "openai",
"display_name": "OmniProxy",
"api_key_env": "OMNIPROXY_API_KEY",
"base_url": "https://your-omniproxy-origin.example/v1/chat/completions",
"models": [
{ "name": "grok-4.7", "context_limit": 128000 },
{ "name": "gpt-6-luna", "context_limit": 128000 }
],
"supports_streaming": true,
"requires_auth": true
}
احتفظ بقيمة رقمية لـ context_limit، كما هو موضح في المثال. يعتمد حد السياق الفعلي على النموذج و OmniProxy؛ لا تعامل الرقم النموذجي كحد رسمي للنموذج. قبل استخدامه، قم بتشغيل:
export OMNIPROXY_API_KEY="<YOUR_OMNIPROXY_API_KEY>"
بعد الدخول إلى مجلد العمل، قم بتشغيل:
goose session --provider omniproxy --model grok-4.7
استبدل قيمة --model بالمعرف الكامل من القائمة. لا يحتوي goose session على أمر فرعي start. يمكنك أيضاً تعيين --provider و --model من خلال متغيرات البيئة GOOSE_PROVIDER و GOOSE_MODEL. حتى إذا كانت البوابة لا تتحقق من المفاتيح، يجب أن يظل لـ OMNIPROXY_API_KEY قيمة. يمكن أن تكون سلسلة نصية نائبة تستخدم فقط على جهازك المحلي. نجح هذا التكوين في قراءة ملف في الاختبار في 2026-10-09.
النافذة
Settings
- Settings في الشريط الجانبي
- صفحة Models
- Add Custom Provider
الطرفية
goose configure
- حدد Custom Providers
- ثم حدد إضافة
- اختر OpenAI Compatible كنوع
الملف
custom_providers
- على macOS و Linux، يوجد تحت ~/.config
- على Windows، يوجد تحت APPDATA
- قم بتعيين base_url وفقاً للمثال الرسمي
التحقق بمهمة حقيقية
افتح مجلداً يحتوي على ملف عادي وقم بتشغيل goose session كما هو موضح في القسم السابق. اطلب منه قراءة السطر الأول من ملف تحدده. يجب أن يعيد محتويات الملف بدلاً من مجرد القول بأن التكوين قد تم حفظه.
لقراءة الملفات أو تنفيذ الأوامر، تحتاج الجلسة إلى امتداد المطور (Developer extension). امتداد المطور هو وحدة أدوات تسمح لـ goose بالعمل مع الملفات والأوامر المحلية. يتم تضمينه عموماً في التكوين الافتراضي. إذا قال goose أنه لا يملك أدوات ملفات، أضف ما يلي إلى الأمر:
--with-builtin developer
لا تضف أيضاً --no-profile، لأن هذا الخيار يعطل الامتدادات الافتراضية.
في الاختبار في 2026-10-09، نجح goose 1.54.0 في قراءة السطر الأول من الملف المحدد. قد تستغرق الاستجابة الأولى حوالي دقيقة واحدة.
ثم تحقق من سجلات طلبات OmniProxy لتأكيد المصدر واسم النموذج.
التشغيل
تفتح جلسة
- goose session
- المزود هو الذي تمت إضافته للتو
- اسم النموذج موجود في القائمة
المهمة
أكمل المهمة فعلياً
- على سبيل المثال، سرد المجلد الحالي
- راجع استجابته
- لا تعتمد فقط على حفظ ناجح
السجلات
مرئية في البوابة
- استخدم العنوان من مثال الوثائق
- لا تضع المفتاح في المستودع
- معرف النموذج يطابق القائمة
الأخطاء الشائعة
- لا يمكن العثور على أمر
goose: أضف مجلد التثبيت إلى PATH كما هو موضح في صفحة التثبيت، ثم أعد فتح الطرفية. - لا تظهر نافذة في إصدار سطح المكتب على M3 Mac: تحقق من أذونات القراءة والكتابة لـ
~/.config. - تفشل سلسلة المفاتيح: لا تحفظ المفتاح في سلسلة المفاتيح؛ استخدم متغير بيئة بدلاً من ذلك.
- النموذج ليس في القائمة: في إصدار سطح المكتب، حدد Use custom model وأدخل اسم النموذج يدوياً. لا يمكن لـ
goose configureقبول اسم نموذج مخصص. لاستخدام الطرفية، انتقل إلى إصدار سطح المكتب أو قم بتحريرGOOSE_MODELمباشرة في التكوين. - لا يمكن الوصول إلى العنوان: تأكد من أن API URL ينتهي بـ
/v1/chat/completions، كما في المثال، وأن OmniProxy يعمل. - يقول أنه لا يمكنه قراءة الملفات: أضف امتداد المطور ولا تستخدم
--no-profile. - يعيد
unsupported Responses role: system: العنوان صحيح عادةً. انتقل إلى معرف كامل آخر من قائمة النماذج.
المراجع الرسمية
للتثبيت، راجع Install goose. للمزودين المخصصين، راجع goose providers. لمعرفات النماذج المستخدمة في الأمثلة، راجع صفحة نماذج xAI و GPT-6 Luna.
استبدل كل عنصر نائب بقيم من تكوين OmniProxy الخاص بك. لا تنشر أبدًا مفتاحًا حقيقيًا.
نتيجة محفوظة أو HTTP 200 وحدها لا تثبت توافق الوكيل الكامل. تحقق من المصدر والنموذج في سجل طلبات OmniProxy.