मुख्य कंटेंट तक स्किप करें

चैट टूल

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 छोड़ सकता है।

टूल तक पहुंच स्विच तुरंत सहेजता है। इस पर क्लिक करें, या Tab से फ़ोकस कर Space से बदलें। पहुँच बदलने पर सेटिंग्स विंडो और उसकी स्क्रॉल स्थिति वहीं बनी रहती है।

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 में कभी साझा नहीं।

इंटरैक्टिव OAuth (MCP)​

कोई MCP सर्वर हर व्यक्ति को अलग से भी साइन-इन करवा सकता है। इसे इंटरैक्टिव OAuth प्रमाणीकरण मोड से पंजीकृत करें; Libre WebUI सर्वर द्वारा दिया WWW-Authenticate चैलेंज पढ़ता, उसे संरक्षित-संसाधन मेटाडेटा तक, फिर प्राधिकरण सर्वर के मेटाडेटा तक अनुसरण करता है, और प्राधिकरण सर्वर पंजीकरण देने पर क्लाइंट को गतिशील रूप से पंजीकृत करता है (RFC 7591)। जो प्रदाता स्वतः क्लाइंट पंजीकृत नहीं करते, वे पंजीकरण फ़ॉर्म पर व्यवस्थापक-दिया क्लाइंट ID और वैकल्पिक secret लेते हैं; secret खोजे endpoints के साथ एन्क्रिप्टेड रहता है।

फिर हर व्यक्ति सर्वर के कार्ड पर कनेक्ट करें दबाता है और प्रदाता पर भेज दिया जाता है। यह प्रवाह PKCE (S256) को CSRF state और उसी एक सर्वर तक सीमित HttpOnly cookie में रखे PKCE verifier के साथ उपयोग करता है। Callback कोड को सर्वर पर exchange करता, टोकन को स्थिर secret जैसी ही उपयोगकर्ता-और-सर्वर bound एन्क्रिप्शन से सहेजता, और ब्राउज़र को status flag के साथ ऐप में वापस भेजता है — access और refresh टोकन कभी पृष्ठ तक नहीं पहुँचते। Access टोकन समाप्ति से एक मिनट पहले स्वतः रीफ़्रेश होते हैं, प्रति व्यक्ति/सर्वर एक बार भले ही कई tool calls एक साथ दौड़ें। रीफ़्रेश असंभव हो तो tool call विफल होने के बजाय फिर-कनेक्ट करने को कहती वापस आती है। डिस्कनेक्ट करें उस व्यक्ति के टोकन हटाता है और पंजीकरण बरकरार रखता है; सर्वर हटाने पर खोजा configuration भी भुला दिया जाता है।

जो सर्वर बिना-प्रमाणीकरण tool सूची देने से मना करता है वह भी पंजीकृत रहता है: उसकी सूची पहले सफल कनेक्शन पर (और किसी भी व्यवस्थापक रीफ़्रेश पर) पिन होती है, इसलिए मॉडल को कुछ भी पता चलने से पहले पेश नहीं किया जाता।

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 सर्वर — मौसम उदाहरण​

  1. सेटिंग → Tools → Register सर्वर: Weather, OpenAPI, https://api.example-weather.dev, https://api.example-weather.dev/openapi.json, bearer।

  2. getForecast (GET, केवल-पढ़ने) और createAlert (POST, पार्श्व प्रभाव) tools बनते हैं।

  3. हर उपयोगकर्ता अपना API कुंजी बचाता है।

  4. Chat में:

    Montreal में इस सप्ताहांत मौसम कैसा है?

    weather__getForecast {"city": "Montreal"} तुरंत चलता है।

    आज रात -20 से नीचे जाए तो चेतावनी करो।

    weather__createAlert अनुमति once, अनुमति for यह chat, हमेशा अनुमति, अस्वीकार कार्ड दिखाता है; चयन तक कुछ नहीं भेजता।

