3 คะแนน โดย GN⁺ 2025-05-28 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ใน LLM 0.26 มีการเพิ่มความสามารถด้าน การเรียกใช้เครื่องมือ อย่างหลากหลาย ทำให้โมเดล LLM หลายค่าย เช่น OpenAI, Anthropic, Gemini และ Ollama สามารถใช้เครื่องมือที่พัฒนาเป็นฟังก์ชัน Python หรือปลั๊กอินได้
  • สามารถ ติดตั้งเครื่องมือโดยตรงหรือส่งเป็นฟังก์ชัน ผ่าน command line หรือ Python API ได้ จึงเพิ่มทั้งความสามารถในการขยายและความยืดหยุ่นอย่างมาก
  • ด้วยปลั๊กอินเครื่องมือ สามารถเพิ่มความสามารถต่าง ๆ ให้โมเดลได้ง่าย เช่น การคำนวณทางคณิตศาสตร์ การรัน JavaScript การสืบค้น SQL และการเชื่อมต่อบริการภายนอก
  • ผู้ให้บริการ LLM รายใหญ่ทั้งหมดและโมเดลแบบโลคัล ต่างเริ่มใช้รูปแบบการเรียกเครื่องมือกันอย่างแพร่หลาย และ LLM 0.26 ก็รวมสิ่งนี้เข้าด้วยกันในรูปแบบที่เป็นมาตรฐาน
  • สำหรับ แผนในอนาคตและทิศทางการพัฒนา มีการพูดถึงการรองรับมาตรฐาน MCP การขยายระบบนิเวศการพัฒนาปลั๊กอิน และการปรับปรุงบันทึกการรันเครื่องมือ

LLM 0.26: รองรับการเรียกใช้เครื่องมือกับโมเดลภาษาขนาดใหญ่จากเทอร์มินัล

ณ วันที่ 27 พฤษภาคม 2025 มีการเปิดตัว LLM 0.26 แล้ว เวอร์ชันนี้เป็นการเปลี่ยนแปลงครั้งใหญ่ที่สุดนับตั้งแต่เริ่มโครงการ LLM โดยมีการเพิ่มการรองรับเครื่องมือ (tool) เข้ามา ตอนนี้โมเดล LLM หลากหลายค่าย เช่น OpenAI, Anthropic, Gemini และ Ollama สามารถเชื่อมเข้ากับเครื่องมือ CLI และไลบรารี Python ของ LLM เพื่อเข้าถึงเครื่องมือใด ๆ ก็ได้ที่สามารถนิยามเป็นฟังก์ชัน Python

ฟีเจอร์และการเปลี่ยนแปลงสำคัญ

  • ติดตั้งและโหลดเครื่องมือจากปลั๊กอิน: สามารถลงทะเบียนและใช้งานเครื่องมือผ่านปลั๊กอินที่ติดตั้งไว้ได้ด้วยออปชัน --tool/-T
  • ส่งโค้ด Python ผ่าน command line: ใช้ออปชัน --functions เพื่อส่งโค้ดฟังก์ชัน Python โดยตรงและนำมาใช้เป็นเครื่องมือได้
  • รองรับเครื่องมือใน Python API ด้วย: ส่ง tools=[ชื่อฟังก์ชัน] ให้เมธอด .chain เพื่อเชื่อมต่อเครื่องมือได้ง่าย
  • รองรับทั้ง context แบบ synchronous และ asynchronous: สามารถเรียกใช้เครื่องมือได้ทั้งในสถานการณ์ sync และ async

ตัวอย่างการใช้งานเครื่องมือ

การเตรียมใช้งาน

  1. ต้องติดตั้งหรืออัปเกรด LLM เป็นเวอร์ชันล่าสุด

  2. ลงทะเบียน API key เช่นของ OpenAI:

    llm keys set openai
    # ป้อน API key
    
  3. ตัวอย่างการรันเครื่องมือตัวแรก:

    llm --tool llm_version "What version?" --td
    
    • llm_version เป็นเครื่องมือเดโมแบบง่ายที่มีมาให้
    • --td คือออปชันสำหรับ แสดงดีบักของเครื่องมือ เพื่อดูขั้นตอนการเรียกใช้และเนื้อหาการตอบกลับ
  4. เปลี่ยนโมเดล:

    llm models default gpt-4.1-mini
    
    • รองรับโมเดลได้หลากหลายผ่านออปชัน (เช่น -m o4-mini)
  5. เรียกใช้เครื่องมือเวลาที่มีมาในตัว:

    llm --tool llm_time "What time is it?" --td -m o4-mini
    
    • จะแสดงข้อมูลเวลาและเขตเวลาอย่างละเอียด

