# केस स्टडी: Customer-Support Agent Team — LangGraph Agents और Multi-Agent Systems

Source: https://www.geekswithgeeks.com/hi/langgraph-agents/z-case

> अनुमोदन, स्मृति और सीमाओं वाली supervised team डिज़ाइन करें।

## डिज़ाइन

लक्ष्य: agents की टीम से support tickets सँभालना। **प्रवेश**: `classify` node (छोटा मॉडल) ticket को billing, technical या other label करता है। **Supervisor**: `Command(goto=...)` से workers को route करता है और `resolution` सेट होने पर या 8 चरणों बाद समाप्त करता है। **Workers**: *billing* (tools: `get_invoice`, `propose_refund`), *technical* (tools: `search_docs`, `get_account_status`), *writer* (सिर्फ़ सत्यापित तथ्यों से उत्तर का मसौदा)। **अनुमोदन**: सीमा से ऊपर का कोई भी refund मनुष्य के लिए `interrupt()` पर रुकता है, प्रस्तावित राशि और प्रमाण दिखाकर। **स्मृति**: session से `thread_id` वाला Postgres checkpointer; store ग्राहक की भाषा और plan रखता है; लंबे इतिहास सार के साथ trim होते हैं। **भरोसेमंदी**: tool nodes पर retry policy, state में error field जो मानव queue पर route करे, recursion limit 25, प्रति run लागत सीमा। **परीक्षण**: हर route और सीमा के लिए scripted-model tests; परिणाम, tool trajectory और सुरक्षा scored 100-ticket evaluation set; redaction के साथ tracing। **सुरक्षा**: `propose_refund` के अलावा न्यूनतम-विशेषाधिकार केवल-पढ़ने वाले tools, validated arguments, ticket पाठ डेटा के रूप में।

## सीमित, फिर शुरू होने योग्य, देखने-योग्य agent

State, routing, tools, memory, अनुमोदन और tests मिलकर भरोसेमंद agent system बनाते हैं।

![चार आदतें: सीमा, persist, अनुमोदन, परीक्षण।](assets/figures/langgraph-agents/section-8-map.svg) — चित्र 8.1 — सीमा, persist, अनुमोदन और परीक्षण।

## एक पन्ने पर डिज़ाइन

हर पंक्ति इस कोर्स के एक खंड से जुड़ती है।

```text
START -> classify -> supervisor <-> {billing, technical} -> writer -> supervisor -> END   (Sec 1, 2, 6)
billing.propose_refund -> interrupt() -> human approves / rejects                                    (Sec 5)
state: messages (add_messages), route, resolution, error, hops (counters)                            (Sec 1)
memory: Postgres checkpointer (thread_id from session) + store for language/plan; trim+summary       (Sec 4)
limits: step cap 8, recursion_limit 25, retry policy on tools, cost cap per run                       (Sec 2, 3, 5)
quality: scripted tests per route; 100-ticket eval (outcome + trajectory + safety); traces           (Sec 7)
```

**Quiz:** Refund चरण interrupt के पीछे क्यों है?

- [ ] Interrupts tools तेज़ करते हैं
- [x] यह महँगा और अपरिवर्तनीय है, इसलिए मनुष्य को अनुमोदित करना चाहिए
- [ ] Refunds मुफ़्त हैं
- [ ] State से बचने के लिए

*Answer:* यह महँगा और अपरिवर्तनीय है, इसलिए मनुष्य को अनुमोदित करना चाहिए. मानव अनुमोदन ग़लत या छेड़छाड़ की गई कार्रवाई का नुक़सान सीमित करता है।