Exa MCP — वेब खोज और fetch​

सेटिंग्स → टूल → टेम्पलेट से शुरू करें में Exa चुनें; MCP पंजीकरण इस URL से पहले से भर जाता है:

https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa

URL Exa के टूल चयन पैरामीटर से web_search_exa और web_fetch_exa चुनता है। टेम्पलेट प्रमाणीकरण नहीं करता और डिफ़ॉल्ट पहुँच केवल व्यवस्थापक तक सीमित रखता है। फ़ॉर्म जाँचें और सहेजें चुनें ताकि कनेक्ट हो और टूल सूची पिन हो। टेम्पलेट खोलना या रद्द करना Exa से संपर्क नहीं करता। ये टूल चलने पर खोज क्वेरी और मांगे गए URL Exa को भेजे जाते हैं।

MCP सर्वर — इश्यू tracker उदाहरण​

  1. Issues, MCP, https://mcp.example-tracker.dev/mcp, header, X-Api-Key register करें।

  2. search_issues जैसे केवल-पढ़ने तुरंत, create_issue जैसे अन्य अनुमोदन से।

  3. Chat में:

    “database lock” वाले खुले इश्यू खोजो और पैटर्न का सार नया इश्यू बनाओ।

    issues__search_issues तुरंत चलता; issues__create_issue अनुमोदन से पहले सटीक args दिखाता है।

पर्यावरण चर​

चरप्रभाव
TOOLS_ACCESS_MODETools को admins या all-users पर pin और व्यवस्थापक toggle lock करता है।
TOOLS_PRIVATE_NETWORK_ALLOWLISTनिजी addresses में resolve होने वाले सटीक hostnames की comma सूची।

सीमाएँ​

  • टूल कॉल WebSocket पथ और persisted chats के टिकाऊ जनरेशन पथ पर चलते हैं। निजी-session transport excluded; पुराना REST streaming loop नहीं चलाता।
  • चैनल @model उल्लेख मेंशन करने वाले सदस्य के कैटलॉग पर वही loop चलाते हैं, एक अंतर के साथ: पूछने को कोई नहीं होता, इसलिए स्थायी अनुमोदन के बिना कोई पार्श्व-प्रभाव टूल प्रतीक्षा के बजाय तुरंत अस्वीकृत होता है। केवल-पढ़ने वाले टूल सामान्य रूप से चलते हैं।
  • Work agent वही सर्वर उसी gateway से बुलाते हैं: केवल network-सक्षम संचालन, क्रेडेंशियल-रहित सर्वर प्रस्ताव के समय छँटते हैं, पार्श्व-प्रभाव टूल Work अनुमोदन से नियंत्रित।
  • Gemini और agent CLI मॉडल को tools नहीं; Ollama, OpenAI-compatible, उत्तर API और Anthropic को मिलते हैं।
  • इंटरैक्टिव OAuth केवल MCP के लिए है: OpenAPI सर्वर अब भी स्थिर प्रति-उपयोगकर्ता क्रेडेंशियल उपयोग करता है। यह प्रवाह PKCE सहित authorization-code grant है; device-code और client-credentials प्रवाह उपलब्ध नहीं, और जो प्राधिकरण सर्वर कोई metadata (या कोई पंजीकरण endpoint और कोई व्यवस्थापक-दिया क्लाइंट ID) प्रकाशित नहीं करता उसे कनेक्ट नहीं किया जा सकता।
  • खोजे OAuth endpoints https होने चाहिए; सादा http केवल loopback के लिए स्वीकार्य है, विकास के दौरान उसी मशीन पर चल रहे प्रदाता हेतु।
  • Redirect URI BASE_URL (या पहले CORS_ORIGIN) से निकाला जाता है, इसलिए वह मान वही पता होना चाहिए जो ब्राउज़र वास्तव में पहुँचता है और उन प्रदाताओं के पास पंजीकृत होना चाहिए जो redirect URI पिन करते हैं।