รองรับหลายโมเดลและปลั๊กอิน

  • ทำงานด้วยอินเทอร์เฟซเครื่องมือเดียวกันได้ใน สภาพแวดล้อมของโมเดล LLM หลายแบบ เช่น Anthropic Claude 4, Google Gemini 2.5 Flash และ Ollama Qwen3:4b
  • ตัวอย่างคำสั่ง:
    llm install llm-anthropic -U
    llm keys set anthropic
    llm --tool llm_version "What version?" --td -m claude-4-sonnet
    

การคำนวณทางคณิตศาสตร์และการรันโค้ด

  • สามารถใช้เครื่องมือ Python มาชดเชย ข้อจำกัดของ LLM ที่ไม่เก่งคณิตศาสตร์ ได้
  • ปลั๊กอิน llm-tools-simpleeval รองรับการคำนวณเลขคณิตอย่างปลอดภัย
    llm install llm-tools-simpleeval
    llm -T simpleeval
    llm -T simple_eval 'Calculate 1234 * 4346 / 32414 and square root it' --td
    
    • หากไม่มีการรองรับ sqrt() ก็สามารถแทนด้วย ** 0.5 ได้ ซึ่งช่วยให้ การรันโค้ดยืดหยุ่น มากขึ้น

แนะนำปลั๊กอินเครื่องมือ

  • [llm-tools-simpleeval]: คำนวณเลขคณิตและนิพจน์ง่าย ๆ
  • [llm-tools-quickjs]: เครื่องมืออินเทอร์พรีเตอร์ JavaScript sandbox ของ QuickJS
  • [llm-tools-sqlite]: สืบค้น SQL แบบ อ่านอย่างเดียว กับฐานข้อมูล SQLite ในเครื่อง
  • [llm-tools-datasette]: รองรับการรัน SQL query กับอินสแตนซ์ Datasette ระยะไกล

ตัวอย่าง:

llm install llm-tools-datasette
llm -T 'Datasette("https://datasette.io/content";)' --td "What has the most stars?"
  • เป็นปลั๊กอินแบบ toolbox ที่ตั้งค่าได้ผ่านอาร์กิวเมนต์ เช่น URL
  • หากระบุคอลัมน์ผิด จะสามารถ ตรวจจับ error จากเครื่องมือและลองใหม่ → ดู schema → สร้าง query ที่ถูกต้องได้ แสดงให้เห็นถึงความสามารถในการปรับตัวของ LLM

นิยามเครื่องมือด้วยโค้ด Python โดยตรง

  • สามารถส่ง ฟังก์ชัน Python แบบกำหนดเอง ผ่านออปชัน --functions บน command line แล้วเปลี่ยนเป็นเครื่องมือได้ทันที
  • ตัวอย่าง:
    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'
    
    • สามารถสร้างเครื่องมือค้นหาเว็บแบบง่ายได้
    • การกำหนดทิศทางให้โมเดลใช้เครื่องมือผ่าน system prompt เป็นสิ่งสำคัญ

การใช้งานร่วมกับไลบรารี Python

  • LLM รองรับทั้ง CLI และ Python API
  • เมธอด .chain() จะตรวจจับคำขอเรียกใช้เครื่องมือ → รันเครื่องมือ → นำผลลัพธ์กลับมาใช้ต่อได้โดยอัตโนมัติ
  • ตัวอย่าง:
    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)
    
  • รองรับ ฟังก์ชันแบบ async (async def) ด้วย จึงใช้งานแบบทำงานพร้อมกันได้
  • ปลั๊กอินแบบ toolbox ก็เชื่อมต่อได้ตรง ๆ ในรูปแบบ tools=[Datasette(...)]

