3 पॉइंट द्वारा GN⁺ 2025-05-28 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • LLM 0.26 में कई tool execution features जोड़े गए हैं, जिससे OpenAI, Anthropic, Gemini, Ollama जैसे विभिन्न LLM मॉडल Python functions या plugins के रूप में लागू टूल्स का उपयोग कर सकते हैं
  • कमांड लाइन या Python API से टूल्स को सीधे install किया जा सकता है या functions के रूप में पास किया जा सकता है, जिससे extensibility और flexibility में बड़ा सुधार होता है
  • टूल plugins के जरिए math calculation, JavaScript execution, SQL queries, external service integration जैसी कई क्षमताएँ मॉडल में आसानी से जोड़ी जा सकती हैं
  • सभी प्रमुख LLM vendors और local models में tool calling pattern सामान्य होता जा रहा है, और LLM 0.26 भी इसे एक standardized तरीके से integrate करता है
  • आगे की योजना और विकास दिशा में MCP standard support, plugin development ecosystem का विस्तार, और tool execution logs में सुधार जैसी बातें शामिल हैं

LLM 0.26: टर्मिनल में large language model के साथ tool execution support

27 मई 2025 के अनुसार LLM 0.26 वर्ज़न जारी किया गया है। यह वर्ज़न LLM प्रोजेक्ट की शुरुआत के बाद से सबसे बड़ा बदलाव है, क्योंकि इसमें tool support जोड़ा गया है। अब OpenAI, Anthropic, Gemini, Ollama जैसे विभिन्न LLM मॉडलों को LLM के CLI टूल और Python library के साथ जोड़कर, Python function के रूप में व्यक्त किए जा सकने वाले किसी भी tool तक पहुँच दी जा सकती है।

मुख्य फीचर्स और बदलाव

  • प्लगइन से टूल install और load करना: --tool/-T विकल्प के जरिए install किए गए plugins से टूल register और उपयोग किए जा सकते हैं
  • कमांड लाइन पर Python code पास करना: --functions विकल्प के जरिए सीधे Python function code देकर टूल्स का उपयोग किया जा सकता है
  • Python API में भी tool support: .chain method में tools=[함수명] पास करके आसानी से टूल जोड़े जा सकते हैं
  • synchronous और asynchronous context support: sync/async दोनों स्थितियों में tool calling संभव है

टूल उपयोग के उदाहरण

उपयोग की तैयारी

  1. नवीनतम LLM install या upgrade करना आवश्यक है

  2. OpenAI आदि की API key दर्ज करें:

    llm keys set openai
    # API key दर्ज करें
    
  3. पहला tool execution उदाहरण:

    llm --tool llm_version "What version?" --td
    
    • llm_version एक साधारण built-in demo tool है
    • --td tool debug output विकल्प है, जिससे tool calling process और response details देखी जा सकती हैं
  4. मॉडल बदलना:

    llm models default gpt-4.1-mini
    
    • विकल्प के रूप में कई मॉडल support किए जा सकते हैं (-m o4-mini आदि)
  5. built-in time tool को कॉल करना:

    llm --tool llm_time "What time is it?" --td -m o4-mini
    
    • यह समय और time zone जानकारी विस्तार से दिखाता है

विभिन्न मॉडलों और plugins का support

  • Anthropic Claude 4, Google Gemini 2.5 Flash, Ollama Qwen3:4b जैसे कई LLM model environments में वही tool interface काम करता है
  • उदाहरण कमांड:
    llm install llm-anthropic -U
    llm keys set anthropic
    llm --tool llm_version "What version?" --td -m claude-4-sonnet
    

math operations और code execution

  • math में कमजोर LLM की सीमाएँ Python tools से दूर की जा सकती हैं
  • llm-tools-simpleeval plugin के जरिए सुरक्षित arithmetic operations support होते हैं
    llm install llm-tools-simpleeval
    llm -T simpleeval
    llm -T simple_eval 'Calculate 1234 * 4346 / 32414 and square root it' --td
    
    • अगर sqrt() support न हो, तो ** 0.5 से उसका विकल्प इस्तेमाल किया जा सकता है, जिससे code execution flexibility मिलती है

