> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
यह विनिर्देश ट्रस्टग्राफ एजेंटों के लिए एक टूल ग्रुपिंग सिस्टम को परिभाषित करता है जो विशिष्ट अनुरोधों के लिए कौन से टूल उपलब्ध हैं, इस पर बारीक नियंत्रण की अनुमति देता है। यह सिस्टम कॉन्फ़िगरेशन और अनुरोध-स्तरीय विनिर्देश के माध्यम से समूह-आधारित टूल फ़िल्टरिंग पेश करता है, जो एजेंट क्षमताओं के बेहतर सुरक्षा सीमाओं, संसाधन प्रबंधन और कार्यात्मक विभाजन को सक्षम करता है।
### 1. अवलोकन
#### 1.1 समस्या विवरण
वर्तमान में, ट्रस्टग्राफ एजेंटों के पास अनुरोध संदर्भ या सुरक्षा आवश्यकताओं की परवाह किए बिना, सभी कॉन्फ़िगर किए गए टूल तक पहुंच होती है। इससे कई चुनौतियाँ उत्पन्न होती हैं:
**सुरक्षा जोखिम**: संवेदनशील टूल (जैसे, डेटा संशोधन) रीड-ओनली प्रश्नों के लिए भी उपलब्ध हैं
**संसाधन बर्बादी**: जटिल टूल लोड किए जाते हैं, भले ही सरल प्रश्नों के लिए उनकी आवश्यकता न हो
**कार्यात्मक भ्रम**: एजेंट उपयुक्त टूल का चयन कर सकते हैं जब सरल विकल्प मौजूद हों
**मल्टी-टेनेन्ट अलगाव**: विभिन्न उपयोगकर्ता समूहों को अलग-अलग टूल सेट तक पहुंचने की आवश्यकता होती है
#### 1.2 समाधान अवलोकन
टूल ग्रुप सिस्टम निम्नलिखित पेश करता है:
1.**समूह वर्गीकरण**: टूल को कॉन्फ़िगरेशन के दौरान समूह सदस्यता के साथ टैग किया जाता है
2.**अनुरोध-स्तरीय फ़िल्टरिंग**: AgentRequest निर्दिष्ट करता है कि कौन से टूल समूह अनुमत हैं
3.**रनटाइम प्रवर्तन**: एजेंटों के पास केवल अनुरोधित समूहों से मेल खाने वाले टूल तक पहुंच होती है
4.**लचीला समूहीकरण**: जटिल परिदृश्यों के लिए टूल कई समूहों से संबंधित हो सकते हैं
### 2. स्कीमा परिवर्तन
#### 2.1 टूल कॉन्फ़िगरेशन स्कीमा संवर्धन
मौजूदा टूल कॉन्फ़िगरेशन को एक `group` फ़ील्ड के साथ बढ़ाया गया है:
**पहले:**
```json
{
"name": "knowledge-query",
"type": "knowledge-query",
"description": "Query the knowledge graph"
}
```
**इसके बाद:**
```json
{
"name": "knowledge-query",
"type": "knowledge-query",
"description": "Query the knowledge graph",
"group": ["read-only", "knowledge", "basic"]
}
```
**समूह क्षेत्र विनिर्देश:**
`group`: Array(String) - यह सूची उन समूहों की है जिनसे यह उपकरण संबंधित है।
**वैकल्पिक**: जिन उपकरणों में समूह क्षेत्र नहीं है, वे "डिफ़ॉल्ट" समूह से संबंधित होते हैं।
**बहु-सदस्यता**: उपकरण कई समूहों से संबंधित हो सकते हैं।
**केस-संवेदी**: समूह नाम सटीक स्ट्रिंग मिलान होते हैं।
#### 2.1.2 उपकरण स्थिति परिवर्तन संवर्धन
उपकरण वैकल्पिक रूप से स्थिति परिवर्तनों और स्थिति-आधारित उपलब्धता को निर्दिष्ट कर सकते हैं:
```json
{
"name": "knowledge-query",
"type": "knowledge-query",
"description": "Query the knowledge graph",
"group": ["read-only", "knowledge", "basic"],
"state": "analysis",
"available_in_states": ["undefined", "research"]
}
```
**राज्य क्षेत्र विनिर्देश:**
`state`: स्ट्रिंग - **वैकल्पिक** - सफल टूल निष्पादन के बाद जाने वाला राज्य
`available_in_states`: Array(String) - **वैकल्पिक** - उन राज्यों में जहां यह टूल उपलब्ध है
**डिफ़ॉल्ट व्यवहार:** `available_in_states` के बिना टूल सभी राज्यों में उपलब्ध होते हैं
**राज्य परिवर्तन:** केवल सफल टूल निष्पादन के बाद होता है
#### 2.2 AgentRequest स्कीमा में सुधार
`trustgraph-base/trustgraph/schema/services/agent.py` में `AgentRequest` स्कीमा में सुधार किया गया है:
**वर्तमान AgentRequest:**
`question`: स्ट्रिंग - उपयोगकर्ता प्रश्न
`plan`: स्ट्रिंग - निष्पादन योजना (हटाया जा सकता है)
`state`: स्ट्रिंग - एजेंट राज्य
`history`: Array(AgentStep) - निष्पादन इतिहास
**सुधारे गए AgentRequest:**
`question`: स्ट्रिंग - उपयोगकर्ता प्रश्न
`state`: स्ट्रिंग - एजेंट निष्पादन स्थिति (अब सक्रिय रूप से टूल फ़िल्टरिंग के लिए उपयोग किया जाता है)
`history`: Array(AgentStep) - निष्पादन इतिहास
`group`: Array(String) - **नया** - इस अनुरोध के लिए अनुमत टूल समूह
**स्कीमा परिवर्तन:**
**हटाया गया:** `plan` फ़ील्ड अब आवश्यक नहीं है और इसे हटाया जा सकता है (मूल रूप से टूल विनिर्देश के लिए अभिप्रेत था)
**जोड़ा गया:** टूल समूह विनिर्देश के लिए `group` फ़ील्ड
**सुधारा गया:** `state` फ़ील्ड अब निष्पादन के दौरान टूल उपलब्धता को नियंत्रित करता है
**फ़ील्ड व्यवहार:**
**समूह फ़ील्ड:**
**वैकल्पिक:** यदि निर्दिष्ट नहीं है, तो डिफ़ॉल्ट रूप से ["default"] होता है
**प्रतिच्छेदन:** केवल वे टूल जो कम से कम एक निर्दिष्ट समूह से मेल खाते हैं, वे उपलब्ध हैं
**खाली सरणी:** कोई टूल उपलब्ध नहीं है (एजेंट केवल आंतरिक तर्क का उपयोग कर सकता है)
**वाइल्डकार्ड:** विशेष समूह "*" सभी टूल तक पहुंच प्रदान करता है
**राज्य फ़ील्ड:**
**वैकल्पिक:** यदि निर्दिष्ट नहीं है, तो डिफ़ॉल्ट रूप से "अपरिभाषित" होता है
**राज्य-आधारित फ़िल्टरिंग:** केवल वर्तमान राज्य में उपलब्ध टूल ही पात्र हैं
**डिफ़ॉल्ट राज्य:** "अपरिभाषित" राज्य सभी टूल की अनुमति देता है (समूह फ़िल्टरिंग के अधीन)
**राज्य परिवर्तन:** सफल निष्पादन के बाद टूल अपनी स्थिति बदल सकते हैं
संयुक्त समूह+राज्य फ़िल्टरिंग परिदृश्यों का परीक्षण करें
**कॉन्फ़िगरेशन सत्यापन:**
विभिन्न समूह और राज्य कॉन्फ़िगरेशन के साथ उपकरण लोडिंग का परीक्षण करें
अमान्य समूह और राज्य विनिर्देशों के लिए स्कीमा सत्यापन की जाँच करें
मौजूदा कॉन्फ़िगरेशन के साथ पिछड़े अनुकूलता का परीक्षण करें
राज्य संक्रमण परिभाषाओं और चक्रों को मान्य करें
#### 9.2 एकीकरण परीक्षण
**एजेंट व्यवहार:**
सत्यापित करें कि एजेंट केवल समूह+राज्य फ़िल्टर किए गए उपकरणों को ही देखते हैं
विभिन्न समूह संयोजनों के साथ अनुरोध निष्पादन का परीक्षण करें
एजेंट निष्पादन के दौरान राज्य संक्रमणों का परीक्षण करें
जब कोई उपकरण उपलब्ध न हो तो त्रुटि हैंडलिंग को मान्य करें
कई राज्यों के माध्यम से वर्कफ़्लो प्रगति का परीक्षण करें
**सुरक्षा परीक्षण:**
विशेषाधिकार वृद्धि रोकथाम का परीक्षण करें
ऑडिट ट्रेल की सटीकता को सत्यापित करें
उपयोगकर्ता अनुमतियों के साथ गेटवे एकीकरण का परीक्षण करें
#### 9.3 एंड-टू-एंड परिदृश्य
**राज्य वर्कफ़्लो के साथ मल्टी-टेनांट उपयोग:**
```
Scenario: Different users with different tool access and workflow states
Given: User A has "read-only" permissions, state "undefined"
And: User B has "write" permissions, state "analysis"
When: Both request knowledge operations
Then: User A gets read-only tools available in "undefined" state
And: User B gets write tools available in "analysis" state
And: State transitions are tracked per user session
And: All usage and transitions are properly audited
```
**कार्यप्रवाह स्थिति प्रगति:**
```
Scenario: Complete workflow execution
Given: Request with groups ["knowledge", "compute"] and state "undefined"
When: Agent executes knowledge-query tool (transitions to "analysis")
And: Agent executes complex-analysis tool (transitions to "results")
And: Agent executes reset-workflow tool (transitions to "undefined")
Then: Each step has correctly filtered available tools
And: State transitions are logged with timestamps
And: Final state allows initial workflow to repeat
```
### 10. प्रदर्शन संबंधी विचार
#### 10.1 टूल लोडिंग का प्रभाव
**कॉन्फ़िगरेशन लोडिंग:**
समूह और स्थिति मेटाडेटा स्टार्टअप पर एक बार लोड होता है
प्रति टूल न्यूनतम मेमोरी ओवरहेड (अतिरिक्त फ़ील्ड)
टूल इनिशियलाइज़ेशन समय पर कोई प्रभाव नहीं
**अनुरोध प्रसंस्करण:**
समूह+स्थिति फ़िल्टरिंग एक बार प्रति अनुरोध होती है
O(n) जटिलता, जहाँ n = कॉन्फ़िगर किए गए टूल की संख्या
राज्य परिवर्तन न्यूनतम ओवरहेड जोड़ते हैं (स्ट्रिंग असाइनमेंट)
विशिष्ट टूल गणना के लिए नगण्य प्रभाव (<100)
#### 10.2 अनुकूलन रणनीतियाँ
**पूर्व-गणना किए गए टूल सेट:**
समूह+स्थिति संयोजन द्वारा टूल सेट को कैश करें
सामान्य समूह/स्थिति पैटर्न के लिए बार-बार फ़िल्टरिंग से बचें
बार-बार उपयोग किए जाने वाले संयोजनों के लिए मेमोरी बनाम गणना का समझौता
**लेज़ी लोडिंग:**
केवल आवश्यकता पड़ने पर टूल कार्यान्वयन लोड करें
कई टूल वाले डिप्लॉयमेंट के लिए स्टार्टअप समय कम करें
समूह आवश्यकताओं के आधार पर गतिशील टूल पंजीकरण
### 11. भविष्य के सुधार
#### 11.1 गतिशील समूह असाइनमेंट
**संदर्भ-जागरूक समूहीकरण:**
अनुरोध संदर्भ के आधार पर टूल को समूहों में असाइन करें
समय-आधारित समूह उपलब्धता (केवल व्यावसायिक घंटों के दौरान)
लोड-आधारित समूह प्रतिबंध (कम उपयोग के दौरान महंगे टूल)
#### 11.2 समूह पदानुक्रम
**नेस्टेड समूह संरचना:**
```json
{
"knowledge": {
"read": ["knowledge-query", "entity-search"],
"write": ["graph-update", "entity-create"]
}
}
```
#### 11.3 उपकरण अनुशंसाएँ
**समूह-आधारित सुझाव:**
अनुरोध प्रकारों के लिए इष्टतम उपकरण समूहों का सुझाव दें
अनुशंसाओं को बेहतर बनाने के लिए उपयोग पैटर्न से सीखें
जब पसंदीदा उपकरण उपलब्ध न हों तो वैकल्पिक समूहों का प्रावधान करें
### 12. खुले प्रश्न
1.**समूह सत्यापन**: क्या अनुरोधों में अमान्य समूह नामों के कारण हार्ड विफलताएँ या चेतावनियाँ आनी चाहिए?
2.**समूह खोज**: क्या सिस्टम उपलब्ध समूहों और उनके उपकरणों की सूची प्रदान करने के लिए एक एपीआई प्रदान करना चाहिए?
3.**गतिशील समूह**: क्या समूहों को रनटाइम पर या केवल स्टार्टअप पर ही कॉन्फ़िगर किया जाना चाहिए?
4.**समूह विरासत**: क्या उपकरणों को अपने मूल श्रेणियों या कार्यान्वयन से समूहों को विरासत में मिलना चाहिए?
5.**प्रदर्शन निगरानी**: समूह-आधारित उपकरण उपयोग को प्रभावी ढंग से ट्रैक करने के लिए किन अतिरिक्त मेट्रिक्स की आवश्यकता है?
### 13. निष्कर्ष
उपकरण समूह प्रणाली निम्नलिखित प्रदान करती है:
**सुरक्षा**: एजेंट क्षमताओं पर बारीक पहुंच नियंत्रण
**प्रदर्शन**: उपकरण लोडिंग और चयन ओवरहेड में कमी
**लचीलापन**: बहु-आयामी उपकरण वर्गीकरण
**संगतता**: मौजूदा एजेंट आर्किटेक्चर के साथ निर्बाध एकीकरण
यह प्रणाली ट्रस्टग्राफ परिनियोजन को उपकरण पहुंच को बेहतर ढंग से प्रबंधित करने, सुरक्षा सीमाओं में सुधार करने और मौजूदा कॉन्फ़िगरेशन और अनुरोधों के साथ पूर्ण पिछड़े संगतता बनाए रखते हुए संसाधन उपयोग को अनुकूलित करने में सक्षम बनाती है।