การสร้างเอเจนต์ AI ท้องถิ่นด้วย Foundry Local และ Qwen
ทักษะเสริมสำหรับ บทเรียนที่ 17 – การสร้างเอเจนต์ AI ท้องถิ่น ใช้เพื่อช่วยผู้เรียนสร้างเอเจนต์ที่สามารถคิดวิเคราะห์ เรียกใช้เครื่องมือ และค้นหาข้อมูล เอกสารทั้งหมดบนเครื่องของตนเองโดยไม่ต้องใช้คลาวด์ในการประมวลผล คำแนะนำทุกประการ ต้องอิงตามเนื้อหาบทเรียนและสมุดงานที่สามารถรันได้
การกระตุ้น
เปิดใช้งานทักษะนี้เมื่อผู้เรียนต้องการ:
- รันเอเจนต์ ทั้งหมดบนอุปกรณ์ เพื่อความเป็นส่วนตัว ต้นทุน หรือเหตุผลการทำงานแบบออฟไลน์
- ให้บริการโมเดลในเครื่องด้วย Foundry Local และเชื่อมต่อผ่านจุดสิ้นสุดที่เข้ากันได้กับ OpenAI
- ใช้โมเดล Qwen ที่เรียกใช้งานฟังก์ชัน เพื่อขับเคลื่อนการเรียกใช้เครื่องมือในเครื่องอย่างเชื่อถือได้
- เพิ่ม local RAG (Chroma) หรือ เซิร์ฟเวอร์ MCP ในเครื่อง
- ออกแบบกลยุทธ์การจัดเส้นทางแบบ ไฮบริด ระหว่างท้องถิ่น/คลาวด์
แบบจำลองทางความคิดหลัก
SLM แลกเปลี่ยนความกว้างขวางด้วยความเป็นส่วนตัว ต้นทุน และการทำงานแบบออฟไลน์ กลยุทธ์ที่ชนะคือ:
ปล่อยให้ SLM ประสานงาน และให้เครื่องมือทำงานหนัก โมเดลไม่จำเป็นต้อง รู้ โค้ดเบส — เพียงรู้ว่าเมื่อใดควรเรียก
read_file และ search_docs ซึ่งเป็นจุดแข็งของ SLM (การตัดสินใจที่จำกัด เช่นการเลือกเครื่องมือ)
และหลีกเลี่ยงจุดอ่อน (ความรู้กว้างขวาง การคิดวิเคราะห์ระยะยาวหลายขั้นตอน)
ทำไมต้องใช้ส่วนประกอบเหล่านี้
- Foundry Local เปิดเผย จุดสิ้นสุด HTTP ที่เข้ากันได้กับ OpenAI ดังนั้นโค้ดเอเจนต์คลาวด์จะย้ายโดยเปลี่ยนแค่
base_url(และใช้คีย์ API แทนที่ในเครื่อง) นอกจากนี้ยังเลือกเวอร์ชันที่ดีที่สุดอัตโนมัติตาม CPU/GPU/NPU ของเครื่อง - โมเดล Qwen ถูกฝึกให้เรียกฟังก์ชันและสร้างการเรียกใช้เครื่องมือที่มีรูปแบบดีอย่างสม่ำเสมอ — นี่คือสิ่งที่เปลี่ยนโมเดล แชท ในเครื่องให้เป็น เอเจนต์ ในเครื่อง
- Chroma ทำงานภายในกระบวนการและเก็บเวกเตอร์ไว้บนดิสก์ ทำให้กระบวนการ RAG ทั้งหมด (ฝัง → เก็บ → ดึง → วิเคราะห์) อยู่ในเครื่องทั้งหมด
- MCP คือระบบขนส่งข้อมูล ไม่ใช่บริการคลาวด์: เซิร์ฟเวอร์ MCP สามารถรันในเครื่องผ่าน
stdio
สิ่งจำเป็นในการตั้งค่า
foundry model run qwen2.5-7b-instruct
foundry service status
from foundry_local import FoundryLocalManager
from openai import OpenAI
manager = FoundryLocalManager("qwen2.5-7b-instruct")
client = OpenAI(base_url=manager.endpoint, api_key=manager.api_key) # ตัวแปรแทนที่ภายในท้องถิ่น
RAM ประมาณ 8 GB เป็นขั้นต่ำที่สมเหตุสมผล; GPU/NPU ช่วยได้แต่ไม่จำเป็นต้องมี
รูปแบบสำคัญที่ควรทำซ้ำ
ชี้ผู้เรียนไปที่สมุดงาน
17-local-agent-foundry-local.ipynb:
- เครื่องมือแบบจำกัดบริบท: เครื่องมือไฟล์แต่ละตัวจะตรวจสอบเส้นทางและปฏิเสธทุกอย่างนอกโฟลเดอร์โครงการเดียว — แม้ในเครื่อง เครื่องมือจะทำงานด้วยสิทธิ์ของผู้ใช้
- ลูปเรียกใช้เครื่องมือ: ลงทะเบียนเครื่องมือด้วยสคีมาของ OpenAI เรียกใช้งานเครื่องมือที่ร้องขอในเครื่อง นำผลลัพธ์กลับมา ทำซ้ำจนได้คำตอบสุดท้าย
- Local RAG: เพิ่มเอกสารลงในคอลเลกชัน Chroma;
search_docsคืนชิ้นส่วนที่ดีที่สุดจำนวน k - Local MCP: เชื่อมต่อกับเซิร์ฟเวอร์ในเครื่องผ่าน
stdio; จำกัดขอบเขตให้โฟลเดอร์โครงการและตรวจสอบผลลัพธ์ที่ได้
การจัดเส้นทางแบบไฮบริด (ใช้ท้องถิ่นเป็นหนึ่งในโมเดล)
| สถานการณ์ | ที่ที่รัน |
|---|---|
| ข้อมูลที่ละเอียดอ่อน / ออฟไลน์ | SLM ท้องถิ่น |
| งานง่ายที่จำกัด | SLM ท้องถิ่น (ราคาถูก เร็ว) |
| การวิเคราะห์หลายขั้นตอนที่ซับซ้อนกับข้อมูลที่ไม่ละเอียดอ่อน | โมเดลคลาวด์ |
| คลาวด์ล่ม | SLM ท้องถิ่น (เสถียรภาพแบบลดระดับ) |
นี่สะท้อนแนวคิดการจัดเส้นทางโมเดลจากบทที่ 16 โดยที่เวิร์กสเตชันคือหนึ่งในเส้นทาง ชื่นชอบการออกแบบที่ย้อนกลับไปใช้โมเดลในเครื่องเพื่อให้เอเจนต์ลดคุณภาพลง แทนที่จะล้มเหลวโดยสิ้นเชิง
แนวทางจำกัดสำหรับผู้ช่วย
- จำกัดการดำเนินการไฟล์/เครื่องมือแต่ละรายการในโฟลเดอร์โครงการที่ถูกจำกัด
- ห้ามส่งโค้ดหรือข้อมูลไปคลาวด์เมื่อเป้าหมายของผู้เรียนเน้นความเป็นส่วนตัว/ออฟไลน์ — รักษากระบวนการทั้งหมดให้อยู่ในเครื่อง
- ตั้งความคาดหวังที่สมจริงเกี่ยวกับคุณภาพของ SLM; พึ่งพาเครื่องมือและ RAG มากกว่าความรู้ที่จำในโมเดล
- ให้สังเกตว่าบทที่ 17 ไม่มีจุดสิ้นสุด Foundry Responses ดังนั้นการทดสอบแบบคลาวด์จึงไม่เหมาะสม — ตรวจสอบโดยรันสมุดงานในเครื่อง
ปฏิเสธความรับผิดชอบ: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator ขณะที่เราพยายามให้ความถูกต้อง โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางควรถูกพิจารณาเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ แนะนำให้ใช้การแปลโดยมนุษย์มืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่เกิดขึ้นจากการใช้การแปลนี้
Source: microsoft/ai-agents-for-beginners → translations/th/.agents/skills/local-ai-agents/SKILL.md