यह पृष्ठ अंग्रेज़ी से अनुवादित है। अंग्रेज़ी पृष्ठ पढ़ें
Zeyn दो तरफ़ के एजेंट के लिए बना है: वे एजेंट जो Zeyn ऐप लिखते हैं, और वे एजेंट जो चलते हुए ऐप को उपयोगकर्ता की ओर से इस्तेमाल करते हैं।
ऐप लिखने वाले एजेंट
जिस प्रोजेक्ट में एजेंट काम करता है उसके पास अपने नियम और टूल होते हैं:
AGENTS.mdऔरCLAUDE.mdकमांड, प्रोजेक्ट संरचना, भाषा के नियम और फ्रेमवर्क सूची बताते हैं।.mcp.jsonzeyn mcpपंजीकृत करता है, stdio पर MCP सर्वर, इन टूल के साथ:
| टूल | क्या करता है |
|---|---|
zeyn_docs | विषय के अनुसार फ्रेमवर्क संदर्भ: rules, language, protocol |
zeyn_describe | ऐप के feature, Screen, रूट, एक्सेस, API, समस्याएँ और छूटे अनुवाद |
zeyn_check | कंपाइल करता है और समस्याएँ बताता है; fix: true पहले नाम बदले गए API को फिर से लिखता है |
zeyn_test | cargo test चलाता है और आउटपुट का अंत लौटाता है |
zeyn_new_feature | feature फ़ोल्डर बनाता है और उसे पंजीकृत करता है |
कंपाइलर मुख्य रक्षक है। जो भी नियम वह लागू कर सकता है उसके लिए compile_fail टेस्ट और एजेंट के अमल करने लायक लिखा #[diagnostic::on_unimplemented] संदेश है, जैसे:
error[E0277]: `min()` and `max()` cannot be used on a `bool` column
= note: `min()` and `max()` work on i32, i64, Money, Date, Time, DateTime, LocalDateTime and their Option formsZEYN_DESCRIBE=1 cargo run वही विवरण छापता है जो zeyn_describe लौटाता है और बाहर निकल जाता है।
ऐप इस्तेमाल करने वाले एजेंट
App::new(t!("app.name")).mcp(Mcp::read_only())agents के साथ ऐप की Screen टूल बन जाती हैं:
- हर ग्रिड के लिए एक खोज टूल,
- हर फ़ॉर्म के लिए एक सेव टूल, जिसके स्कीमा के रूप में फ़ॉर्म के फ़ील्ड और नियम हैं (केवल
Mcp::read_write()के साथ)।
एजेंट इन तक दो तरह से पहुँचते हैं:
- ब्राउज़र में WebMCP (
document.modelContext.registerTool) से, जब ब्राउज़र इसका समर्थन करे। मौजूदा Screen के टूल उसके खुलते समय पंजीकृत होते हैं और बंद होने पर हटा दिए जाते हैं। - सर्वर पर
POST /_zeyn/mcp(JSON-RPC) पर। इसेAuthorizationहेडर चाहिए, इसलिए अकेला ब्राउज़र सत्र इसे कभी नहीं चला सकता।
लोगों जैसे ही नियम
- एजेंट को ठीक उस उपयोगकर्ता की अनुमतियाँ मिलती हैं जिसकी ओर से वह काम करता है। जिन Screen और action को उपयोगकर्ता नहीं खोल सकता, उनके टूल सूचीबद्ध नहीं होते।
- कॉल सामान्य कॉल के गार्ड, इंटरसेप्टर, सत्यापन और दर सीमाएँ चलाती हैं।
- ऑडिट रिकॉर्ड एजेंट की की गई कॉल को चिह्नित करते हैं, ताकि समीक्षक उन्हें अलग पहचान सके।
Mcp::read_only()एजेंट को खोजने देता है पर सहेजने नहीं।read_write()केवल उन ऐप के लिए चुनें जहाँ एजेंट को डेटा बदलना चाहिए।