
وكيل أتمتة أندرويد باللغة الطبيعية يقود أجهزة حقيقية عبر ADB، ويلتقط Logcat ولقطات الشاشة، ويكشف خادم MCP لبيئات تطوير الذكاء الاصطناعي وخطوط اختبار CI.
دع مساعدي الذكاء الاصطناعي ومجموعات الاختبار تستخدم هواتف حقيقية مثل الإنسان.
English • 中文文档 • عرض سير العمل • البدء السريع • MCP لبيئات التطوير • المعايير القياسية • مجتمع Discord
عرض حي: إعداد مسارات القيادة وحساب المدد الإجمالية في Google Maps، ثم فتح YouTube لتشغيل أغنية Coldplay.
يستخدم Antigravity أداة ARTEMIS عبر MCP لتحويل طلب الاختبار إلى خطة وتنفيذ على الجهاز وتقرير تشخيصي:
تأكد من توصيل جهاز Android (مع تفعيل تصحيح USB) أو محاكي. سيقوم سكربت التشغيل بنقرة واحدة تلقائيًا بما يلي:
uv).rules.md) في بيئات تطوير الذكاء الاصطناعي لديك (Antigravity، Cursor، Claude Code، Codex، Windsurf، VS Code، Cline/Roo، OpenClaw).# 1. Clone repo & navigate to directory
git clone https://github.com/google/artemis.git && cd artemis
# 2. One-click launch
./start.sh
# 1. Clone repo & navigate to directory
git clone https://github.com/google/artemis.git
cd artemis
# 2. One-click launch
.\start.bat
لا يبحث PowerShell عن السكربتات القابلة للتنفيذ في الدليل الحالي افتراضيًا، لذا استخدم
.\start.batبدون شرطة مائلة\في النهاية. في موجه الأوامر (CMD)، استخدمstart.batبدلاً من ذلك.
نصيحة: يفتح
http://localhost:8000في متصفحك الافتراضي مع معالج اتصال الجهاز، وعرض الشاشة المباشر، وساحة تجربة الأوامر، وإعادة تشغيل التنفيذ. يمكنك أيضًا التشغيل مباشرة من سطر الأوامر:uv run artemis run "Open Settings, find Battery and tell me current level" --profile flash.
يتضمن ARTEMIS خادم بروتوكول سياق النموذج (MCP) أصليًا. اربط هاتفك الحقيقي مباشرة ببيئات تطوير الذكاء الاصطناعي:
سيؤدي تشغيل ./start.sh (macOS/Linux) أو .\start.bat (Windows PowerShell) إلى مطالبتك بإعداد MCP العام وقواعد الاختبار لبيئات التطوير المكتشفة (أو يمكنك التثبيت/التحديث يدويًا في أي وقت لاحق باستخدام الأوامر أدناه):
# Auto-install MCP server & global rules for Antigravity / Jetski:
uv run artemis mcp --install antigravity
# Or install for all supported AI IDEs (including Codex):
uv run artemis mcp --install all
نصيحة: يمكنك أيضًا إعداد MCP تفاعليًا أثناء الإعداد الأولي عبر
uv run artemis init. نصيحة احترافية: إذا أردت استخدام أمرartemisعالميًا دونuv runفي أي دليل، شغّلuv tool install -e .مرة واحدة في جذر المشروع.
ثبّت العميل الخالي من تبعيات وقت التشغيل على جهاز التطوير. يبقى ADB والوكلاء والنماذج ومعالجة الصور على مضيف الجهاز:
uv add "artemis-client @ git+https://github.com/google/artemis.git#subdirectory=packages/artemis-client"
import asyncio
from artemis_client import ArtemisClient
async def main():
client = ArtemisClient(
"http://artemis-host:8000",
device_serial="emulator-5554", # optional: target specific device serial
default_profile="flash", # "flash" (fast reactive) or "pro" (deep reasoning)
)
result = await client.run(
"Open System Settings, go to 'Battery', verify battery percentage is displayed, and check for any crash dialogs.",
)
assert result.succeeded, f"Test failed: {result.error or result.status}"
print(f"✅ Test Passed! Device: {result.device_serial} | Trace ID: {result.trace_id}")
if __name__ == "__main__":
asyncio.run(main())
نظرة عامة على وحدة التحكم: ① مبدّل العرض (الرئيسية / مساحة العمل) · ② النموذج وإعادة التشغيل (حالة Flash/Pro وإعادة تشغيل الفيديو) · ③ بث الوكيل المباشر (إدراك الإجراء وإحداثيات الهدف والنتائج المنظمة) · ④ منصة الأوامر (إرسال اللغة الطبيعية) · ⑤ قائمة المهام ولوحة المعلومات (دورة الحياة والسجل)
uv run artemis ui): عرض الشاشة في الوقت الفعلي ولوحة تفاعلية، تدعم إرسال اختبارات اللغة الطبيعية، وقياس الاستدلال المباشر، ومسارات الإجراءات، وإعادة تشغيل التنفيذ؛ إدارة دورة حياة الخادم في أي وقت من أي طرفية باستخدام uv run artemis restart وuv run artemis stop وuv run artemis status؛uv run artemis run): تنفيذ مباشر من الطرفية لحالات الاختبار الآلية، أو فحص الاستقرار الاستكشافي، أو معايير AndroidWorld مع مخرجات طرفية منظمة عالية الدقة؛تثبّت المهمة الأولى على الجهاز Artemis Accessibility Helper، وهي خدمة
إمكانية وصول صغيرة تقرأ تخطيط الشاشة دون الاستحواذ على اتصال
UiAutomation. يمكن للأدوات التي تستخدم UiAutomation كتم المساعد ما لم
تفعّل FLAG_DONT_SUPPRESS_ACCESSIBILITY_SERVICES. سترى
إشعارًا مطويًا "Artemis test helper is running" ومدخلاً جديدًا تحت
الإعدادات > إمكانية الوصول؛ كلاهما هو ذلك المساعد. يستمع فقط على الهاتف
نفسه ولا يرسل شيئًا إلى أي مكان آخر.
uv run artemis helper installuv run artemis helper status / uv run artemis doctoruv run artemis helper uninstallARTEMIS_HIERARCHY_BACKEND=uiautomator في .envARTEMIS_HELPER_AUTO_INSTALL=false في .envإذا فشل المساعد في أي وقت أثناء المهمة، يعود ARTEMIS إلى UIAutomator2 ويذكر
ذلك في الجدول الزمني للمهمة، وفي حالة mobile_manage_task، وفي التقرير النهائي.
حقق Artemis معدل إتمام يزيد عن 99% في AndroidWorld، معيار Google Research الذي يغطي أكثر من 20 تطبيقًا وأكثر من 100 مهمة متعددة الخطوات.
يدعم ARTEMIS ملفي تنفيذ مصممين لمتطلبات أتمتة مختلفة:
--profile flash): حلقة تفاعلية سريعة وموفرة للرموز (~3–5 ثوانٍ لكل خطوة): يلاحظ نموذج واحد الشاشة الحية، ويفكر، وينفذ، دون تنسيق رسومي. مثالي لمهام واجهة المستخدم الروتينية والحتمية. الحلقة غير محدودة افتراضيًا (agent.flash.max_turns، 0 = غير محدود) لأن السجل يُضغط بدلاً من تقييده: يشارك Flash سجل جلسة Pro (ساعة نسبية للجلسة T+mm:ss، ولقطات الشاشة تُطوى في ملخصات بصرية، والخطوات الأقدم تُقسّم إلى حقب قابلة للاستدعاء عند الطلب عبر search_history / replay_steps) ويمكنه الاستعلام عن تسجيل الجلسة عبر video_analyzer. تُعالج واجهة المستخدم العابرة (أشرطة التحكم المتلاشية تلقائيًا، والإشعارات المنبثقة) بربط النقرات في click_sequence واحد. القيود: لا خطة مهمة أو ملاحظات، ولا شبكة أمان قبل التنفيذ، ولا تحقق من نقاط التفتيش أو تقرير نهائي، ولا ADB shell.--profile pro): سير عمل تخطيط وتحقق (~15–40 ثانية لكل خطوة)، مبني كرسم بياني متعدد الوكلاء. يحتفظ المخطط (Planner) بخطة مهمة Markdown حية مع معالم وعناصر تحقق verify / assert؛ ينفذها المشغّل (Operator) بمجموعة الأدوات الكاملة (تأسيس Explorer الذي يكون مستواه / / إعدادًا للمستخدم لكل ملف — / في أو — ولا يختاره الوكيل أبدًا؛ ملاحظات، واستدعاء السجل، وتحليل الفيديو، وتشخيص ADB). يمر كل إجراء فردي عبر قبل التنفيذ (XML أولاً، والبكسل كاحتياطي)، بينما تنطلق متتالية للتغلب على زمن الدور في واجهة المستخدم العابرة. يفتح الإجراء المحظور أو الفاشل تبقى في سياق المشغّل حتى ينجح إجراء لاحق، لذا يتولى المشغّل نفسه التعافي دون وكيل إصلاح منفصل. يتحقق للقراءة فقط من نقاط تفتيش الخطة ويجري مراجعة نهائية عند الخروج مقابل الهدف الأصلي (: / (افتراضي) / / )، وتحصل تعديلات معالم الخطة على مراجعة استشارية. يتعامل مع سير عمل طويل الأمد يزيد عن 100 خطوة، ومراقبة ، وتقرير مكتوب اختياري.نرحب بالمساهمات بحرارة!
هذا المشروع مرخّص بموجب Apache License 2.0.
يتضمن هذا المشروع شفرة مصدرية مطوّرة بواسطة Minitap, Inc..
|
1. إدخال الأمر (إرسال المهمة) صِف سيناريو الاختبار والمقاييس المستهدفة في Antigravity
|
2. توليد خطة الاختبار يصوغ خطة اختبار خطوة بخطوة وهيكلية للمراجعة
|
|
3. تنفيذ الاختبار الذاتي يشغّل جهازًا حقيقيًا، ويتنقل في الواجهة، ويحلل الأداء
|
4. التقرير النهائي يقدّم نتائج تدقيق منظمة وجداول مقاييس ومجموعات بيانات خام
|
إذا كنت تفضل الإعداد يدويًا، شغّل uv run artemis mcp --generate-config <client> (على سبيل المثال، codex أو antigravity) لإخراج مقتطف TOML أو JSON المناسب. استبدل /path/to/artemis بمسار المستودع الفعلي لديك ووجّه command إلى ملف Python التنفيذي في .venv:
~/.codex/config.toml):[mcp_servers.artemis]
command = "/path/to/artemis/.venv/bin/python"
args = ["-m", "mcp_server"]
cwd = "/path/to/artemis"
[mcp_servers.artemis.env]
PYTHONUNBUFFERED = "1"
PYTHONPATH = "/path/to/artemis"
~/.gemini/jetski/mcp_config.json):{
"mcpServers": {
"artemis": {
"command": "/path/to/artemis/.venv/bin/python",
"args": ["-m", "mcp_server"],
"cwd": "/path/to/artemis",
"env": {
"PYTHONUNBUFFERED": "1"
},
"tools": {
"mobile_run_task": { "eager": true },
"mobile_manage_task": { "eager": true },
"mobile_get_device_state": { "eager": true },
"mobile_inspect_trace": { "eager": true },
"mobile_diagnose": { "eager": true }
}
}
}
}
claude_desktop_config.json):{
"mcpServers": {
"artemis": {
"command": "/path/to/artemis/.venv/bin/python",
"args": ["-m", "mcp_server"],
"cwd": "/path/to/artemis"
}
}
}
لضمان تصرف مساعد البرمجة بالذكاء الاصطناعي بصرامة مهندس اختبار جوال محترف وعدم اختلاق تفاعلات واجهة المستخدم، نوفر ملف قواعد مخصص لعقلية الاختبار في mcp_server/rules.md (يغطي الاستكشاف النشط قبل البرمجة، واستراتيجية التوجيه بين Flash وPro، وتعويض زمن الاستجابة والتوقيت، ونمط "الديناميكي أولاً، الإحداثيات كاحتياطي" لتحديد المواقع).
يمكنك تركيب أو نسخ mcp_server/rules.md إلى إعدادات القواعد في بيئة تطوير الذكاء الاصطناعي لديك:
rules.md إلى قواعد مساحة العمل، أو إعدادات القواعد العامة، أو تعليمات الوكيل.artemis mcp --install claude لتثبيت القواعد في ~/.claude/rules/artemis.md (ثبّتها في موقع واحد فقط — يحمّل Claude Code كلاً من ~/.claude/CLAUDE.md و~/.claude/rules/*.md، لذا فإن تكرار القواعد يهدر السياق)..cursorrules أو أنشئ ملف قواعد في .cursor/rules/artemis.mdc.~/.codex/AGENTS.md (أو AGENTS.override.md النشط).لمزيد من التفاصيل حول عقلية الاختبار وهيكلية MCP، راجع MCP Server README.
في Codex أو Antigravity أو Claude Code، ما عليك سوى كتابة:
"ابنِ أحدث التغييرات في APK، وثبّته على الجهاز المتصل، وافتح شاشة تسجيل الدخول بحساب اختبار، وتحقق من وجود أي نوافذ منبثقة غير متوقعة بعد تسجيل الدخول، وأعد لقطات شاشة للصفحة النهائية."
flashproultrapro.explorer.modeflash.explorer_modeconfig/artemis.jsonc--explorer-pro-mode--verification-levelofffinalcheckpointsstrict[Loop:continuous]