พัฒนาการของแนวคิดเรื่องเครื่องมือ

  • รูปแบบการเรียกใช้เครื่องมือ ถูกนำเสนอไว้ตั้งแต่บทความวิจัย ReAcT ปี 2022 เป็นต้นมา และหลังจากนั้นผู้ให้บริการ LLM รายใหญ่ทั้งหมดรวมถึงโมเดลโลคัลก็นำไปใช้
  • แต่ละ API ใช้ชื่อแตกต่างกัน เช่น "Function calling" หรือ "การใช้เครื่องมือ" แต่สุดท้ายก็อยู่ในรูปแบบเดียวกัน
  • Ollama และ llama.cpp ก็ได้เพิ่ม การรองรับเครื่องมือ และขยายความสามารถนี้ไปแล้วเช่นกัน

เบื้องหลังการพัฒนาและการใช้งานจริง

  • ทีมพัฒนา LLM ตระหนักมานานแล้วว่าจำเป็นต้องมีการเชื่อมต่อกับเครื่องมือ แต่การออกแบบ abstraction layer ให้ครอบคลุมหลายโมเดลเป็นเรื่องยาก
  • เมื่อรูปแบบการใช้เครื่องมือระหว่างผู้ให้บริการเริ่มเป็นมาตรฐานมากขึ้น LLM 0.26 จึงสามารถรวมการทำงานนี้ไว้ได้
  • มีการสาธิตการใช้งานจริงในเวิร์กช็อป PyCon US 2025 ด้วย

ความสัมพันธ์กับ “เอเจนต์”

  • แม้คำว่า "เอเจนต์" ยังเป็นคำที่มีข้อถกเถียง แต่ในระบบนิเวศ LLM ปัจจุบัน รูปแบบ "tool in the loop" ได้กลายเป็นมาตรฐานไปแล้ว
  • LLM 0.26 เป็นการใช้งานที่เหมาะกับการพัฒนาเอเจนต์เช่นกัน
  • ต่อจากนี้จะมีการผลักดันเทมเพลตสำหรับ สร้างปลั๊กอิน ประเด็นการปรับปรุง และเอกสารสำหรับปลั๊กอินขั้นสูงอย่างต่อเนื่อง

เตรียมรองรับ Model Context Protocol (MCP)

  • MCP กำลังกลายเป็นโปรโตคอลมาตรฐานใหม่อย่างรวดเร็วสำหรับให้ LLM เข้าถึงเครื่องมือ
  • ภายในช่วง 8 วันที่ผ่านมา API ของผู้ให้บริการรายใหญ่อย่าง OpenAI, Anthropic และ Mistral ก็เริ่มนำไปใช้อย่างรวดเร็ว
  • แผนต่อไปคือทำให้ LLM เป็น MCP client เพื่อเชื่อมต่อกับ MCP server ที่หลากหลายได้อย่างง่ายดาย

ชุมชนและการขยายระบบนิเวศ

  • มีชุมชน Discord สำหรับพูดคุยเรื่องปลั๊กอิน เครื่องมือ และการขยายระบบนิเวศของโครงการ LLM
  • มีการเน้นย้ำว่าความเป็นไปได้ของการใช้ LLM แบบอิงเครื่องมือในระบบนิเวศโอเพนซอร์สนั้น แทบไร้ขีดจำกัด

ด้วยแนวทางเหล่านี้ LLM 0.26 กำลังกลายเป็น แพลตฟอร์มเชื่อมต่อเครื่องมือ ที่ใช้งานได้ทั่วไปและขยายต่อได้ ซึ่งทำงานร่วมกับโมเดล LLM รายใหญ่ทั้งหมดได้อย่างมีประสิทธิภาพ เครื่องมือเหล่านี้ช่วยขยายขอบเขตการใช้งานของโมเดลภาษาอย่างมาก จึงเป็นเครื่องมือที่มีความหมายอย่างยิ่งสำหรับนักพัฒนาและผู้ปฏิบัติงานสายไอที

