एजेंट मूल्यांकन के लिए Potato बनाम LangSmith और Langfuse: एक व्यावहारिक तुलना
एजेंट मूल्यांकन के लिए Potato की तुलना LangSmith, Langfuse, Labelbox और Scale AI से करें: ट्रेस रेंडरिंग, प्रति-चरण और बहु-एजेंट एनोटेशन, मल्टीमोडल-एजेंट समीक्षा, कोडिंग एजेंट, लाइव अवलोकन, क़ीमत, और सेल्फ़-होस्टिंग।
तीन टूल, तीन नज़रिए
Potato, LangSmith और Langfuse — तीनों एजेंट मूल्यांकन से जुड़े हैं, पर तीनों की शुरुआत अलग जगह से होती है:
- Potato पहले एनोटेशन टूल है। इसे AI आउटपुट पर संरचित मानवीय निर्णय जुटाने के लिए बनाया गया था, और बाद में इसमें एजेंट ट्रेस, कोडिंग diff और लाइव अवलोकन का समर्थन जोड़ा गया। इसकी ताक़त इसके एनोटेशन स्कीमा की गहराई और कॉन्फ़िगरेबिलिटी है।
- LangSmith पहले ऑब्ज़र्वेबिलिटी टूल है। इसे प्रोडक्शन में LangChain ऐप्लिकेशन को instrument करने, ट्रेस करने और डीबग करने के लिए बनाया गया था। इसकी एनोटेशन सुविधाएँ बाद में आईं, ताकि LangChain इकोसिस्टम के भीतर मूल्यांकन कार्यप्रवाह चल सकें।
- Langfuse ओपन-सोर्स ऑब्ज़र्वेबिलिटी है। यह किसी भी LLM ऐप्लिकेशन के लिए ट्रेसिंग, prompt प्रबंधन और मूल्यांकन कवर करता है। इसकी एनोटेशन सुविधाएँ काम करती हैं, पर मॉनिटरिंग के मुक़ाबले गौण हैं।
इनमें से कोई भी हर हाल में बेहतर नहीं है। सही चुनाव इस पर निर्भर करता है कि आपको मुख्य रूप से एनोटेशन चाहिए, ऑब्ज़र्वेबिलिटी, या दोनों, और आप किसी ख़ास फ़्रेमवर्क इकोसिस्टम से बँधे हैं या नहीं।
फ़ीचर तुलना
नीचे दी गई तालिका AI एजेंट मूल्यांकन से जुड़ी क्षमताओं की तुलना करती है। हमने Label Studio, Argilla और Scale AI को भी शामिल किया है, क्योंकि टीमें अक्सर उन्हें भी तौलती हैं।
| फ़ीचर | Potato | LangSmith | Langfuse | Label Studio | Argilla | Scale AI |
|---|---|---|---|---|---|---|
| मुख्य उद्देश्य | एनोटेशन | ऑब्ज़र्वेबिलिटी | ऑब्ज़र्वेबिलिटी | एनोटेशन | एनोटेशन | एनोटेशन |
| ट्रेस फ़ॉर्मैट समर्थन | 15 फ़ॉर्मैट | LangChain नेटिव | Langfuse SDK | कोई नहीं | कोई नहीं | कस्टम |
| प्रति-चरण एनोटेशन | पूरा (trajectory_eval) | प्रति-span स्कोर + टिप्पणी | span-स्तरीय संरचित स्कोर | हाँ (ट्रेस आयात) | सिर्फ़ चैट टर्न | कस्टम |
| असल समय में एजेंट अवलोकन | हाँ | नहीं | नहीं | नहीं | नहीं | नहीं |
| एजेंट pause/resume/takeover | हाँ | नहीं | नहीं | नहीं | नहीं | नहीं |
| कोड diff रेंडरिंग | हाँ (unified diff, सिंटैक्स हाइलाइटिंग) | नहीं | नहीं | नहीं | नहीं | नहीं |
| टर्मिनल आउटपुट रेंडरिंग | हाँ (ANSI रंग समर्थन) | नहीं | आंशिक | नहीं | नहीं | नहीं |
| PRM डेटा संग्रह | हाँ (चरण-स्तरीय शुद्धता लेबल) | नहीं | नहीं | नहीं | नहीं | नहीं |
| इनलाइन टिप्पणियों के साथ कोड समीक्षा | हाँ (पंक्ति-स्तरीय, श्रेणीबद्ध) | नहीं | नहीं | नहीं | नहीं | नहीं |
| जोड़ीदार तुलना | 3 मोड (साथ-साथ, क्रमिक, ब्लाइंड) | सीमित (1 मोड) | नहीं | नहीं | हाँ (1 मोड) | हाँ (1 मोड) |
| बहु-मानदंड रूब्रिक | हाँ (कॉन्फ़िगर करने योग्य आयाम, पैमाने) | नहीं | नहीं | नहीं | आंशिक | हाँ |
| एरर वर्गीकरण | पदानुक्रमित, कॉन्फ़िगर करने योग्य | नहीं | श्रेणीगत स्कोर कॉन्फ़िग | नहीं | नहीं | कस्टम |
| गंभीरता स्कोरिंग | हाँ (भारित, चलता स्कोर) | नहीं | सिर्फ़ संख्यात्मक स्कोर | नहीं | नहीं | कस्टम |
| बहु-एजेंट अंतःक्रिया ग्राफ़ (एनोटेटर द्वारा संपादन योग्य) | हाँ | नहीं | सिर्फ़ दृश्यीकरण ¹ | नहीं | नहीं | नहीं |
| अंतर-एजेंट विफलता श्रेय | हाँ | नहीं | सिर्फ़ जुगाड़ से | नहीं | नहीं | सिर्फ़ प्रबंधित सेवा में |
| हैंडऑफ़ समीक्षा (प्रथम-श्रेणी ऑब्जेक्ट) | हाँ | नहीं | नहीं | नहीं | नहीं | नहीं |
| प्रति-एजेंट + प्रति-टीम स्कोरकार्ड | हाँ | नहीं | नहीं | नहीं | नहीं | नहीं |
| कंप्यूटर-उपयोग ट्रैजेक्टरी (क्लिक ग्राउंडिंग) | हाँ | नहीं | नहीं | सामान्य इमेज टूल | नहीं | प्रबंधित डेटासेट ² |
| फ़ुल-डुप्लेक्स आवाज़ (barge-in स्कोरिंग) | हाँ | नहीं | सिर्फ़ प्लेबैक | नहीं | नहीं | सिर्फ़ टर्न-आधारित ³ |
| वीडियो कालिक ग्राउंडिंग (लाइव IoU) | हाँ | नहीं | नहीं | IoU सिर्फ़ एनोटेटरों के बीच | नहीं | नहीं |
| सेल्फ़-होस्टेड | हाँ (पूरी तरह) | सिर्फ़ एंटरप्राइज़ स्तर पर | हाँ (ओपन सोर्स) | हाँ (ओपन सोर्स) | हाँ (ओपन सोर्स) | VPC (एंटरप्राइज़) |
| मुफ़्त | हाँ (पूरी तरह ओपन सोर्स) | नहीं (मुफ़्त स्तर सीमित) | आंशिक (ओपन सोर्स कोर) | आंशिक (ओपन सोर्स कोर) | हाँ (ओपन सोर्स) | नहीं |
| फ़्रेमवर्क लॉक-इन | कोई नहीं | LangChain इकोसिस्टम | कोई नहीं | कोई नहीं | कोई नहीं | कोई नहीं |
¹ Langfuse का "Agent Graphs" (बीटा) बहु-एजेंट रन को ग्राफ़ के रूप में दिखाता है, पर सिर्फ़ पढ़ने-भर के डीबगिंग दृश्य के तौर पर — एनोटेटर के लिए उस पर क्रिटिकल पाथ चिह्नित करने या edge फ़्लैग करने का कोई प्रलेखित तरीक़ा नहीं है। ² Scale AI GUI/कंप्यूटर-उपयोग ट्रैजेक्टरी का एनोटेशन एक प्रबंधित डेटा सेवा के रूप में करता है (जैसे CVAT में उसका CUA-Suite काम), न कि ऐसे सेल्फ़-सर्व फ़ीचर के रूप में जिसे आप ख़ुद कॉन्फ़िगर कर सकें। ³ Scale का "Voice Showdown" टर्न-आधारित है; फ़ुल-डुप्लेक्स barge-in/ओवरलैप स्कोरिंग को नियोजित बताया गया है, अभी उपलब्ध नहीं (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 फ़ॉर्मैटिंग के साथ रेंडर करता है:
unified diff रेंडरिंग, सिंटैक्स हाइलाइटिंग और फ़ाइल ट्री के साथ Potato का CodingTraceDisplay
ट्रेस फ़ॉर्मैट समर्थन, विस्तार से
सबसे बड़े व्यावहारिक अंतरों में एक यह है कि हर टूल कितने एजेंट ट्रेस फ़ॉर्मैट को नेटिव रूप से समर्थित करता है।
Potato में 15 फ़ॉर्मैट के लिए कन्वर्टर शामिल हैं:
# 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 से ख़ुद instrument करना होगा या अपने ट्रेस LangSmith के फ़ॉर्मैट में बदलने होंगे।
Langfuse उन ट्रेस के साथ नेटिव रूप से काम करता है जिन्हें Langfuse SDK से instrument किया गया हो। यह Python और JavaScript का समर्थन करता है, और LangChain, LlamaIndex तथा OpenAI के साथ इंटीग्रेशन देता है। LangSmith की तरह इसमें भी बाद में ट्रेस बदलने के बजाय कोड-स्तर पर instrumentation चाहिए।
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) स्तर, दोनों पर स्कोरिंग का समर्थन करता है, और इसके श्रेणीगत score configs से आप एक तय लेबल सेट परिभाषित कर सकते हैं — यानी काम चलाऊ एरर वर्गीकरण — और एक ही span पर कई नामित स्कोर जोड़ सकते हैं। जो चीज़ यह प्रथम-श्रेणी स्कीमा के रूप में नहीं देता, वह है पदानुक्रमित वर्गीकरण या गंभीरता-भारित चलता स्कोर जो चरणों में जुड़ता जाए; वह आपको सपाट score configs से ख़ुद जोड़ना पड़ता है।
तो इस फ़ासले का ईमानदार रूप पहले से कम है: Langfuse और Label Studio (जो अब प्रति-चरण समीक्षा के लिए LangGraph/CrewAI/AutoGen ट्रेस आयात करता है) दोनों संरचित प्रति-चरण स्कोरिंग करते हैं। Potato जहाँ अब भी ख़ास तौर पर इसी काम के लिए बना है, वह है संयोजन — एक ही trajectory_eval स्कीमा में पदानुक्रमित एरर वर्गीकरण, गंभीरता भार और चलता स्कोर — और PRM प्रशिक्षण डेटा बनाने या यह पहचानने के लिए कि एजेंट पहली बार कहाँ ग़लत हुआ, यही चाहिए होता है।
कोडिंग एजेंट समर्थन
कोडिंग एजेंट (Claude Code, Aider, SWE-Agent, Devin, OpenHands) का मूल्यांकन करने का मतलब है कोड diff और टर्मिनल आउटपुट को इस तरह रेंडर करना कि समीक्षा तेज़ी से हो। यहीं Potato बाक़ियों से आगे निकलता है।
Potato यह रेंडर करता है:
- लाल/हरे हाइलाइटिंग और सिंटैक्स हाइलाइटिंग के साथ unified diff
- ANSI रंग कोड समर्थन के साथ टर्मिनल आउटपुट
- ख़ास पंक्तियों से जुड़ी इनलाइन diff टिप्पणियाँ
- फ़ाइल-स्तरीय गुणवत्ता रेटिंग
- PR-शैली के approve/request-changes निर्णय
LangSmith टूल कॉल के इनपुट और आउटपुट को फ़ॉर्मैट किए गए JSON के रूप में दिखाता है। कोड diff टूल आउटपुट के भीतर कच्चे टेक्स्ट स्ट्रिंग की तरह दिखते हैं। न diff रेंडरिंग है, न सिंटैक्स हाइलाइटिंग, न इनलाइन टिप्पणी।
Langfuse भी इसी तरह ट्रेस डेटा को संरचित JSON के रूप में दिखाता है। कोड सामग्री सादे टेक्स्ट में आती है। diff या टर्मिनल आउटपुट के लिए कोई विशेष रेंडरिंग नहीं है।
कोडिंग एजेंट के मामले में इससे समीक्षक का पूरा दिन बदल जाता है। सिंटैक्स-हाइलाइटेड unified diff दृश्य में इनलाइन टिप्पणी के साथ 50 पंक्तियों का 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.3LangSmith और Langfuse पूरे हो चुके ट्रेस के बाद के विश्लेषण के लिए बने हैं, चलते हुए एजेंट के साथ असल समय की अंतःक्रिया के लिए नहीं।
जोड़ीदार तुलना
दो एजेंट आउटपुट की साथ-साथ तुलना मूल्यांकन का आम तरीक़ा है, ख़ासकर मॉडल संस्करणों के A/B परीक्षण या एजेंट आर्किटेक्चर की तुलना के लिए।
Potato तीन तुलना मोड देता है:
- साथ-साथ: दोनों ट्रेस एक साथ दिखते हैं, स्क्रॉलिंग सिंक रहती है
- क्रमिक: पहले ट्रेस A देखें, फिर ट्रेस B, फिर फ़ैसला करें
- ब्लाइंड: ट्रेस को बेतरतीब ढंग से "A" और "B" लेबल मिलते हैं, मॉडल का नाम नहीं बताया जाता
annotation_schemes:
- annotation_type: "pairwise"LangSmith मूल्यांकन प्रयोगों में अपने "comparison view" के ज़रिए बुनियादी जोड़ीदार तुलना का समर्थन करता है। आप अलग-अलग मॉडल संस्करणों के रन की तुलना कर सकते हैं, पर इंटरफ़ेस संरचित प्रेफ़रेंस एनोटेशन के बजाय साथ-साथ रन जाँचने के लिए बना है।
Langfuse में एनोटेशन के लिए जोड़ीदार तुलना का कोई अंतर्निहित फ़ीचर नहीं है।
कौन-सा टूल कब इस्तेमाल करें
Potato तब चुनें जब:
- एनोटेशन आपका मुख्य लक्ष्य हो: आपको सिर्फ़ मॉनिटरिंग नहीं, संरचित मानवीय निर्णय चाहिए
- आपको कोडिंग एजेंट समर्थन चाहिए: diff रेंडरिंग, इनलाइन टिप्पणियाँ, टर्मिनल आउटपुट डिस्प्ले
- आप PRM प्रशिक्षण डेटा जुटा रहे हों: चलते स्कोर के साथ चरण-स्तरीय शुद्धता लेबल
- आपको सेल्फ़-होस्टिंग चाहिए: डेटा आपके अपने इन्फ़्रास्ट्रक्चर पर रहता है, क्लाउड पर निर्भरता नहीं
- आप कई एजेंट फ़्रेमवर्क के साथ काम करते हों: एक ही फ़्रेमवर्क के लॉक-इन के बजाय 15 ट्रेस फ़ॉर्मैट कन्वर्टर
- आपको भरे-पूरे मूल्यांकन स्कीमा चाहिए: ट्रैजेक्टरी eval, रूब्रिक eval, कोड समीक्षा, जोड़ीदार तुलना
- बजट एक बंदिश हो: पूरी तरह मुफ़्त और ओपन सोर्स
LangSmith तब चुनें जब:
- आप पहले से LangChain/LangGraph इस्तेमाल कर रहे हों: ट्रेस बिना किसी कॉन्फ़िगरेशन के अपने आप आते रहते हैं
- प्रोडक्शन मॉनिटरिंग आपकी मुख्य ज़रूरत हो: असल समय ट्रेसिंग, लेटेंसी ट्रैकिंग, लागत मॉनिटरिंग
- एनोटेशन गौण हो: आपको बुनियादी स्कोरिंग और फ़ीडबैक चाहिए, गहरे मूल्यांकन स्कीमा नहीं
- आपको प्रबंधित सेवा चाहिए: कोई इन्फ़्रास्ट्रक्चर बनाए रखने की ज़रूरत नहीं
- आपकी टीम छोटी हो: हल्के मूल्यांकन के लिए मुफ़्त स्तर काफ़ी पड़ सकता है
Langfuse तब चुनें जब:
- आपको ओपन-सोर्स ऑब्ज़र्वेबिलिटी चाहिए: सेल्फ़-होस्टेड मॉनिटरिंग और ट्रेसिंग
- आप कई LLM प्रदाता इस्तेमाल करते हों: OpenAI, Anthropic, LangChain और LlamaIndex के साथ अच्छे इंटीग्रेशन
- एनोटेशन आपका मुख्य उपयोग न हो: स्कोरिंग उपलब्ध है, पर केंद्र में नहीं
- आपको ट्रेसिंग के साथ prompt प्रबंधन भी चाहिए: Langfuse ऑब्ज़र्वेबिलिटी के साथ prompt वर्ज़निंग भी देता है
- आपको मॉनिटरिंग के लिए LangSmith का मुफ़्त विकल्प चाहिए: Langfuse का ओपन-सोर्स कोर ज़्यादातर मॉनिटरिंग ज़रूरतें पूरी करता है
पूरक तरीक़ा: ऑब्ज़र्वेबिलिटी + एनोटेशन
कई टीमों के लिए व्यावहारिक सेटअप यह है कि प्रोडक्शन मॉनिटरिंग के लिए एक ऑब्ज़र्वेबिलिटी टूल (LangSmith या Langfuse) चलाएँ और विस्तृत मानवीय मूल्यांकन के लिए Potato। कार्यप्रवाह कुछ ऐसा दिखता है:
- प्रोडक्शन ट्रेसिंग के लिए अपने एजेंट को LangSmith या Langfuse से instrument करें
- उन ट्रेस का नमूना लें जिनकी मानवीय समीक्षा चाहिए (विफलताएँ, किनारे के मामले, बेतरतीब नमूने)
- अपने ऑब्ज़र्वेबिलिटी टूल से वे ट्रेस निर्यात करें
- अंतर्निहित कन्वर्टर से उन्हें बदलकर 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 अकेला है जो बहु-एजेंट टीम संरचना और मल्टीमोडल-एजेंट समीक्षा के लिए एनोटेटर द्वारा कॉन्फ़िगर की जा सकने वाली सतहें देता है:
- क्लिक करने योग्य, एनोटेटर द्वारा संपादन योग्य बहु-एजेंट अंतःक्रिया ग्राफ़ — क्रिटिकल पाथ चिह्नित करें, ख़राब हैंडऑफ़ फ़्लैग करें। कहीं और इसके सबसे क़रीब, Langfuse का "Agent Graphs", सिर्फ़ पढ़ने-भर का डीबगिंग दृश्य है।
- अंतर-एजेंट विफलता श्रेय, प्रथम-श्रेणी ऑब्जेक्ट के रूप में हैंडऑफ़ समीक्षा, प्रति-एजेंट और प्रति-टीम स्कोरकार्ड, टूल-प्रतिस्पर्धा टाइमलाइन, और उभरते व्यवहार की टैगिंग — इनमें से कोई भी बाक़ी टूल अंतर्निहित एनोटेशन संरचना के रूप में नहीं देते।
- क्लिक ग्राउंडिंग के साथ कंप्यूटर-उपयोग ट्रैजेक्टरी, barge-in स्कोरिंग के साथ फ़ुल-डुप्लेक्स आवाज़ टाइमलाइन, और लाइव IoU के साथ वीडियो कालिक ग्राउंडिंग। Scale AI GUI ग्राउंडिंग और आवाज़ मूल्यांकन करता है, पर प्रबंधित डेटासेट सेवा के रूप में, और उसका आवाज़ अरीना अब भी टर्न-आधारित है।
इनके अलावा, Potato अब भी अकेला मुफ़्त, सेल्फ़-होस्टेड टूल है जो इनलाइन टिप्पणियों के साथ कोडिंग-एजेंट diff रेंडरिंग, PRM डेटा संग्रह, pause/resume/takeover के साथ लाइव अवलोकन, किसी भी फ़्रेमवर्क से ट्रेस लेना, गंभीरता-भारित चलते स्कोर के साथ पदानुक्रमित एरर वर्गीकरण, तीन जोड़ीदार तुलना मोड, और PR-शैली की कोड समीक्षा — इन सबको एक जगह जोड़ता है।
हमें कोई और टूल, ओपन सोर्स या व्यावसायिक, ऐसा नहीं मिला जो यह सब एक साथ देता हो — 2026-06-24 तक LangSmith, Langfuse, Labelbox, Scale AI, Label Studio, Argilla और Braintrust के मुक़ाबले जाँचा गया (तुलना तालिका के नीचे तारीख़ वाली टिप्पणी देखें)। 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 8000Langfuse से 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 8000Label Studio या Argilla से (एजेंट मूल्यांकन के लिए)
अगर आप अभी सामान्य एनोटेशन के लिए Label Studio या Argilla इस्तेमाल कर रहे हैं और एजेंट मूल्यांकन की क्षमता जोड़ना चाहते हैं, तो Potato आपके मौजूदा टूल के साथ-साथ चल सकता है। ग़ैर-एजेंट एनोटेशन कामों (NER, वर्गीकरण, आदि) के लिए Label Studio या Argilla इस्तेमाल करें और एजेंट-विशिष्ट मूल्यांकन के लिए Potato, जहाँ ट्रेस रेंडरिंग, प्रति-चरण एनोटेशन और कोड समीक्षा चाहिए।
निष्कर्ष
Potato, LangSmith और Langfuse में से चुनने का सवाल यह नहीं है कि सिद्धांत रूप में कौन सबसे अच्छा है। यह इस पर निर्भर करता है कि आपको मुख्य रूप से क्या चाहिए:
- प्रोडक्शन में एजेंट की निगरानी के लिए LangSmith या Langfuse इस्तेमाल करें।
- संरचित मानवीय एनोटेशन से एजेंट के व्यवहार का मूल्यांकन करने के लिए Potato इस्तेमाल करें।
- अगर दोनों चाहिए, तो दोनों साथ चलाएँ। ये एक-दूसरे के पूरक हैं।
पूछने लायक़ सवाल यह है कि आपका मुख्य लक्ष्य एजेंट जो करते हैं उसे देखना है, या यह आँकना कि वे उसे कितनी अच्छी तरह करते हैं। अगर मूल्यांकन है, तो Potato उसी के लिए बना है।
ज़्यादा विस्तृत साथ-साथ तुलना के लिए तुलना दस्तावेज़ और एजेंट मूल्यांकन गाइड देखें।