चैट टूल
Chat मॉडल को टूल बुलाने दे सकता है। टूल वाला turn मूल multi-round loop चलाता है: मॉडल माँगता है, Libre WebUI बुलाने वाले उपयोगकर्ता की पहचान/अनुमति से चलाता है, परिणाम लौटाता है और उत्तर तक जारी रहता है — अधिकतम आठ rounds और हर round में आठ calls। रोकें मॉडल, चल रहे टूल और लंबित अनुमोदन को रद्द करता है।
कॉल सामान्यीकृत घटनाओं (chat.tool-call.v1, chat.tool-result.v1, chat.approval.v1) के रूप में निजी WebSocket और टिकाऊ घटना stream पर समान बहते हैं, इसलिए रीफ़्रेश/reconnect वही स्थिति चलाता है। पूरा turn bounded परिणाम previews के साथ assistant संदेश पर calls सहेजता है।
टूल चालू करना
डिफ़ॉल्ट बंद। व्यवस्थापक सेटिंग्स > उपयोगकर्ता प्रबंधन में admins-केवल या सभी उपयोगकर्ता खोलता है; हर turn composer के wrench से opt-in करता है। Picker में master switch और हर built-in tool/सर्वर checkbox है, इसलिए ठीक चुने टूल चलते हैं। प्रोफ़ाइल bindings को संकरा कर सकता, चौड़ा नहीं। Incognito chat टूल नहीं देता क्योंकि outward कार्रवाई अनुमोदन और audit छोड़ सकता है।
Assistant प्रोफ़ाइल bound servers, built-in subset, skills और knowledge संग्रह सीमित कर सकता है।
अंतर्निहित टूल
तेरह मूल tools; Notes/Calendar mutation को छोड़कर केवल-पढ़ने:
web_search— व्यवस्थापक खोज, पहुँच मोड का पालन।search_documents— अपने और साझा संग्रह पर hybrid खोज, स्रोत location citation सहित।list_documents— दायरा के दस्तावेज़ के IDs, प्रकार, sizes।read_document— ID/offset से bounded window और स्रोत।load_skill— slug से पूर्ण instructions; विवरण सक्षम skills मैनिफ़ेस्ट और companion inventory देता है।read_skill_file— slug/सापेक्ष पथ से companion फ़ाइल।list_notes— अपने/साझा notes और IDs।read_note— note सामग्री।create_note— पार्श्व प्रभाव, अनुमोदन।update_note— सामग्री replace, previous revision, अनुमोदन।list_calendar_events— epoch-millisecond range में घटनाएँ।create_calendar_event— अनुमोदन।delete_calendar_event— ID से अनुमोदन।
टूल सर्वर
व्यवस्थापक सेटिंग → Tools में बाहरी सर्वर register करता है; starter templates safe सार्वजनिक demo सहित form भरते हैं:
- OpenAPI: JSON OpenAPI 3.x एक बार fetch और SHA-256 digest से pin। हर ऑपरेशन tool;
GETकेवल-पढ़ने, बाकी व्यवस्थापक override तक पार्श्व प्रभाव। Call pinned ऑपरेशन से rebuild; मॉडल destination नहीं चुनता। - MCP (Streamable HTTP): tool सूची JSON-RPC से fetch/pin।
annotations.readOnlyHintकेवल-पढ़ने। stdio MCP जानबूझकर unsupported; बाहरी प्रक्रिया web प्रक्रिया में नहीं चलता।
Changed inventory केवल व्यवस्थापक रीफ़्रेश से प्रभावी, revision बढ़ाता और प्रति-tool overrides बचाता है। सर्वर availability admins-केवल, सभी उपयोगकर्ता या साझा grant मॉडल से उपयोगकर्ता/समूह हो सकती है।
क्रेडेंशियल
Auth सर्वर उपयोगकर्ता-level bearer टोकन या named header उपयोग करते हैं। हर रहस्य अतिरिक्त authenticated डेटा से सटीक उपयोगकर्ता/सर्वर से bind, सेटिंग → Tools में उपयोगकर्ता द्वारा entered और accounts में कभी साझा नहीं।
Egress नीति
हर अनुरोध अपना destination resolve करता, निजी/loopback/metadata space मना करता और DNS rebind रोकने को resolved address pin करता है। Redirect refused, उत्तर आकार capped, hard समय-सीमा। सटीक आंतरिक hosts TOOLS_PRIVATE_NETWORK_ALLOWLIST से comma-separated अनुमति; pinned/capped रहते हैं। Tool आउटपुट untrusted पाठ बनकर मॉडल में लौटता है।
अनुमोदन
केवल-पढ़ने बिना पूछे। पार्श्व प्रभाव turn रोककर अनुमति once, यह chat, हमेशा यह tool/सर्वर या अस्वीकार पूछता है। “हमेशा” restart के बाद टिकता और सेटिंग → Tools में वापस लें होता है; लंबित अनुरोध दो मिनट में denial। Denial/समय-सीमा call नहीं चलाता। हर decision और call redacted सुरक्षा ऑडिट घटना छोड़ता है।
उदाहरण
पहले wrench चालू करें।
web_search — जानकारी खोजना
नवीनतम SQLite रिलीज़ में क्या बदला? उत्तर से पहले वेब खोजो।
मॉडल {"query": "SQLite latest release changelog"} जैसे क्वेरी से web_search बुलाकर sources देता है। खोज कॉन्फ़िगर किया और खाता को अनुमत होना चाहिए।
search_documents — अपनी फ़ाइलें पूछना
मेरे दस्तावेज़ों में termination clause खोजो और ठीक उद्धृत करो।
मॉडल {"query": "termination clause"} से स्रोत-labelled अंश पाता है।
load_skill — सहेजा कौशल
सेटिंग → Skills में $release-notes बनाएँ:
इस diff के लिए $release-notes से release notes लिखो।
मॉडल load_skill {"slug": "release-notes"} बुलाता है। $ skill slugs पूरा करता है।
OpenAPI सर्वर — मौसम उदाहरण
-
सेटिंग → Tools → Register सर्वर:
Weather,OpenAPI,https://api.example-weather.dev,https://api.example-weather.dev/openapi.json,bearer। -
getForecast(GET, केवल-पढ़ने) औरcreateAlert(POST, पार्श्व प्रभाव) tools बनते हैं। -
हर उपयोगकर्ता अपना API कुंजी बचाता है।
-
Chat में:
Montreal में इस सप्ताहांत मौसम कैसा है?
weather__getForecast {"city": "Montreal"}तुरंत चलता है।आज रात -20 से नीचे जाए तो चेतावनी करो।
weather__createAlertअनुमति once, अनुमति for यह chat, हमेशा अनुमति, अस्वीकार कार्ड दिखाता है; चयन तक कुछ नहीं भेजता।
MCP सर्वर — इश्यू tracker उदाहरण
-
Issues,MCP,https://mcp.example-tracker.dev/mcp,header,X-Api-Keyregister करें। -
search_issuesजैसे केवल-पढ़ने तुरंत,create_issueजैसे अन्य अनुमोदन से। -
Chat में:
“database lock” वाले खुले इश्यू खोजो और पैटर्न का सार नया इश्यू बनाओ।
issues__search_issuesतुरंत चलता;issues__create_issueअनुमोदन से पहले सटीक args दिखाता है।
पर्यावरण चर
| चर | प्रभाव |
|---|---|
TOOLS_ACCESS_MODE | Tools को admins या all-users पर pin और व्यवस्थापक toggle lock करता है। |
TOOLS_PRIVATE_NETWORK_ALLOWLIST | निजी addresses में resolve होने वाले सटीक hostnames की comma सूची। |
सीमाएँ
- टूल कॉल WebSocket पथ और persisted chats के टिकाऊ जनरेशन पथ पर चलते हैं। निजी-session transport excluded; पुराना REST streaming loop नहीं चलाता।
- Work agent वही सर्वर उसी gateway से बुलाते हैं: केवल network-सक्षम संचालन, क्रेडेंशियल-रहित सर्वर प्रस्ताव के समय छँटते हैं, पार्श्व-प्रभाव टूल Work अनुमोदन से नियंत्रित।
- Gemini और agent CLI मॉडल को tools नहीं; Ollama, OpenAI-compatible, उत्तर API और Anthropic को मिलते हैं।
- MCP static प्रति-उपयोगकर्ता क्रेडेंशियल उपयोग करता है; केवल interactive OAuth वाला MCP अभी register नहीं हो सकता।