لا يقرأ وكيل الذكاء الاصطناعي واجهة المستخدم الرسومية؛ بل ينفّذ أمرًا، ويقرأ المخرجات القياسية (stdout)، ويتحقق من رمز الخروج، ثم يحدد الخطوة التالية. تنجح هذه الحلقة فقط عندما تكون الأدوات قابلة للتوقع: فالجدول الملون للبشر، أو مطالبة مثل «هل أنت متأكد؟»، أو رمز الخروج 0 عند الفشل، كلها تجعل الأتمتة هشة وصعبة التصحيح.
السؤال العملي ليس: «ما أقوى واجهة سطر أوامر؟» بل: «ما واجهة سطر الأوامر التي يستطيع الوكيل اتخاذ قرار بناءً على مخرجاتها؟». ابحث عن ثلاثة أمور: مخرجات JSON منظمة، ووضع غير تفاعلي، ورموز خروج موثوقة.
تنقسم الأدوات هنا إلى فئتين:
- بيئات تشغيل الوكلاء: مثل Claude Code وCodex CLI وGemini CLI وCursor CLI.
-
أدوات ينفذ بها الوكيل العمل: مثل
ghوripgrepوjqوHTTPie وapidog-cli.
إذا كنت تربط وكيلاً بسير عمل API، فراجع الدليل الكامل لـ Apidog CLI.
ما الذي يجعل أداة سطر الأوامر مناسبة للوكلاء؟
قبل إضافة أي CLI إلى خط أنابيب وكيل، اختبرها وفق هذه المعايير.
1. مخرجات منظمة
يحلل الوكيل JSON بصورة أكثر موثوقية من الجداول والنصوص الحرة. استخدم أدوات تدعم --json أو --output-format json حتى يقرأ الوكيل الحقول بالاسم بدل تحليل مواقع الأعمدة.
tool command --output-format json | jq '.result'
2. وضع غير تفاعلي
يجب ألا يتوقف الأمر لطلب تأكيد أو إدخال. في بيئات CI أو التشغيل بدون واجهة، أي مطالبة تفاعلية قد توقف المهمة بلا نهاية.
ابحث عن خيارات مثل:
--non-interactive
--yes
--print
--headless
3. رموز خروج حتمية
يجب أن يعني الرمز 0 النجاح، وأن تشير أي قيمة غير صفرية إلى فشل قابل للتعامل معه.
tool command
status=$?
if [ "$status" -ne 0 ]; then
echo "فشل الأمر برمز: $status"
exit "$status"
fi
4. تلميحات للخطوة التالية
هذه ميزة أقل شيوعًا: أن تخبر الأداة الوكيل بما يمكنه فعله لاحقًا. هنا يتميز apidog-cli عبر agentHints.nextSteps.
Claude Code
Claude Code هو وكيل ترميز من Anthropic يعمل في الطرفية. استخدم -p لتشغيله دون واجهة تفاعلية، ثم اطلب JSON لتسهيل تمرير النتيجة إلى برنامج نصي أو وكيل آخر.
npm install -g @anthropic-ai/claude-code
claude -p "summarize the failing tests in this repo" \
--output-format json
تتضمن الاستجابة المنظمة النتيجة وsession_id وtotal_cost_usd، ما يسمح بتتبع الجلسات والتكلفة برمجيًا. ولتدفق الأحداث الفوري، استخدم stream-json مع --verbose.
يمكنك تمرير سجل أو ملف إلى الوكيل مباشرة:
cat build-error.txt | claude -p "explain this error"
الأفضل لـ: مهام الترميز متعددة الخطوات التي تحتاج إلى تخطيط وتنفيذ ثم مخرجات قابلة للقراءة آليًا.
الحدود: نموذج مدفوع ومغلق خلف API، وقد تتراكم التكلفة في التشغيلات الطويلة.
Codex CLI
Codex CLI هو وكيل طرفية مفتوح المصدر من OpenAI. استخدم codex exec أو الاختصار codex e لتشغيله بشكل غير تفاعلي.
npm install -g @openai/codex
codex exec --json "add input validation to the signup handler"
مع --json تصبح المخرجات تدفق JSONL: كل تنفيذ أمر، أو تغيير ملف، أو رسالة وكيل يكون كائن JSON مستقلًا. صفِّ الأحداث التي تحتاجها فقط باستخدام jq.
codex exec --json "review this repository" \
| jq 'select(.type == "message")'
وعندما تحتاج إلى استجابة نهائية ثابتة لخط CI، استخدم --output-schema لفرض توافق النتيجة مع مخطط JSON.
الأفضل لـ: تغييرات الكود المدفوعة بـ CI والتي تحتاج إلى مخرجات نهائية متحققة من المخطط.
الحدود: تدفق JSONL مطول، وستحتاج إلى تصفية عملية باستخدام jq. اختبر المخرجات المقيدة بالمخطط مع مطالباتك الفعلية.
Gemini CLI
Gemini CLI هو وكيل طرفية مفتوح المصدر من Google. ينتقل إلى الوضع غير الرسومي تلقائيًا في بيئة غير TTY، أو عند تمرير مطالبة بواسطة -p أو --prompt.
npm install -g @google/gemini-cli
gemini --non-interactive \
--output-format json \
-p "list the public endpoints in this service"
يعيد --output-format json كائن JSON واحدًا يتضمن الاستجابة وإحصاءات الاستخدام. كما تتوفر صيغة JSONL لتدفق الأحداث.
استخدم jq لاستخراج الاستجابة فقط:
gemini --non-interactive --output-format json \
-p "summarize this codebase" \
| jq -r '.response'
الأفضل لـ: المهام كثيرة القراءة، والفرق التي تعمل في بيئة أدوات Google.
الحدود: جاءت مخرجات JSON المنظمة متأخرة مقارنة ببعض المنافسين؛ ثبّت الإصدار واختبر العلامات قبل تضمينها في CI.
Cursor CLI
يوفر cursor-agent وكيل Cursor داخل الطرفية بشكل مستقل عن المحرر. شغّله دون واجهة باستخدام -p أو --print.
curl https://cursor.com/install -fsS | bash
cursor-agent -p "refactor utils/date.js to use date-fns" \
--output-format json
يدعم --output-format القيم التالية:
textjsonstream-json
في الوضع غير الرسومي، استخدم --trust إذا أردت السماح للوكيل باستخدام أدوات الكتابة والصدف دون التوقف لطلب التأكيد.
cursor-agent --trust \
-p "add tests for the date utilities" \
--output-format json
الأفضل لـ: فرق Cursor التي تريد تشغيل الوكيل نفسه في المحرر وCI وخطافات Git.
الحدود: أبلغ المجتمع عن مشكلات في وضع -p غير الرسومي في بعض البنيات والمنصات. اختبره على نظام التشغيل المستهدف وثبّت إصدارًا معروفًا، وراجع تغييرات الملفات.
gh: واجهة سطر أوامر GitHub
استخدم gh كلما كانت المهمة مرتبطة بمستودع GitHub أو مشكلة أو طلب سحب أو إصدار. دعمها لـ --json يجعلها مناسبة جداً للوكلاء.
brew install gh
gh pr list --json number,title,author \
--jq '.[].author.login'
مرر قائمة الحقول المطلوبة إلى --json لتحصل على هذه الحقول فقط. وإذا تركت القيمة فارغة، ستعرض الأداة الحقول المتاحة ليستكشف الوكيل المخطط.
استخدم gh api عندما لا يغطي الأمر الفرعي العملية المطلوبة:
gh api repos/OWNER/REPO/issues \
--jq '.[] | {number, title, state}'
الأفضل لـ: جميع عمليات GitHub، من قراءة حالة PR إلى إنشاء المشاكل.
الحدود: خاص بـ GitHub فقط، وتختلف حقول --json المتاحة بين الأوامر الفرعية.
ripgrep
ripgrep أو rg هو خيار سريع للبحث المنظم داخل قواعد الكود الكبيرة. بدلاً من تحليل نص file:line:text الهش، استخدم --json.
brew install ripgrep
rg --json "TODO" src/ \
| jq 'select(.type == "match") | .data.path.text'
كل تطابق يتضمن كائن JSON مستقلًا يحتوي على مسار الملف ورقم السطر والنص المطابق. بهذه الطريقة لا يخطئ الوكيل عند وجود نقطتين أو رموز خاصة في المسار أو الكود.
لاستخراج الملف ورقم السطر معًا:
rg --json "TODO" src/ \
| jq -r '
select(.type == "match") |
"\(.data.path.text):\(.data.line_number)"
'
الأفضل لـ: البحث السريع والمنظم قبل أن يقرر الوكيل الملفات التي سيعدلها.
الحدود: مخرجات --json مطولة، وغالبًا تحتاج إلى jq. للبحث اليدوي السريع، قد يكون النص العادي أبسط.
jq
jq هو طبقة التحويل بين أدوات JSON. استخدمه لتصفية النتائج أو إعادة تشكيلها قبل تمريرها إلى الخطوة التالية.
brew install jq
curl -s https://api.github.com/repos/cli/cli \
| jq '{name, stars: .stargazers_count}'
مثال عملي في خط أنابيب وكيل: ابحث عن PR مفتوح، ثم استخرج رقمه فقط.
gh pr list --json number,state \
| jq -r '.[] | select(.state == "OPEN") | .number'
jq حتمي ويدعم التدفق، كما يعيد رمز خروج غير صفري عند فشل تحليل JSON؛ لذلك لا تمر الاستجابات المعطوبة بصمت إلى الخطوات التالية.
الأفضل لـ: تحويل JSON من أي CLI إلى الشكل الذي تتوقعه الخطوة التالية.
الحدود: يحتاج إلى تعلم لغة الاستعلام، ويعالج JSON فقط وليس السجلات النصية الخام.
HTTPie
عندما يحتاج الوكيل إلى استدعاء HTTP API مباشرة، يوفر HTTPie تجربة أكثر ملاءمة لـ JSON من curl الخام. تتحول الحقول بصيغة key=value إلى نص طلب JSON تلقائيًا.
brew install httpie
http --print=b POST httpbin.org/post \
name=apidog \
role=cli
تتحكم --print في ما يظهر على stdout. استخدم b لطباعة جسم الاستجابة فقط، ما يسهّل تحليلها دون إزالة الرؤوس.
http --print=b GET https://api.github.com/repos/cli/cli \
| jq '{name, stars: .stargazers_count}'
الأفضل لـ: استدعاءات API السريعة والقابلة للبرمجة حيث يكون JSON هو صيغة الإدخال والإخراج.
الحدود: تبعية إضافية عندما يكون curl متاحًا في معظم البيئات. للتدفق أو البروتوكولات غير المعتادة، يبقى curl خيارًا أقوى.
apidog-cli
معظم الأدوات في هذه القائمة صُممت للبشر أولًا ثم أضيف لها دعم JSON. أما apidog-cli فيعتمد مخرجات JSON المنظمة بالتصميم، ويضمّن agentHints.nextSteps في الاستجابات لإخبار الوكيل بالخطوات الممكنة التالية.
إنه CLI كامل لإدارة مشاريع API، وليس مجرد مشغّل اختبارات. يمكنه التعامل مع:
- نقاط النهاية
- المخططات ونماذج البيانات
- المحاكاة (Mocks)
- البيئات
- الاستيراد والتصدير
- الوثائق
- سيناريوهات الاختبار
- الفروع
ثبّت الأداة وسجّل الدخول:
npm install -g apidog-cli
apidog login --with-token <YOUR_TOKEN>
apidog run --help
يعيد apidog run رمز 0 عند نجاح جميع الاختبارات، ورمزًا غير صفري عند فشل أي اختبار. لذلك يمكن لوكيل أو خط CI الاعتماد على رمز الخروج مباشرة:
apidog run
if [ "$?" -ne 0 ]; then
echo "فشلت اختبارات API"
exit 1
fi
تساعد تلميحات agentHints.nextSteps الوكيل على ربط الأوامر التالية دون الحاجة إلى تحديد التسلسل يدويًا. راجع الأمثلة التالية:
استخدم AI Branch لعزل تعديلات الوكيل
لا تمنح وكيلاً يملك صلاحية كتابة حرية تعديل مشروع API مباشر دون عزل. قد يكتب فوق نقاط نهاية أو مخططات حقيقية أو يحذفها.
استخدم AI Branch لإنشاء فرع معزول:
apidog branch --type ai
يبقى الفرع الأصلي دون تغيير، ولا يتم نشر شيء حتى توافق على طلب الدمج. لمزيد من التفاصيل، راجع:
- AI Branch لوكلاء الذكاء الاصطناعي
- بناء بيئة اختبار لوكيل الذكاء الاصطناعي
- Apidog CLI في سير عمل وكلاء الذكاء الاصطناعي
الأفضل لـ: تزويد الوكيل بأداة واحدة أصلية لـ JSON تغطي دورة حياة API كاملة، مع تلميحات للخطوات التالية وبيئة تعديل معزولة.
الحدود: Apidog ليس مفتوح المصدر؛ إنه منتج تجاري مع طبقة مجانية. كما أنه ليس مدقق OpenAPI، لذا أقرنه بـ Spectral أو Redocly إذا كان تطبيق قواعد الأسلوب جزءًا من سير عملك.
كيف تختار؟
لا توجد أداة فائزة لكل السيناريوهات. اختر بيئة تشغيل واحدة لتوجيه العمل، ثم أضف أقل مجموعة ممكنة من أدوات التنفيذ.
| الأداة | الأفضل لـ | التثبيت | مفتوح المصدر؟ | ملاحظات ملائمة للوكيل |
|---|---|---|---|---|
| Claude Code | الترميز متعدد الخطوات والتخطيط | npm i -g @anthropic-ai/claude-code |
لا |
-p مع --output-format json، والتكلفة ضمن المخرجات |
| Codex CLI | تغييرات كود CI ذات مخطط محدد | npm i -g @openai/codex |
نعم |
codex exec --json و--output-schema
|
| Gemini CLI | بيئة Google والمهام كثيرة القراءة | npm i -g @google/gemini-cli |
نعم | --non-interactive --output-format json |
| Cursor CLI | فرق Cursor والتكافؤ بين المحرر وCI | `curl cursor.com/install \ | bash` | لا |
| gh | أي عملية GitHub | brew install gh |
نعم | حقول --json مع --jq المدمج |
| ripgrep | بحث سريع ومنظم في الكود | brew install ripgrep |
نعم | أحداث المطابقة عبر --json
|
| jq | إعادة تشكيل JSON | brew install jq |
نعم | حتمي ومناسب لربط خطوط الأنابيب |
| HTTPie | استدعاءات API قابلة للبرمجة | brew install httpie |
نعم | JSON أولًا والتحكم عبر --print
|
| apidog-cli | دورة حياة API كاملة للوكلاء | npm i -g apidog-cli |
لا، مع طبقة مجانية | JSON أصلي مع agentHints.nextSteps
|
الخلاصة
ملاءمة الوكيل ليست وصفًا تسويقيًا؛ إنها متطلبات تنفيذية واضحة:
- مخرجات منظمة يستطيع الوكيل تحليلها.
- وضع غير تفاعلي لا يتوقف عند مطالبة.
- رموز خروج موثوقة لاتخاذ قرارات النجاح والفشل.
توفر بيئات التشغيل مثل Claude Code وCodex CLI وGemini CLI وCursor CLI منطق الوكيل، بينما تنفذ أدوات مثل gh وripgrep وjq وHTTPie وapidog-cli العمل الفعلي.
يبرز apidog-cli لأنه يوفر JSON افتراضيًا، ورموز خروج موثوقة، وتلميحات خطوات تالية يمكن للوكيل قراءتها مباشرة. إذا كان وكيلك يعمل على APIs، نزّل Apidog أو ابدأ بـ الدليل الكامل لـ Apidog CLI، ثم اربطه بخط CI الخاص بك.
Top comments (0)