Potato مقابل LangSmith وLangfuse في تقييم الوكلاء: مقارنة عملية
قارن بين Potato وLangSmith وLangfuse وLabelbox وScale AI في تقييم الوكلاء: تصيير التتبعات، والتعليق لكل خطوة وللأنظمة متعددة الوكلاء، ومراجعة الوكلاء متعددي الوسائط، ووكلاء البرمجة، والمراقبة المباشرة، والتسعير، والاستضافة الذاتية.
ثلاث أدوات وثلاث فلسفات
يتقاطع Potato وLangSmith وLangfuse كلها مع تقييم الوكلاء، لكن كل واحدة تنطلق من نقطة بداية مختلفة:
- Potato يبدأ من التعليق التوضيحي. بُني لجمع أحكام بشرية مبنيّة على مخرجات الذكاء الاصطناعي، ثم وُسّع ليدعم تتبعات الوكلاء وفروق الكود والمراقبة المباشرة. وقوته في عمق مخططات التعليق فيه وقابليتها للتهيئة.
- LangSmith يبدأ من الرصد. بُني لتجهيز تطبيقات LangChain وتتبعها وتنقيحها في الإنتاج. أما ميزات التعليق فجاءت لاحقاً لدعم سير عمل التقييم داخل منظومة LangChain.
- Langfuse رصد مفتوح المصدر. يغطي التتبع وإدارة التوجيهات والتقييم لأي تطبيق يعتمد على نماذج لغوية. وميزات التعليق فيه تعمل، لكنها ثانوية بالنسبة إلى المراقبة.
لا واحدة منها أفضل على الإطلاق. الاختيار الصحيح يعتمد على ما إذا كنت تحتاج أساساً إلى التعليق أو إلى الرصد أو إليهما معاً، وعلى ما إذا كنت ملتزماً بمنظومة إطار عمل بعينه.
مقارنة الميزات
يقارن الجدول أدناه القدرات ذات الصلة بتقييم وكلاء الذكاء الاصطناعي. وأدرجنا معها Label Studio وArgilla وScale AI، لأن الفرق كثيراً ما توازن بينها أيضاً.
| الميزة | Potato | LangSmith | Langfuse | Label Studio | Argilla | Scale AI |
|---|---|---|---|---|---|---|
| الغرض الأساسي | التعليق التوضيحي | الرصد | الرصد | التعليق التوضيحي | التعليق التوضيحي | التعليق التوضيحي |
| دعم صيغ التتبعات | 15 صيغة | LangChain أصلياً | Langfuse SDK | لا يوجد | لا يوجد | مخصص |
| التعليق لكل خطوة | كامل (trajectory_eval) | درجة وتعليق لكل span | درجات مبنيّة على مستوى span | نعم (استيراد التتبعات) | أدوار المحادثة فقط | مخصص |
| مراقبة الوكيل في الوقت الفعلي | نعم | لا | لا | لا | لا | لا |
| إيقاف الوكيل واستئنافه وتولّي زمامه | نعم | لا | لا | لا | لا | لا |
| تصيير فروق الكود | نعم (diff موحّد وإبراز صياغي) | لا | لا | لا | لا | لا |
| تصيير مخرجات الطرفية | نعم (دعم ألوان ANSI) | لا | جزئي | لا | لا | لا |
| جمع بيانات PRM | نعم (وسوم صحة على مستوى الخطوة) | لا | لا | لا | لا | لا |
| مراجعة كود بتعليقات مضمّنة | نعم (على مستوى السطر ومصنّفة) | لا | لا | لا | لا | لا |
| المقارنة الثنائية | 3 أوضاع (جنباً إلى جنب، تسلسلي، أعمى) | محدودة (وضع واحد) | لا | لا | نعم (وضع واحد) | نعم (وضع واحد) |
| معايير تقييم متعددة الأبعاد | نعم (أبعاد وسلالم قابلة للتهيئة) | لا | لا | لا | جزئي | نعم |
| تصنيف الأخطاء | هرمي وقابل للتهيئة | لا | تهيئة درجات تصنيفية | لا | لا | مخصص |
| تقدير الخطورة | نعم (موزون، بدرجة جارية) | لا | درجات عددية فقط | لا | لا | مخصص |
| مخطط تفاعل متعدد الوكلاء (قابل للتحرير من المعلّق) | نعم | لا | عرض بصري فقط ¹ | لا | لا | لا |
| إسناد الأخطاء عبر الوكلاء | نعم | لا | حل التفافي فقط | لا | لا | مُدار فقط |
| مراجعة التسليم (كائن من الدرجة الأولى) | نعم | لا | لا | لا | لا | لا |
| بطاقة تقييم لكل وكيل ولكل فريق | نعم | لا | لا | لا | لا | لا |
| مسار استخدام الحاسوب (ربط النقرات بالمواضع) | نعم | لا | لا | أدوات صور عامة | لا | مجموعة بيانات مُدارة ² |
| الصوت مزدوج الاتجاه (تقدير المقاطعة) | نعم | لا | تشغيل فقط | لا | لا | قائم على الأدوار فقط ³ |
| الربط الزمني في الفيديو (IoU مباشر) | نعم | لا | لا | IoU بين المعلّقين فقط | لا | لا |
| استضافة ذاتية | نعم (كاملة) | في الطبقة المؤسسية فقط | نعم (مفتوح المصدر) | نعم (مفتوح المصدر) | نعم (مفتوح المصدر) | VPC (مؤسسي) |
| مجاني | نعم (مفتوح المصدر بالكامل) | لا (الطبقة المجانية محدودة) | جزئياً (النواة مفتوحة المصدر) | جزئياً (النواة مفتوحة المصدر) | نعم (مفتوح المصدر) | لا |
| الارتباط بإطار عمل | لا يوجد | منظومة LangChain | لا يوجد | لا يوجد | لا يوجد | لا يوجد |
¹ تعرض ميزة Agent Graphs في Langfuse (تجريبية) تشغيلاً متعدد الوكلاء على هيئة مخطط، لكن بوصفه عرضاً تنقيحياً للقراءة فقط، ولا توجد طريقة موثّقة تتيح للمعلّق تعليم المسار الحرج أو الإشارة إلى حواف فيه. ² تعلّق Scale AI على مسارات واجهات المستخدم واستخدام الحاسوب ضمن ارتباط بيانات مُدار (مثل عملها على CUA-Suite في CVAT)، لا بوصفها ميزة ذاتية الخدمة تهيّئها بنفسك. ³ ميزة Voice Showdown من Scale قائمة على الأدوار، أما تقدير المقاطعة والتداخل في الصوت مزدوج الاتجاه فمدرج بوصفه مخططاً له لا متاحاً بعد (حتى 2026-03-20).
رُصدت المقارنة في 2026-06-24 مقابل LangSmith (docs.langchain.com) وLangfuse (نواة MIT بإصدار مستمر) وLabel Studio 1.23.0 وArgilla 2.8.0 وصفحات منتجات Scale AI. تتطور هذه الأدوات بسرعة، فإن كان شيء هنا قد تقادم فالتصويبات مرحّب بها على مستودع GitHub.
من بين هذه الأدوات، Potato وحده يصيّر تتبعات وكلاء البرمجة بتنسيق diff صحيح:
عرض CodingTraceDisplay في Potato مع تصيير diff موحّد وإبراز صياغي وشجرة ملفات
دعم صيغ التتبعات بالتفصيل
من أكبر الفروق العملية عدد صيغ تتبعات الوكلاء التي تدعمها كل أداة أصلياً.
يتضمن Potato محوّلات لثلاث عشرة صيغة:
# See all available converters
python -m potato.trace_converter --list-formats
# Available formats:
# react - ReAct-style (Thought/Action/Observation)
# openai - OpenAI Chat Completions and Assistants API
# anthropic - Anthropic Messages API with tool_use
# langchain - LangChain / LangSmith run trace exports
# langfuse - Langfuse observation and trace exports
# multi_agent - CrewAI, AutoGen, and LangGraph multi-agent logs
# swebench - SWE-bench benchmark traces
# swe_agent_trajectory - SWE-Agent trajectory files
# claude_code - Claude Code and coding-agent session logs
# aider - Aider chat histories with edit blocks
# webarena - WebArena / VisualWebArena episode traces
# web_agent - Mind2Web, Computer Use, and raw browser recordings
# mcp - Model Context Protocol interaction logs
# otel - OpenTelemetry / OTLP trace exports
# atif - Agent Trace Interchange Formatلا يوجد محوّل منفصل باسم langsmith: تمرّ صادرات LangSmith عبر langchain، ويمرّ AutoGen وCrewAI عبر multi_agent. إن لم يكن إطارك ضمن القائمة، فسيحاول --auto-detect اختيار محوّل من بصمات الحقول، ويمكنك كتابة محوّلك الخاص باشتقاق BaseTraceConverter.
يعمل LangSmith أصلياً مع تتبعات LangChain. فإن كان وكيلك مبنياً على LangChain أو LangGraph، تتدفق التتبعات إليه تلقائياً. وإن لم يكن كذلك، فعليك تجهيز كودك يدوياً بـ LangSmith SDK أو تحويل تتبعاتك إلى صيغة LangSmith.
ويعمل Langfuse أصلياً مع التتبعات المجهّزة عبر Langfuse SDK. وهو يدعم Python وJavaScript، وله تكاملات مع LangChain وLlamaIndex وOpenAI. وشأنه شأن LangSmith، يتطلب التجهيز على مستوى الكود بدل تحويل التتبعات بعد وقوعها.
استيراد تتبعات LangSmith أو Langfuse إلى Potato
إن كانت لديك تتبعات في LangSmith أو Langfuse وتريد استخدام ميزات التعليق في Potato، فالمحوّلات تتكفل بذلك:
# Export from LangSmith and convert
python -m potato.trace_converter \
--input langsmith_export.jsonl \
--output data/traces.jsonl \
--input-format langchain
# Export from Langfuse and convert
python -m potato.trace_converter \
--input langfuse_traces.json \
--output data/traces.jsonl \
--input-format langfuseفيمكنك إذن الإبقاء على LangSmith أو Langfuse لمراقبة الإنتاج، وجلب التتبعات إلى Potato حين تريد تقييماً بشرياً مفصلاً.
التعليق لكل خطوة: حيث تتسع الفجوة أكثر
أهم فرق في القدرات هو عمق التعليق لكل خطوة.
يوفر Potato مخطط trajectory_eval مع:
- وسوم صحة على مستوى الخطوة (صحيح/خاطئ)
- اختيار من تصنيف هرمي للأخطاء
- مستويات خطورة بأوزان قابلة للتهيئة
- درجة جارية تتحدث مع كل خطوة
- مسوّغ نصي حر لكل خطوة
- وكل هذا قابل للتهيئة عبر YAML
# Potato: rich per-step annotation
annotation_schemes:
- annotation_type: "trajectory_eval"يتيح لك LangSmith إرفاق درجة عددية أو وسم تصنيفي بكل تشغيل داخل التتبع. وهذا مفيد لتتبع الجودة على نحو أساسي، لكنه لا يدعم تصنيفات الأخطاء ولا وزن الخطورة ولا الدرجات الجارية. ولا توجد واجهة مدمجة للمراجعة خطوة بخطوة؛ إذ تعطي الدرجات من عرض تفاصيل التتبع.
ويدعم Langfuse التقدير على مستوى التتبع وعلى مستوى الرصدة (span)، وتتيح لك تهيئات الدرجات التصنيفية فيه تعريف مجموعة وسوم ثابتة -- أي تصنيف أخطاء قابل للاستعمال -- وإرفاق عدة درجات مسمّاة بالـ span نفسه. أما ما لا يوفره مخططاً من الدرجة الأولى فهو التصنيف الهرمي أو الدرجة الجارية الموزونة بالخطورة التي تتراكم عبر الخطوات؛ إذ تركّب ذلك بنفسك من تهيئات درجات مسطّحة.
فالصيغة الأمينة للفجوة أضيق مما كانت: إذ يقوم كل من Langfuse وLabel Studio (الذي صار يستورد تتبعات LangGraph وCrewAI وAutoGen للمراجعة خطوة بخطوة) بتقدير مبنيّ لكل خطوة. وما يبقى Potato مبنياً له خصيصاً هو التركيبة: تصنيف هرمي للأخطاء مع أوزان خطورة مع درجة جارية في مخطط trajectory_eval واحد، وهو ما تريده لبناء بيانات تدريب PRM أو لتحديد أول موضع يخطئ فيه الوكيل.
دعم وكلاء البرمجة
تقييم وكلاء البرمجة (Claude Code وAider وSWE-Agent وDevin وOpenHands) يعني تصيير فروق الكود ومخرجات الطرفية حتى تمضي المراجعة بسرعة. وهنا يتقدم Potato على غيره.
يصيّر Potato:
- فروقاً موحّدة بإبراز أحمر/أخضر وإبراز صياغي
- مخرجات طرفية مع دعم رموز ألوان ANSI
- تعليقات مضمّنة في الـ diff مرتبطة بأسطر بعينها
- تقييمات جودة على مستوى الملف
- أحكام موافقة/طلب تعديل على طريقة الـ PR
يعرض LangSmith مدخلات نداءات الأدوات ومخرجاتها بصيغة JSON منسّقة. وتظهر فروق الكود نصاً خاماً داخل مخرجات الأدوات. ولا يوجد تصيير للـ diff ولا إبراز صياغي ولا تعليق مضمّن.
ويعرض Langfuse كذلك بيانات التتبع بصيغة JSON مبنيّة. ويظهر محتوى الكود نصاً عادياً. ولا تصيير متخصصاً للفروق أو لمخرجات الطرفية.
مع وكلاء البرمجة، يغيّر هذا يوم المراجع. فمراجعة diff من خمسين سطراً في عرض diff موحّد مع إبراز صياغي وتعليق مضمّن تستغرق جزءاً يسيراً من الوقت الذي تستغرقه قراءة الـ diff نفسه على هيئة سلسلة JSON.
وتتضمن تتبعات وكلاء الويب لقطات شاشة مع طبقات SVG وتصفحاً بشريط الصور:
عارض تتبعات وكلاء الويب يعرض لقطات شاشة مع طبقات إجراءات SVG وتصفح بشريط الصور
المراقبة المباشرة للوكيل
يستطيع Potato مراقبة وكيل قيد التشغيل في الوقت الفعلي، وهو ما لا يفعله LangSmith ولا Langfuse في سير عمل التعليق لديهما.
في وضع المراقبة المباشرة في Potato، يمكن للمعلّق أن يشاهد الوكيل يعمل خطوة خطوة، وأن يوقفه ليراجع حالته الراهنة، وأن يستأنفه بعد ذلك، وأن يتولى زمام الجلسة ليصحح المسار أو ينهي المهمة بنفسه.
وهذا يفيد في مواضع عدة: إيقاف الوكيل قبل أن يفعل شيئاً مدمّراً (السلامة)، وتسجيل تصحيحات البشر بوصفها بيانات إيضاح (التدريب)، ورؤية كيف يستجيب الوكيل حين تتدخل في منتصف عمله (التقييم التفاعلي).
# Enable live observation in Potato config
live_observation:
enabled: true
agent_endpoint: "http://localhost:5000/agent"
allow_pause: true
allow_takeover: true
auto_pause_on:
- action_type: "delete"
- action_type: "execute"
- confidence_below: 0.3أما LangSmith وLangfuse فمصممان لتحليل التتبعات المكتملة بعد وقوعها، لا للتفاعل الآني مع وكلاء قيد التشغيل.
المقارنة الثنائية
مقارنة مخرجين لوكيلين جنباً إلى جنب نمط تقييم شائع، خصوصاً في اختبار A/B لإصدارات النماذج أو في مقارنة معماريات الوكلاء.
يوفر Potato ثلاثة أوضاع للمقارنة:
- جنباً إلى جنب: التتبعان ظاهران في وقت واحد مع تمرير متزامن
- تسلسلي: تشاهد التتبع A أولاً ثم التتبع B ثم تحكم
- أعمى: يُوسم التتبعان عشوائياً بـ A وB من دون نسبة إلى نموذج
annotation_schemes:
- annotation_type: "pairwise"يدعم LangSmith مقارنة ثنائية أساسية عبر «عرض المقارنة» في تجارب التقييم. ويمكنك مقارنة تشغيلات عبر إصدارات نماذج مختلفة، لكن الواجهة مصممة لفحص التشغيلات جنباً إلى جنب لا لتعليق تفضيل مبنيّ.
ولا يملك Langfuse ميزة مدمجة للمقارنة الثنائية في التعليق.
متى تستخدم كل أداة
استخدم Potato حين:
- التعليق التوضيحي هدفك الأساسي: تحتاج إلى أحكام بشرية مبنيّة لا إلى مراقبة فقط
- تحتاج إلى دعم وكلاء البرمجة: تصيير الفروق والتعليقات المضمّنة وعرض مخرجات الطرفية
- تجمع بيانات تدريب PRM: وسوم صحة على مستوى الخطوة مع درجات جارية
- تحتاج إلى استضافة ذاتية: تبقى البيانات على بنيتك التحتية من دون اعتماد على السحابة
- تعمل مع أطر وكلاء متعددة: 15 محوّل صيغ تتبع مقابل الارتباط بإطار واحد
- تحتاج إلى مخططات تقييم غنية: تقييم المسار، والتقييم بمعايير، ومراجعة الكود، والمقارنة الثنائية
- الميزانية قيد: مجاني ومفتوح المصدر بالكامل
استخدم LangSmith حين:
- تستخدم LangChain/LangGraph أصلاً: تتدفق التتبعات تلقائياً من دون تهيئة
- مراقبة الإنتاج حاجتك الأساسية: تتبع في الوقت الفعلي، وتتبع لزمن الاستجابة، ومراقبة للتكلفة
- التعليق ثانوي: تحتاج إلى تقدير وتغذية راجعة أساسيين لا إلى مخططات تقييم عميقة
- تريد خدمة مُدارة: لا بنية تحتية تصونها
- فريقك صغير: قد تكفي الطبقة المجانية لتقييم خفيف
استخدم Langfuse حين:
- تحتاج إلى رصد مفتوح المصدر: مراقبة وتتبع باستضافة ذاتية
- تستخدم مزودي نماذج متعددين: تكاملات جيدة مع OpenAI وAnthropic وLangChain وLlamaIndex
- التعليق ليس حالة استخدامك الأساسية: التقدير متاح لكنه ليس محور الأداة
- تريد إدارة التوجيهات إلى جانب التتبع: يجمع Langfuse بين إصدارات التوجيهات والرصد
- تحتاج إلى بديل مجاني لـ LangSmith في المراقبة: تغطي نواة Langfuse مفتوحة المصدر معظم احتياجات المراقبة
المقاربة التكاملية: الرصد مع التعليق
في كثير من الفرق، الإعداد العملي هو تشغيل أداة رصد (LangSmith أو Langfuse) لمراقبة الإنتاج وPotato للتقييم البشري المفصل. ويبدو سير العمل هكذا:
- جهّز وكيلك بـ LangSmith أو Langfuse لتتبع الإنتاج
- اختر عينة من التتبعات التي تحتاج إلى مراجعة بشرية (الإخفاقات والحالات الحدية والعينات العشوائية)
- صدّر تلك التتبعات من أداة الرصد لديك
- حوّلها واستوردها إلى Potato باستخدام المحوّلات المدمجة
- شغّل التقييم البشري بمخططات التعليق الغنية في Potato
- أعد النتائج إلى دورة التطوير لديك
# Example: convert failed traces exported from Langfuse and import to Potato
python -m potato.trace_converter \
--input langfuse_failed_traces.json \
--output data/traces_to_review.jsonl \
--input-format langfuseفتحصل بذلك على الرؤية الآنية التي تعطيها منصة رصد، إلى جانب عمق التعليق في أداة بُنيت للتعليق.
ملخص أوجه التمايز
في اثنين من هذه الأوجه تكون الدعوى أقوى ما تكون. فمن بين كل أداة استعرضناها (تجارية ومفتوحة المصدر)، Potato وحده يوفر واجهات قابلة لتهيئة المعلّق لبنية الفرق متعددة الوكلاء ولمراجعة الوكلاء متعددي الوسائط:
- مخطط تفاعل متعدد الوكلاء قابل للنقر والتحرير من المعلّق -- تعلّم فيه المسار الحرج، وتشير إلى التسليم الفاشل. وأقرب ما يوجد في غيره، وهو Agent Graphs في Langfuse، عرض تنقيحي للقراءة فقط.
- إسناد الأخطاء عبر الوكلاء، ومراجعة التسليم بوصفها كائناً من الدرجة الأولى، وبطاقات تقييم لكل وكيل ولكل فريق، وخط زمني لتنازع الأدوات، ووسم السلوك الناشئ -- ولا شيء من ذلك تقدمه الأدوات الأخرى بوصفه بنية تعليق مدمجة.
- مسارات استخدام الحاسوب مع ربط النقرات بالمواضع، وخطوط زمنية للصوت مزدوج الاتجاه مع تقدير المقاطعة، وربط زمني في الفيديو مع IoU مباشر. تقوم Scale AI بربط عناصر الواجهة وبتقييم الصوت، لكن ضمن ارتباطات بيانات مُدارة، وساحة الصوت لديها ما زالت قائمة على الأدوار.
وفوق ذلك، يبقى Potato الأداة المجانية ذات الاستضافة الذاتية الوحيدة التي تجمع بين تصيير فروق وكلاء البرمجة مع التعليقات المضمّنة، وجمع بيانات PRM، والمراقبة المباشرة مع الإيقاف والاستئناف وتولّي الزمام، واستيعاب التتبعات من أي إطار عمل، وتصنيف هرمي للأخطاء بدرجة جارية موزونة بالخطورة، وثلاثة أوضاع للمقارنة الثنائية، ومراجعة كود على طريقة الـ PR.
ولا نعلم أداة أخرى، مفتوحة المصدر أو تجارية، تجمع هذا كله -- وقد تحققنا من ذلك مقابل LangSmith وLangfuse وLabelbox وScale AI وLabel Studio وArgilla وBraintrust حتى 2026-06-24 (انظر الحاشية المؤرَّخة تحت جدول المقارنة). LangSmith وLangfuse أداتا رصد قويتان، لكن ميزات التعليق فيهما درجات محصورة بالـ span لا واجهات لبنية الوكلاء. وLabel Studio وArgilla أداتا تعليق عامتان؛ أضاف Label Studio استيراد التتبعات، لكن أياً منهما لا يقدم واجهات تعدد الوكلاء أو الوكلاء متعددي الوسائط المذكورة أعلاه. وتقدم Labelbox وScale منتجات بيانات لتقييم الوكلاء، لكن بوصفها خدمات مدفوعة سحابية أو مُدارة لا أداة باستضافة ذاتية يستطيع فريق بحثي تشغيلها وتخصيصها.
إن كان هدفك أن تفهم كيف ينجح وكلاؤك ولماذا يفشلون، وأن تجمع بيانات التدريب التي تحسّنهم، فإن Potato يغطي فجوة يتركها غيره مفتوحة.
مسارات الانتقال
من LangSmith إلى Potato (للتعليق التوضيحي)
# 1. Export your dataset from LangSmith
langsmith export dataset my_eval_dataset -o langsmith_data.jsonl
# 2. Convert to Potato format
python -m potato.trace_converter \
--input langsmith_data.jsonl \
--output data/traces.jsonl \
--input-format langchain
# 3. Create your Potato config and start annotating
potato start config.yaml -p 8000من Langfuse إلى Potato (للتعليق التوضيحي)
# 1. Export traces from Langfuse via API
import requests
response = requests.get(
"https://cloud.langfuse.com/api/public/traces",
headers={"Authorization": "Bearer your_api_key"},
params={"limit": 500}
)
with open("langfuse_traces.json", "w") as f:
json.dump(response.json()["data"], f)# 2. Convert to Potato format
python -m potato.trace_converter \
--input langfuse_traces.json \
--output data/traces.jsonl \
--input-format langfuse
# 3. Start annotating
potato start config.yaml -p 8000من Label Studio أو Argilla (لتقييم الوكلاء)
إن كنت تستخدم حالياً Label Studio أو Argilla للتعليق العام وتريد إضافة قدرات تقييم الوكلاء، فبإمكان Potato أن يعمل إلى جانب أداتك الحالية. استخدم Label Studio أو Argilla لمهام التعليق غير المتعلقة بالوكلاء (استخراج الكيانات المسماة والتصنيف وغيرهما)، وPotato للتقييم الخاص بالوكلاء الذي يحتاج إلى تصيير التتبعات والتعليق لكل خطوة ومراجعة الكود.
الخلاصة
الاختيار بين Potato وLangSmith وLangfuse ليس عن أيها الأفضل تجريداً. بل يعتمد على ما تحتاج إليه أساساً:
- لمراقبة الوكلاء في الإنتاج، استخدم LangSmith أو Langfuse.
- لتقييم سلوك الوكلاء بتعليق بشري مبنيّ، استخدم Potato.
- وإن احتجت إلى الاثنين، شغّلهما معاً. فهما يكملان بعضهما.
السؤال الذي ينبغي طرحه هو هل هدفك الأساسي أن ترصد ما يفعله الوكلاء أم أن تقيّم مدى جودة ما يفعلونه. فإن كان التقييم، فـ Potato مبني لذلك.
للاطلاع على مقارنة أوفى جنباً إلى جنب، انظر وثائق المقارنة ودليل تقييم الوكلاء.