tool plugins का परिचय

  • [llm-tools-simpleeval]: arithmetic और सरल expressions की गणना
  • [llm-tools-quickjs]: QuickJS JavaScript sandbox interpreter tool
  • [llm-tools-sqlite]: local SQLite database पर read-only SQL queries
  • [llm-tools-datasette]: remote Datasette instance पर SQL query execution support

उदाहरण:

llm install llm-tools-datasette
llm -T 'Datasette("https://datasette.io/content";)' --td "What has the most stars?"
  • यह toolbox प्रकार का plugin है, इसलिए URL जैसे arguments के जरिए configure किया जा सकता है
  • गलत column बताने पर tool error detection और retry → schema lookup → सही query generation जैसी प्रक्रिया के जरिए LLM की adaptive क्षमता साबित होती है

सीधे Python code से tool define करना

  • कमांड लाइन में --functions विकल्प के जरिए मनचाहा Python function पास करके उसे तुरंत tool बनाया जा सकता है
  • उदाहरण:
    llm --functions '
    import httpx
    
    def search_blog(q):
        "Search Simon Willison blog"
        return httpx.get("https://simonwillison.net/search/";, params={"q": q}).content
    ' --td 'Three features of sqlite-utils' -s 'use Simon search'
    
    • एक सरल web search tool बनाया जा सकता है
    • System prompt के जरिए मॉडल को tool usage की दिशा देना महत्वपूर्ण है

Python library के रूप में integrated उपयोग

  • LLM, CLI और Python API दोनों को support करता है
  • .chain() method के जरिए tool call request को detect करना → execute करना → result reflect करना, यह पूरी प्रक्रिया automate होती है
  • उदाहरण:
    import llm
    
    def count_char_in_text(char: str, text: str) -> int:
        "How many times does char appear in text?"
        return text.count(char)
    
    model = llm.get_model("gpt-4.1-mini")
    chain_response = model.chain(
        "Rs in strawberry?",
        tools=[count_char_in_text],
        after_call=print
    )
    for chunk in chain_response:
        print(chunk, end="", flush=True)
    
  • asynchronous functions (async def) भी support होती हैं, इसलिए concurrent execution संभव है
  • toolbox plugins को भी tools=[Datasette(...)] के रूप में वैसे ही जोड़ा जा सकता है

tool paradigm के विकास की प्रक्रिया

  • tool calling pattern 2022 के ReAcT paper आदि में पेश किए जाने के बाद, सभी प्रमुख LLM vendors और local models ने इसे अपनाया
  • हर API में "Function calling" या "tool use" जैसे अलग-अलग नामों के बावजूद एक समान रूप प्रचलित हो गया है
  • Ollama, llama.cpp आदि में भी पहले से tool support जोड़ा जा चुका है और इसे आगे बढ़ाया जा रहा है

विकास और संचालन के पीछे की कहानी

  • LLM को लंबे समय से tool integration support की ज़रूरत होने का एहसास था, लेकिन अलग-अलग मॉडलों के बीच abstraction layer design करना कठिन था
  • vendors के बीच tool patterns के standardize होने के साथ LLM 0.26 में unified implementation संभव हो सकी
  • PyCon US 2025 workshop में इसे practical use case के रूप में प्रदर्शित किया गया

“agent” से संबंध

  • "agent" शब्द अभी भी बहस का विषय है, लेकिन मौजूदा LLM ecosystem में यह "tool in the loop" रूप में standardize हो रहा है
  • LLM 0.26 agent development के लिए भी उपयुक्त implementation है
  • आगे plugin development के लिए templates, improvement issues, और advanced plugin documentation पर सक्रिय काम चल रहा है

Model Context Protocol (MCP) support आने वाला है

  • MCP एक नया standard protocol है जो LLM को tools तक पहुँचाने के लिए तेजी से उभर रहा है
  • पिछले 8 दिनों के भीतर OpenAI, Anthropic, Mistral जैसे बड़े vendor APIs में भी इसे तेज़ी से अपनाया जा रहा है
  • आगे LLM को MCP client बनाकर कई MCP servers से आसानी से जोड़ने की योजना है

