# Local AI Agents

> เปิดใช้งานทักษะนี้เมื่อผู้เรียนต้องการ: - รันเอเจนต์ ทั้งหมดบนอุปกรณ์ เพื่อความเป็นส่วนตัว ต้นทุน หรือเหตุผลการทำงานแบบออฟไลน์ - ให้บริการโมเดลในเครื่องด้วย Foundry Local และเชื่อมต่อผ่านจุดสิ้นสุดที่เข้ากันได้กับ OpenAI - ใช้โมเดล Qwen ที่เรียกใช้งานฟังก์ชัน เพื่อขับเคลื่อนการเรียกใช้เครื่องมือในเครื่องอย่างเชื่อถือได้ - เพิ่ม local RAG (Chroma) หรือ เซิร์ฟเวอร์ MCP ในเครื่อง - ออกแบบกลยุทธ์การจัดเส้นทางแบบ ไฮบริด ระหว่างท้องถิ่น/คลาวด์

- Skill: `thedixitjain/local-ai-agents-30` (Agent Skill)
- Install (CLI): `npx skillmds add thedixitjain/local-ai-agents-30`
- Raw SKILL.md: https://api.skillmd.com/api/skills/thedixitjain/local-ai-agents-30/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: thedixitjain (https://skillmd.com/u/thedixitjain)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/thedixitjain/local-ai-agents-30

---

# การสร้างเอเจนต์ AI ท้องถิ่นด้วย Foundry Local และ Qwen

> ทักษะเสริมสำหรับ [บทเรียนที่ 17 – การสร้างเอเจนต์ AI ท้องถิ่น](../../../17-creating-local-ai-agents/README.md)
> ใช้เพื่อช่วยผู้เรียนสร้างเอเจนต์ที่สามารถคิดวิเคราะห์ เรียกใช้เครื่องมือ และค้นหาข้อมูล
> เอกสารทั้งหมดบนเครื่องของตนเองโดยไม่ต้องใช้คลาวด์ในการประมวลผล คำแนะนำทุกประการ
> ต้องอิงตามเนื้อหาบทเรียนและสมุดงานที่สามารถรันได้

## การกระตุ้น

เปิดใช้งานทักษะนี้เมื่อผู้เรียนต้องการ:
- รันเอเจนต์ **ทั้งหมดบนอุปกรณ์** เพื่อความเป็นส่วนตัว ต้นทุน หรือเหตุผลการทำงานแบบออฟไลน์
- ให้บริการโมเดลในเครื่องด้วย **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`

## สิ่งจำเป็นในการตั้งค่า

```bash
foundry model run qwen2.5-7b-instruct
foundry service status
```

```python
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`](../../../17-creating-local-ai-agents/code_samples/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 ดังนั้นการทดสอบแบบคลาวด์จึงไม่เหมาะสม — ตรวจสอบโดยรันสมุดงานในเครื่อง

---

<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ปฏิเสธความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) ขณะที่เราพยายามให้ความถูกต้อง โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาต้นทางควรถูกพิจารณาเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ แนะนำให้ใช้การแปลโดยมนุษย์มืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่เกิดขึ้นจากการใช้การแปลนี้
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

---

**Source:** [`microsoft/ai-agents-for-beginners`](https://github.com/microsoft/ai-agents-for-beginners) → `translations/th/.agents/skills/local-ai-agents/SKILL.md`

