> **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.
Maelezo haya yanafafanua mfumo wa kuunganisha zana kwa wakala wa TrustGraph ambao huruhusu udhibiti wa kina kuhusu zana zipi zinazopatikana kwa ombi fulani. Mfumo huu huleta uchujaji wa zana unaotegemea kikundi kupitia usanidi na maelezo ya ombi, na hivyo kuwezesha mipaka bora ya usalama, usimamizi wa rasilimali, na ugawaji wa kazi wa uwezo wa wakala.
### 1. Muhtasari
#### 1.1 Tatizo
Kwa sasa, wakala wa TrustGraph wana uwezo wa kutumia zana zote zilizosanidiwa, bila kujali muktadha wa ombi au mahitaji ya usalama. Hii huleta changamoto kadhaa:
**Hatari ya Usalama**: Zana nyeti (k.m., uhariri wa data) zinapatikana hata kwa maswali ya kusoma tu.
**Uharibifu wa Rasilimali**: Zana ngumu huzingirwa hata wakati maswali rahisi hayahitaji.
**Uchanganyifu wa Kazi**: Wakala wanaweza kuchagua zana zisizofaa wakati mbadala rahisi zipo.
**Tenganisho la Wafanyabiashara Wengi**: Makundi tofauti ya watumiaji yanahitaji ufikiaji wa seti tofauti za zana.
#### 1.2 Muhtasari wa Suluhisho
Mfumo wa kikundi cha zana huleta:
1.**Uainishaji wa Kikundi**: Zana huwekwa alama na uanachama wa kikundi wakati wa usanidi.
2.**Uchujaji wa Kwenye Ombi**: Ombi la Wakala (AgentRequest) linaonyesha ambayo makundi ya zana yanaruhusiwa.
3.**Utendaji wa Wakati Halisi**: Wakala wana uwezo wa kutumia zana zinazolingana na makundi yaliyoomba.
4.**Uunganishaji Wenye Ugumu**: Zana zinaweza kuwa katika makundi mengi kwa hali ngumu.
### 2. Mabadiliko ya Muundo
#### 2.1 Ongezeko la Muundo wa Usanidi wa Zana
Usanidi wa zana uliopo umeongezwa na sehemu `group`:
**Kabla:**
```json
{
"name": "knowledge-query",
"type": "knowledge-query",
"description": "Query the knowledge graph"
}
```
**Baada ya:**
```json
{
"name": "knowledge-query",
"type": "knowledge-query",
"description": "Query the knowledge graph",
"group": ["read-only", "knowledge", "basic"]
}
```
**Maelezo ya Kundi:**
`group`: Array(String) - Orodha ya vikundi ambavyo zana hii inahusishwa nayo.
**Hiari:** Zana ambazo hazina uwanja wa kundi huenda katika kundi "linaloepuka".
**Uanachama wa mengi:** Zana zinaweza kuhusishwa na vikundi vingi.
**Huwezi kubadilishwa (Case-sensitive):** Majina ya vikundi ni mechi kamili ya herufi.
#### 2.1.2 Kuboresha Mabadiliko ya Hali ya Zana
Zana zinaweza, kwa hiari, kutaja mabadiliko ya hali na upatikanaji unaotegemea hali:
```json
{
"name": "knowledge-query",
"type": "knowledge-query",
"description": "Query the knowledge graph",
"group": ["read-only", "knowledge", "basic"],
"state": "analysis",
"available_in_states": ["undefined", "research"]
}
```
**Maelezo ya Kikoa:**
`state`: String - **Hiari** - Hali ya kuhamia baada ya utekelezaji wa zana.
`available_in_states`: Array(String) - **Hiari** - Hali ambazo zana hii inapatikana.
**Tabia ya kawaida**: Zana ambazo hazina `available_in_states` zinapatikana katika hali zote.
**Mabadiliko ya hali**: Hutokea tu baada ya utekelezaji wa zana.
#### 2.2 Uboreshaji wa Mfumo wa AgentRequest
Mfumo wa `AgentRequest` katika `trustgraph-base/trustgraph/schema/services/agent.py` umeboreshwa:
**AgentRequest ya Sasa:**
`question`: String - Uliza wa mtumiaji.
`plan`: String - Mpango wa utekelezaji (unaweza kuondolewa).
`state`: String - Hali ya wakala.
`history`: Array(AgentStep) - Historia ya utekelezaji.
**AgentRequest Iliyoboreshwa:**
`question`: String - Uliza wa mtumiaji.
`state`: String - Hali ya utekelezaji wa wakala (sasa inatumika kikamilifu kwa kuchuja zana).
`history`: Array(AgentStep) - Historia ya utekelezaji.
`group`: Array(String) - **MPYA** - Vikundi vya zana ambavyo vinaruhusiwa kwa ombi hili.
**Mabadiliko ya Mfumo:**
**Imeondolewa**: Uwanja wa `plan` hauhitajiki tena na unaweza kuondolewa (hapo awali ulikuwa umekusudiwa kwa vipimo vya zana).
**Imeongezwa**: Uwanja wa `group` kwa vipimo vya kikundi cha zana.
**Imeboreshwa**: Uwanja wa `state` sasa unadhibiti upatikanaji wa zana wakati wa utekelezaji.
**Tabia za Uwanja:**
**Kikundi cha Uwanja:**
**Hiari**: Ikiwa haijaainishwa, huanguka kwenye ["default"].
**Uunganishaji**: Zana zinazofanana na angalau kikundi kilichoainishwa ndizo zinazopatikana.
**Safisha ya tupu**: Hakuna zana zinazopatikana (wakala anaweza kutumia tu utafakari wa ndani).
**Kikundi cha "Wildcard"**: Kikundi maalum "*" kinatoa ufikiaji kwa zana zote.
**Uwanja wa Hali:**
**Hiari**: Ikiwa haijaainishwa, huanguka kwenye "haijulikani".
**Uchujaji wa msingi wa hali**: Zana zinazopatikana katika hali ya sasa ndizo zinazoweza kutumika.
**Hali ya kawaida**: Hali ya "haijulikani" inaruhusu zana zote (kulingana na uchujaji wa kikundi).
**Mabadiliko ya hali**: Zana zinaweza kubadilisha hali baada ya utekelezaji wa mafanikio.
### 3. Mifano ya Kikundi Maalum
Mashirika yanaweza kuainisha vikundi maalum ya kikoa:
Majaribio ya hali ya kuchuja iliyounganisha kikundi+hali
**Uthibitisho wa Usanidi:**
Majaribio ya kupakia zana pamoja na usanidi mbalimbali wa kikundi na hali
Thibitisha uthibitisho wa schema kwa vipimo visivyo sahihi vya kikundi na hali
Majaribio ya utangamano wa nyuma na usanidi uliopo
Thibitisha ufafanuzi na mizunguko ya mabadiliko ya hali
#### 9.2 Majaribio ya Uunganisho
**Tabia ya Wakala:**
Thibitisha kwamba wakala huona tu zana zilizochujwa kwa kikundi+hali
Majaribio ya utekelezaji wa ombi kwa mchanganyiko mbalimbali wa vikundi
Majaribio ya mabadiliko ya hali wakati wa utekelezaji wa wakala
Thibitisha usimamizi wa makosa wakati hakuna zana zinazopatikana
Majaribio ya maendeleo ya mtiririko wa kazi kupitia hali nyingi
**Majaribio ya Usalama:**
Majaribio ya kuzuia kupanda kwa madaraka
Thibitisha usahihi wa njia ya ukaguzi
Majaribio ya ujumuishaji wa lango pamoja na ruhusa za mtumiaji
#### 9.3 Hali za Jumla
**Matumizi ya Mfumo Mwingi Pamoja na Mitiririko ya Kazi ya Hali:**
```
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
```
**Maendeleo ya Hatua ya Mchakato:**
```
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. Mambo Muhimu ya Utendaji
#### 10.1 Athari ya Kuanzisha Zana
**Uteuzi wa Vipimo:**
Meta data ya kikundi na hali huwekwa mara moja wakati wa kuanzishwa
Uwezekano mdogo wa matumizi ya kumbukumbu kwa kila zana (nafasi za ziada)
Hakuna athari kwenye muda wa kuanzisha zana
**Uchakataji wa Maombi:**
Kuchujwa kwa pamoja kwa kikundi + hali hufanyika mara moja kwa kila ombi
Ufumbuzi wa O(n) ambapo n = idadi ya zana zilizosanidiwa
Mabadiliko ya hali huongeza uwezekano mdogo (utambulisho wa herufi)
Athari ndogo kwa idadi ya kawaida ya zana (<100)
#### 10.2 Mikakati ya Ubora
**Kikundi cha Zana Zilizopangwa Mapema:**
Hifadhi vikundi vya zana kwa kila mchanganyiko wa kikundi + hali
Epuka kuchujwa mara kwa mara kwa mifumo ya kawaida ya kikundi/hali
Usawa kati ya kumbukumbu na hesabu kwa mchanganyiko unaotumika mara kwa mara
**Kupakua kwa Kila Matumizi:**
Pakua matumizi ya zana tu wakati inahitajika
Punguza muda wa kuanzishwa kwa matumizi ambayo yana zana nyingi
Usajili wa zana kwa njia ya moja kwa moja kulingana na mahitaji ya kikundi
### 11. Maboresho ya Baadaye
#### 11.1 Uteuzi wa Kikundi wa Kila Muda
**Uteuzi wa Kikundi Kulingana na Mazingira:**
Weka zana katika vikundi kulingana na mazingira ya ombi
Upatikanaji wa kikundi kulingana na wakati (sawa za biashara tu)
Marekebisho ya kikundi kulingana na mzigo (zana ghali wakati wa matumizi kidogo)
#### 11.2 Hierarkia za Kikundi
**Muundo Ulioingilishwa wa Kikundi:**
```json
{
"knowledge": {
"read": ["knowledge-query", "entity-search"],
"write": ["graph-update", "entity-create"]
}
}
```
#### 11.3 Mapendekezo ya Zana
**Mapendekezo Kulingana na Kikundi:**
Pendekeza vikundi bora vya zana kwa aina za ombi.
Jifunze kutoka kwa mitindo ya matumizi ili kuboresha mapendekezo.
Toa vikundi vya dharura wakati zana zinazopendekezwa hazipatikani.
### 12. Maswali ya Kufungua
1.**Uthibitisho wa Kikundi**: Je, majina ya vikundi yasiyo halali katika maombi yanapaswa kusababisha hitilafu kubwa au onyo?
2.**Udagano wa Kikundi**: Je, mfumo unapaswa kutoa API ili kuorodhesha vikundi vinavyopatikana na zana zao?
3.**Vikundi vya Njia Moja Moja**: Je, vikundi vinapaswa kupangwa wakati wa utendaji au wakati wa kuanzishwa tu?
4.**Urithi wa Kikundi**: Je, zana zinapaswa kurithi vikundi kutoka kwa makundi yao ya wazazi au matoleo?
5.**Ufuatiliaji wa Utendaji**: Ni vipimo vipi vya ziada vinavyohitajika kufuatilia matumizi ya zana kulingana na vikundi kwa ufanisi?
### 13. Hitimisho
Mfumo wa vikundi vya zana hutoa:
**Usalama**: Udhibiti wa kina wa ufikiaji wa uwezo wa wakala.
**Utendaji**: Kupunguza mzigo wa kupakua na kuchagua zana.
**Unyumbufu**: Uainishaji wa zana wa mwelekeo mwingi.
**Ulinganifu**: Ujumuishaji laini na miundo ya wakala iliyopo.
Mfumo huu huruhusu usakinishaji wa TrustGraph kusimamia ufikiaji wa zana vizuri zaidi, kuboresha mipaka ya usalama, na kuongeza matumizi ya rasilimali huku ikiendelea kuwa na ulinganifu kamili na usanidi na maombi iliyopo.