1 ความคิดเห็น

 
GN⁺ 2025-05-28
ความเห็นจาก Hacker News
  • ผมมีตัวเรนเดอร์ Markdown แบบสตรีมมิงที่ทำขึ้นมาเองสำหรับเครื่องมือนี้
    ดูรายละเอียดเพิ่มเติมได้ที่ Streamdown
    และยังมีสิ่งที่น่าสนใจอีกอัน ที่นี่
    ผมยังทำเครื่องมือ tmux ชื่อ llmehelp เองด้วย ซึ่งสร้างอยู่บน llm ของ Simon
    ตอนนี้กลายเป็นเครื่องมือที่ขาดไม่ได้และใช้ทุกวันไปแล้ว

    • ไลบรารีนี้ดูเจ๋งมากจริงๆ
      ผมคิดว่าน่าจะดีถ้ามี hook ที่เปิดให้ปลั๊กอินควบคุมส่วนการแสดงผลเนื้อหาได้โดยตรง
      ผมเปิด issue เรื่องนี้ไว้ ที่นี่
      ใส่ตัวเลือกด้านดีไซน์ไว้หลายแบบ แต่ก็ยังไม่มั่นใจเต็ม 100%
      อยากได้ฟีดแบ็กมาก

    • มีอีกอย่างที่ผมลืมพูดถึง
      คราวนี้เป็นปลั๊กอิน ZSH ที่สร้างบน llm
      ใช้ zle เพื่อแปลภาษาอังกฤษเป็นคำสั่งเชลล์ได้ในครั้งเดียว
      พระเอกก็คือ Zummoner
      เป็นเครื่องมือที่เปลี่ยนชีวิตผมไปเลย
      ตัวอย่างเช่นคำสั่งที่ผมเพิ่งสร้างวันนี้

        $ git find out if abcdefg is a descendent of hijklmnop 
      

      เป็นคำสั่งที่ผมใช้จริงในคอมเมนต์อันหนึ่งนี้

        $ 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)
      

      ผมส่งบัฟเฟอร์ไปที่ openrouter ด้วยคีย์ลัด ctrl-x x ที่ไว้ใจได้ แล้วไม่ถึง 1 วินาทีก็ได้ไวยากรณ์ที่ถูกต้องกลับมา

    • เจ๋งมาก
      ผมเองก็เคยทำตัวเรนเดอร์ Markdown แบบสตรีมมิงในหลายภาษาเพื่อแสดงผลลัพธ์จาก LLM แบบเร็วๆ เหมือนกัน
      ดีใจที่รู้ว่าไม่ได้มีแค่ผมคนเดียว

    • น่าสนใจ เดี๋ยวจะลองดูแน่นอน
      ตอนนี้ผมใช้ llm คู่กับ bat เพื่อทำ syntax highlighting อยู่

    • นี่แหละฟีเจอร์ที่ผมอยากได้มาก
      ขอบคุณ

  • เครื่องมือแบบนี้เพิ่มความเสี่ยงที่จะเป็น footgun ได้สูงมาก
    ในเอกสารก็มีคำเตือนเรื่อง prompt injection อยู่ แต่ในทางปฏิบัติผมคิดว่าความเสียหายจากการพลาดเองน่าจะเกิดบ่อยกว่า
    เช่น ถ้าให้เครื่องมือเข้าถึงบัญชีนายหน้า ก็สามารถทำระบบเทรดอัตโนมัติได้
    ต่อให้ไม่มี prompt injection ถ้าบอตดันเทรดโง่ๆ ก็ไม่มีทางหยุดได้
    เอกสารอ้างอิง

    • ความเสี่ยงที่จะเกิดเรื่องแบบนี้สูงมากจริงๆ
      พอเอาเครื่องมือไปต่อกับ LLM แล้ว มันสามารถลงมือทำอะไรแทนผมผ่านการเรียกที่มีสิทธิ์ยืนยันตัวตนได้ ทำให้เกิดสถานการณ์ไม่คาดคิดได้เยอะมาก
      เราเห็นปรากฏการณ์นี้ได้จากกรณี GitHub MCP ล่าสุด เป็นต้น บทความที่เกี่ยวข้อง
      ผมใส่คำเตือนเรื่องความเสี่ยงไว้เด่นมากในเอกสาร และยังไม่ได้ปล่อยปลั๊กอินเครื่องมือชุดแรกที่อาจทำให้เกิดความเสียหายจริง
      เพราะงั้น QuickJS sandbox กับปลั๊กอิน SQLite ของผมจึงเป็นแบบอ่านอย่างเดียวเท่านั้น
      แต่ถึงอย่างนั้น พื้นที่นี้ก็ยังทั้งน่าสนุกและน่าทึ่งมาก

    • ถ้ามีใครเอา llm ไปต่อกับบัญชีนายหน้า แบบนั้นไม่ใช่บอตโง่ แต่แทบจะเป็นคนที่โง่เองมากกว่า

    • เครื่องมืออะไรก็มีโอกาสถูกใช้งานผิดวิธีได้ทั้งนั้น

  • สำหรับคนที่ใช้ llm ผมขอแนะนำ Gtk-llm-chat
    เป็นงานที่ทุ่มเทอย่างมาก
    มีทั้งการเชื่อมรวมกับเครื่องมือบรรทัดคำสั่ง llm, เดสก์ท็อป, ไอคอนในถาดระบบ และหน้าต่างแชตที่เรียบร้อย
    เพิ่งออกรุ่น 3.0.0 พร้อมแพ็กเกจสำหรับ 3 ระบบปฏิบัติการเดสก์ท็อปหลัก

    • น่าสนใจ
      อยากรู้ว่าใช้งานอย่างอื่นนอกจากแชตทั่วไปกันยังไงบ้าง
  • นี่คือจังหวะเวลาที่ดีที่สุดจริงๆ
    ช่วงนี้ผมกำลังลองอะไรหลายอย่างในเทอร์มินัล (Warp) และแม้จะชอบไอเดียเรื่อง agent แต่ก็ไม่ค่อยสบายใจกับแนวแบบ Cursor ที่เป็นสไตล์ "ฝากพรอมป์ต์/LLM call ไว้กับพวกเราได้เลยนะ (แล้วก็เก็บเงิน)"
    เพราะงั้นสิ่งที่ผมต้องการจริงๆ คือ terminal agent แบบ CLI ง่ายๆ เพื่ออุดช่องว่างเรื่องทักษะเชลล์ของตัวเอง
    ผมรู้ดีมากว่าเครื่องมือแบบนี้มีความเสี่ยงแบบ footgun สูง
    แต่การจับคู่ระหว่างเครื่องมือเทอร์มินัลกับ llm ดูเป็นการผสมที่เบาและลงตัวในอุดมคติมาก จนผมคาดหวังอยู่
    เลยสงสัยว่ามันรองรับแบบที่เวลา LLM เรียกใช้เครื่องมืออย่าง rm -rf ./* แล้วจะถามประมาณว่า "กด Y เพื่ออนุมัติ" ทุกครั้งไหม
    ถ้ามีแบบนั้นก็น่าจะช่วยกันไม่ให้ LLM มาควบคุมเทอร์มินัลของผมเองตามใจชอบ และพอจะเป็นกลไกป้องกันได้ระดับหนึ่ง

    • โหมดเริ่มต้นของ Codex CLI น่าจะเป็นแบบนั้น
      ถ้ารันโดยไม่ใส่แฟลก --full-auto มันจะถามอนุมัติทุกครั้ง
  • ผมดูแลปลั๊กอิน zsh/omz สำหรับ tab completion ของ LLM CLI อย่างจริงจังอยู่ แต่ความเร็วในการออกฟีเจอร์ใหม่ตามไม่ทันจริงๆ
    โชคดีที่คำสั่งด้านล่างช่วยทำให้อัตโนมัติได้ประมาณ 90%

    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"
    

    รีโพซิทอรีปลั๊กอินของผมอยู่ ที่นี่
    ผมพยายามรองรับตัวเลือกต่างๆ ให้ได้มากที่สุด เลยทำให้โครงสร้างค่อนข้างซับซ้อน
    ถ้าได้ฟีดแบ็กจะขอบคุณมาก

    • มันน่าทึ่งจริงๆ ที่นี่คือความจริง ไม่ใช่ไซไฟ
      คนรุ่นหลังคงงงว่าเมื่อก่อนเราสร้างอะไรกันได้ยังไง
      ให้ความรู้สึกแบบเดียวกับที่พวกเราเองนึกภาพไม่ออกว่านักเขียนโปรแกรม assembly ทำงานกันยังไง
  • GPT-4.1 เป็นโมเดลที่ทรงพลังมากทั้งเรื่อง structured output และ tool calling
    ตลอด 2 ปีที่ผ่านมา งานซ้ำๆ ในชีวิตประจำวันของผมแทบทั้งหมดถูก LLM จัดการให้
    มันเป็นชุดโมเดลที่ทั้งถูกและเก่ง เลยเลือกใช้เป็นค่าเริ่มต้นตลอด

    • พูดตามตรง ผมทึ่งกับ GPT-4.1 mini มาก
      จากที่ลองทุกอย่างผ่าน API มันถูกแบบเหลือเชื่อแต่ก็ทำงานส่วนใหญ่ได้ดีมากจริงๆ
      ถ้าเป็นงานโค้ดผมใช้ o4-mini ส่วนอย่างอื่น 4.1-mini ก็มักพอแล้ว
      นี่คือตัวอย่างที่ลองเล่นวันนี้
      llm -f https://raw.githubusercontent.com/BenjaminAster/CSS-Minecraft/… \
        -s 'explain all the tricks used by this CSS'
      
      ผมส่งเดโมโค้ด CSS Minecraft ที่ยอดเยี่ยมและไม่มีคอมเมนต์แม้แต่บรรทัดเดียวให้ GPT-4.1 mini อธิบาย
      เดโมต้นฉบับที่เกี่ยวข้อง ซอร์ส
      คำตอบของ GPT-4.1 mini ออกมาดีมากจริงๆ
      มันชี้ได้แม้แต่ลูกเล่นยากๆ อย่างประโยคที่ว่า "CSS นี้ใช้เทคนิค CSS ระดับล้ำสมัยเพื่อสร้าง UI สไตล์ voxel แบบ 3D interactive โดยใช้ JavaScript ให้น้อยที่สุด"
      คำอธิบายทั้งหมด
      โทเค็นขาเข้า 3,813 โทเค็นขาออก 1,291
      ผลการคำนวณ ประมาณ 0.3591 เซนต์ หรือแค่ราวหนึ่งในสามของ 1 เซนต์เท่านั้น
  • เครื่องมือของ Simon สุดยอดมากจริงๆ
    ผมใช้ทุกวัน
    การต่อ pipe และการสลับโมเดลได้ง่ายมาก ทั้งแบบ local และ remote อย่าง ollama ทำให้งานสะดวกขึ้นมาก

  • เจ๋งมากจริงๆ
    เท่าที่ผมรู้ llama.cpp ก็รองรับเครื่องมือเหมือนกัน แต่ยังหาวิธีเชื่อมกับ 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
      
      ผมสรุปไว้ ที่นี่
  • ขอบคุณมากสำหรับรีลีสครั้งนี้
    ผมคิดว่าไลบรารีนี้เป็นองค์ประกอบหลักที่จะเปิดศักยภาพของ LLM ได้อย่างแท้จริง โดยไม่ติดอยู่กับข้อจำกัดและกรอบของไคลเอนต์แบบเดิม
    หลังจากเวอร์ชัน 0.26 alpha ออกมา ผมพยายามสร้างปลั๊กอินที่คุยกับ MCP server แต่รู้สึกว่าค่อนข้างยาก
    ตอนนี้ผมทำให้มันเชื่อมต่อแล้วดึงเครื่องมือมาใช้งานแบบไดนามิกได้แล้ว แต่ยังส่งพารามิเตอร์เข้าไปไม่ได้

    • เช้านี้ผมเองก็ลองเล่นกับ MCP อยู่นิดหน่อย
      พยายามทำเดโมปลั๊กอินง่ายๆ ให้ได้มากที่สุด แต่ก็ไม่ใช่เรื่องง่าย
      ไลบรารี mcp Python อย่างเป็นทางการต้องให้มีการรัน asyncio, การเชื่อมต่อกับเซิร์ฟเวอร์, และการ introspect เครื่องมือที่ใช้งานได้ เป็นต้น
  • เป็นฟีเจอร์ที่รอมานานมาก
    เดิมคิดว่าน่าจะเป็นการทำบนฐาน mcp หรือ openapi แต่แนวทางตอนนี้อาจเรียบง่ายและยืดหยุ่นกว่ามาก
    และก็ดูเหมือนจะทำเป็นปลั๊กอินได้ไม่ยากด้วย