community और विस्तार

  • LLM project में plugin, tool development discussions और ecosystem विस्तार के लिए Discord community चलाई जा रही है
  • open source ecosystem में tool-based LLM उपयोग की संभावनाएँ लगभग असीमित बताई गई हैं

इस तरह LLM 0.26 सभी प्रमुख LLM मॉडलों से जुड़ने वाला, general-purpose और extensible tool integration platform बनता जा रहा है। tools के जरिए language model के उपयोग का दायरा बहुत व्यापक हो जाता है, इसलिए यह developers और IT professionals के लिए बेहद महत्वपूर्ण टूल है।

1 टिप्पणियां

 
GN⁺ 2025-05-28
Hacker News टिप्पणी
  • मेरे पास इस टूल के लिए खुद बनाया हुआ एक streaming Markdown renderer है
    ज़्यादा जानकारी Streamdown में देखी जा सकती है
    और एक और उपयोगी संदर्भ यहाँ है
    मैंने llmehelp नाम का एक tmux टूल भी खुद बनाया है, जो Simon के llm के ऊपर बना है
    यह अब ऐसी स्थिति में है कि रोज़ इस्तेमाल होने वाला ज़रूरी टूल बन गया है

    • यह लाइब्रेरी सच में बहुत शानदार लग रही है
      अच्छा होगा अगर कोई hook हो जिससे plugins कंटेंट डिस्प्ले वाले हिस्से को सीधे नियंत्रित कर सकें
      मैंने इस बारे में issue यहाँ डाला है
      कुछ design options भी शामिल किए हैं, लेकिन अभी भी 100% भरोसा नहीं है
      इस पर feedback ज़रूर चाहिए

    • एक और चीज़ थी जो मैं भूल गया था
      इस बार यह llm पर आधारित बनाया गया ZSH plugin है
      यह zle का इस्तेमाल करके English को एक ही बार में shell command में बदल देता है
      Zummoner उसका नाम है
      इसने मेरी ज़िंदगी पूरी तरह बदल दी
      उदाहरण के लिए, आज मैंने जो command बनाई

        $ git find out if abcdefg is a descendent of hijklmnop 
      

      यह वही command है जिसे मैंने वास्तव में इसी टिप्पणी में से एक में इस्तेमाल किया

        $ for i in $(seq 1 6); do 
         printf "%${i}sh${i}\n\n-----\n" | tr " " "#"; 
        done | pv -bqL 30 
      

      मूल रूप से यह था

        $ for i in $(seq 1 6); do 
         printf "(# $i times)\n\n-----\n"
        done | pv (30 bps and quietly)
      

      मैं अपने भरोसेमंद ctrl-x x shortcut से buffer को openrouter पर भेजता हूँ, और 1 सेकंड के अंदर सही syntax वापस मिल जाता है

    • शानदार
      मैंने भी streaming LLM output को तेज़ी से दिखाने के लिए कई भाषाओं में streaming Markdown renderers बनाए हैं
      मुझे लगा था सिर्फ मैं ही ऐसा कर रहा हूँ, यह देखकर अच्छा लगा

    • दिलचस्प, इसे ज़रूर आज़माऊँगा
      मैं llm को अभी bat के साथ syntax highlighting के लिए इस्तेमाल कर रहा हूँ

    • मैं सच में ऐसी functionality चाहता था
      धन्यवाद

  • इस तरह के टूल में footgun का जोखिम काफ़ी बढ़ जाता है
    documentation में prompt injection के बारे में चेतावनी है, लेकिन असल में self-inflicted गलती से नुकसान होना ज़्यादा आम लग सकता है
    उदाहरण के लिए, अगर किसी टूल को brokerage account का access दे दिया जाए तो trading automation संभव हो जाती है
    prompt injection न भी हो, तब भी अगर bot बेवकूफ़ी भरी trade कर दे तो उसे रोकने का कोई तरीका नहीं होगा
    संदर्भ दस्तावेज़

    • इस तरह की दुर्घटना का जोखिम सच में बहुत बड़ा है
      जब LLM से tools जोड़ दिए जाते हैं, तो authenticated calls के ज़रिए वह मेरी तरफ़ से काम कर सकता है, और ऐसी स्थिति में बहुत सी अनपेक्षित चीज़ें हो सकती हैं
      हाल की GitHub MCP घटना जैसी मिसालों में यह दिखा है संबंधित लेख
      documentation में भी जोखिम की चेतावनी बड़े रूप में डाली गई है, और ऐसे शुरुआती tool plugins जो वास्तव में नुकसान पहुँचा सकते थे, उन्हें जानबूझकर जारी नहीं किया गया
      इसलिए मेरा QuickJS sandbox और SQLite plugin सिर्फ read-only हैं
      फिर भी यह पूरा क्षेत्र अपने आप में बहुत मज़ेदार और रोचक स्पेक्ट्रम है

    • अगर कोई llm को brokerage account से जोड़ता है, तो उस स्थिति में bot से ज़्यादा इंसान को बेवकूफ़ कहना ठीक होगा

    • किसी भी टूल के दुरुपयोग का जोखिम होता है

  • जो लोग llm इस्तेमाल कर रहे हैं, उनके लिए Gtk-llm-chat की सिफारिश
    इसमें बहुत ज़्यादा मेहनत डाली गई है
    यह llm command-line tool के साथ desktop integration, tray icon और साफ़-सुथरी chat window देता है
    हाल ही में 3 बड़े desktop OS के लिए packages के साथ version 3.0.0 जारी हुआ है

    • दिलचस्प
      सामान्य chat के अलावा लोग इसे और किन कामों में इस्तेमाल करते हैं, यह जानने की जिज्ञासा है
  • यह सच में बेहतरीन timing है
    मैं हाल में terminal (Warp) में कई तरह के प्रयोग कर रहा हूँ, और agent जोड़ने का विचार तो पसंद है, लेकिन Cursor जैसी "हमारे prompt/LLM calls पर भरोसा करिए (और पैसे दीजिए)" वाली शैली थोड़ी असहज लगती है
    इसलिए मुझे बस एक सरल CLI-आधारित terminal agent चाहिए था, जो मेरी कमज़ोर shell skills की भरपाई कर सके
    मुझे अच्छी तरह पता है कि ऐसे टूल में footgun का जोखिम बड़ा है
    लेकिन terminal tools + llm का संयोजन बहुत हल्का और लगभग आदर्श लगता है, इसलिए उम्मीद है
    मैं जानना चाहता हूँ कि क्या यह उन कुछ "agent" प्रोडक्ट्स की तरह काम करता है, जहाँ llm जब rm -rf ./* जैसी tool call करे, तो हर बार "Y दबाकर approve करें" जैसा confirmation लिया जाए
    अगर ऐसा हो सके, तो LLM को मेरे terminal पर मनमाने ढंग से काम करने से रोका जा सकता है और कुछ सुरक्षा परत मिल सकती है

    • Codex CLI का default mode शायद ऐसा ही है
      --full-auto flag के बिना चलाने पर वह हर बार approval माँगता है
  • मैं LLM CLI tab completion के लिए zsh/omz plugin को काफ़ी मेहनत से maintain कर रहा हूँ, लेकिन नई features की release speed इतनी तेज़ है कि साथ चलना आसान नहीं है
    अच्छी बात यह है कि नीचे दिया गया command लगभग 90% तक implementation अपने आप कर देता है

    llm -f README.md -f llm.plugin.zsh -f completions/_llm -f https://simonwillison.net/2025/May/27/llm-tools/ "implement tab completions for the new tool plugins feature"
    

    मेरा plugin repository यहाँ है
    मैं ज़्यादा से ज़्यादा options को संभालना चाहता हूँ, इसलिए इसकी संरचना थोड़ी जटिल है
    अगर feedback मिल सके तो बहुत आभारी रहूँगा

    • यह देखना हैरान करने वाला है कि यह अब science fiction नहीं, बल्कि वास्तविकता है
      अगली पीढ़ियाँ शायद हैरान होंगी कि हम कोई चीज़ बनाते कैसे थे
      ठीक वैसे ही जैसे हम assembly programmers के काम करने के तरीके की कल्पना भी ठीक से नहीं कर पाते
  • GPT-4.1 structured output से लेकर tool calling तक सच में बहुत ताकतवर model है
    पिछले 2 सालों में मेरे रोज़मर्रा के लगभग सारे दोहराए जाने वाले काम LLM ने सँभाल लिए हैं
    सस्ता होने के साथ प्रदर्शन भी अच्छा है, इसलिए मैं इसे हमेशा default model के रूप में चुनता हूँ

    • सच कहूँ तो GPT-4.1 mini ने मुझे बहुत प्रभावित किया
      API में हर तरह से इस्तेमाल करके देखा, और यह बेहिसाब सस्ता होते हुए भी सच में ज़्यादातर काम बहुत अच्छे से कर लेता है
      coding के लिए o4-mini, और बाकी सब के लिए 4.1-mini आम तौर पर काफ़ी है
      आज मज़े के लिए इस्तेमाल किया गया एक उदाहरण
      llm -f https://raw.githubusercontent.com/BenjaminAster/CSS-Minecraft/… \
        -s 'explain all the tricks used by this CSS'
      
      मैंने बिना किसी comments वाले शानदार CSS Minecraft demo code को GPT-4.1 mini से समझाने के लिए pipe किया
      संबंधित demo source
      GPT-4.1 mini का जवाब सच में शानदार था
      उसने मुश्किल tricks तक सही पहचान लीं, जैसे "यह CSS अत्याधुनिक CSS तकनीकों से न्यूनतम JavaScript के साथ 3D interactive voxel-style UI लागू करती है"
      पूरा विवरण
      input tokens 3,813, output tokens 1,291
      गणना के अनुसार इसकी लागत लगभग 0.3591 सेंट आई, यानी 1 सेंट के एक-तिहाई से भी कम
  • Simon का टूल सच में कमाल का है
    मैं इसे रोज़ इस्तेमाल करता हूँ
    pipes के साथ इसका संयोजन और models के बीच आसान switching (ollama जैसे local और remote दोनों का समर्थन) काम को बहुत आसान बना देता है

  • सच में शानदार बात है
    जहाँ तक मुझे पता है, llama.cpp भी tools को support करता है, लेकिन llm में इसे जोड़ने का तरीका अभी तक नहीं मिला
    सोच रहा हूँ कि क्या extra-openai-models.yaml में कुछ जोड़कर यह संभव हो सकता है

    • इसके लिए शायद llm-gguf या llm-llama-server में बदलाव चाहिए होगा
      ... प्रयोग करके देखा तो दूसरा तरीका काम करता है
      brew install llama.cpp
      llama-server --jinja -hf unsloth/gemma-3-4b-it-GGUF:Q4_K_XL
      
      और फिर अलग विंडो में
      llm install llm-llama-server
      llm -m llama-server-tools -T llm_time 'what time is it?' --td
      
      इसका सारांश यहाँ में दिया गया है
  • इस release के लिए सच में आभार
    मुझे लगता है यह लाइब्रेरी वह मुख्य building block है जो मौजूदा clients की सीमाओं और बंधनों से बाहर LLM की संभावनाओं को पूरी तरह खोलती है
    0.26 alpha version आने के बाद से मैं MCP server के साथ इंटरैक्ट करने वाला plugin बनाने की कोशिश कर रहा था, लेकिन यह कुछ कठिन लग रहा है
    फिलहाल मैं उसे connect करके tools को dynamically fetch और इस्तेमाल करने लायक बना पाया हूँ, लेकिन parameters पास करना अभी तक हल नहीं कर पाया हूँ

    • मैंने भी आज सुबह थोड़ा MCP के साथ प्रयोग किया
      मैंने जितना हो सका एक साधारण plugin demo बनाने की कोशिश की, लेकिन अनुभव आसान नहीं था
      आधिकारिक mcp Python library में asyncio execution, server connection और उपलब्ध tools की introspection जैसी ज़रूरतें हैं
  • यह वह feature है जिसका लंबे समय से इंतज़ार था
    मुझे लगा था कि यह mcp या openapi आधारित implementation होगा, लेकिन अभी का तरीका शायद इससे कहीं ज़्यादा सरल और लचीला है
    ऐसा भी लगता है कि इसे plugin के रूप में लागू करना बहुत कठिन नहीं होगा