{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreig7gzl44rqyiq6o7kb7s2vxcevu3jhig6izjlvnmjxqw7qnoroy7u",
"uri": "at://did:plc:25rdn5elo5izoxrmtis34zuk/app.bsky.feed.post/3mpkg4pt5cl42"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreiaacebmgg54bir7dnqwcrk7lvr4lbcnw2orohrkrdkxuwcv3oqd6e"
},
"mimeType": "image/webp",
"size": 29460
},
"path": "/gophernment/cchaak-chatbot-thrrmdaa-suu-ai-thiithamngaanaethneraaaid-eraaetimaairekhaaaipbaang-4ilg",
"publishedAt": "2026-07-01T01:30:51.000Z",
"site": "https://dev.to",
"tags": [
"ai",
"beginners",
"tutorial",
"llm",
"Aider — Pair Programming กับ AI ใน Terminal",
"Anthropic: Building effective agents"
],
"textContent": "## จาก chatbot ธรรมดา สู่ AI ที่ทำงานแทนเราได้ — เราเติมอะไรเข้าไปบ้าง?\n\nเวลาเราใช้ ChatGPT หรือ Claude ครั้งแรก — เราพิมพ์คำถาม ได้คำตอบ จบ\n\nนั่นคือ **LLM (Large Language Model)** ในรูปแบบพื้นฐานที่สุด: ข้อความเข้า → ข้อความออก\n\nแต่อยู่ ๆ มาวันหนึ่งเราเห็น AI ที่:\n\n * เข้าเว็บหาข้อมูลให้\n * อ่านไฟล์ในเครื่องเรา\n * รันคำสั่ง terminal\n * เขียนโค้ด สร้างไฟล์ รัน test\n * ทำงานต่อเนื่องเป็นสิบนาทีโดยไม่ต้องคอยบอกทุกขั้นตอน\n\n\n\n**เราเติมอะไรลงไปบ้าง?** — จาก chatbot ธรรมดากลายเป็น agent ได้ยังไง?\n\n## 🧱 เริ่มจาก LLM เปล่า ๆ\n\nLLM คือ \"เครื่องทำนายคำถัดไป\" — มันเห็นข้อความก่อนหน้า แล้วเดาว่าคำต่อไปควรเป็นอะไร\n\n\n\n [ผู้ใช้ถาม] → [LLM] → [คำตอบ]\n\n\nสิ่งที่ LLM **ทำไม่ได้** ในสภาพนี้:\n\n * จำว่าเมื่อวานเราคุยอะไรกัน (ไม่มี memory)\n * ค้นหาข้อมูลในเน็ต (ไม่มี tool)\n * รู้วันที่วันนี้ (ถูก train ด้วยข้อมูลเก่า)\n * ทำอะไรบนเครื่องเรา (ไม่มีสิทธิ์)\n\n\n\nมันคือสมองที่เก่ง — แต่ไม่มีแขน ไม่มีขา ไม่มีความจำ\n\n## ➕ Layer 1: System Prompt — ใส่ \"บทบาท\" และ \"กติกา\"\n\nสิ่งแรกที่เราเติม: **system prompt** — ข้อความที่บอก LLM ว่า \"คุณเป็นใคร\" และ \"คุณทำอะไรได้บ้าง\"\n\n\n\n คุณคือ AI ผู้ช่วยชื่อ Hermes\n คุณทำงานบนเครื่อง Linux ของผู้ใช้\n คุณตอบเป็นภาษาไทย อ่านง่าย เป็นกันเอง\n\n\nSystem prompt คือ **\"job description\"** ของ AI — มันเปลี่ยน LLM จาก \"เครื่องทำนายคำ\" เป็น \"ผู้ช่วยที่มีตัวตน\"\n\n## ➕ Layer 2: Tool Calling — ใส่ \"แขน\" และ \"ขา\"\n\nLLM เก่งเรื่องภาษา แต่มันกดเครื่องคิดเลขไม่เป็น — เราก็เลยให้ **เครื่องมือ (tools)** กับมัน\n\nวิธีทำงาน:\n\n\n\n 1. ผู้ใช้: \"เช็คสภาพอากาศกรุงเทพวันนี้\"\n 2. LLM คิด: \"ฉันต้องเรียกฟังก์ชัน get_weather(city='Bangkok')\"\n 3. ระบบ: เรียก get_weather() จริง → ได้ผลลัพธ์ { temp: 35, humidity: 70 }\n 4. ระบบ: ส่งผลลัพธ์กลับไปให้ LLM\n 5. LLM: \"วันนี้กรุงเทพ 35 องศา ความชื้น 70% ครับ\"\n\n\n**Tools ที่เราให้ AI ได้:**\n\nTool | ตัวอย่าง | LLM ทำอะไร\n---|---|---\nWeb search | `search(\"ราคาทองวันนี้\")` | ค้นเน็ต\nFile read | `read_file(\"config.yaml\")` | อ่านไฟล์\nTerminal | `terminal(\"git status\")` | รันคำสั่ง\nDatabase | `query(\"SELECT * FROM users\")` | ถาม database\n\n**สิ่งที่เปลี่ยน:** LLM ไม่ได้แค่ \"พูด\" แล้ว — มัน \"ทำ\" ได้แล้ว\n\n## ➕ Layer 3: Loop — ใส่ \"ความต่อเนื่อง\"\n\ntool ครั้งเดียวอาจไม่พอ — LLM อาจต้องเรียก tool หลายรอบเพื่อทำงานชิ้นหนึ่งให้เสร็จ\n\n\n\n 1. ผู้ใช้: \"สร้างไฟล์ README.md ให้ project นี้\"\n\n 2. LLM → tool: read_file(\"main.go\") ← อ่านก่อนว่ามีอะไร\n 3. LLM → tool: search_files(\"*.go\") ← หาไฟล์ทั้งหมด\n 4. LLM → tool: read_file(\"go.mod\") ← อ่าน module name\n 5. LLM → tool: write_file(\"README.md\") ← เขียน!\n 6. LLM → ผู้ใช้: \"สร้าง README.md เสร็จแล้วครับ\"\n\n\nนี่คือ **Agent Loop** — วงจร \"คิด → เรียก tool → ดูผล → คิดต่อ → เรียก tool อีก\" — ไปเรื่อย ๆ จนกว่างานจะเสร็จ\n\n> 💡 **สังเกต:** ตอนนี้ LLM ไม่ได้ตอบทันทีแล้ว — มันใช้เวลา \"ทำงาน\" หลายวินาที หรือหลายนาที\n\n## ➕ Layer 4: Memory — ใส่ \"ความจำ\"\n\nLoop ช่วยให้ AI ทำงานต่อเนื่องใน session เดียว — แต่พอปิด session ทุกอย่างหายหมด\n\nเราเติม **memory** — ระบบจดจำสิ่งที่เกิดขึ้นข้าม session:\n\n\n\n Session 1: ผู้ใช้บอกว่า \"ผมใช้ Go เป็นหลัก ชอบ pattern แบบนี้\"\n Session 2: AI ทักว่า \"คราวที่แล้วคุณบอกว่าชอบ table-driven test — จะใช้ pattern นั้นไหม?\" ← จำได้!\n\n\nMemory เก็บอะไร:\n\n * ข้อมูลผู้ใช้ (ชื่อ, preference, ภาษาที่ชอบ)\n * ข้อตกลงที่เคยทำไว้ (\"ไม่ publish blog โดยไม่ขอ\")\n * วิธีการทำงานที่เคยสำเร็จ (\"เวลาใช้ LED ต้องกด button.click()\")\n\n\n\n## ➕ Layer 5: Planning & Reasoning — ใส่ \"การคิดก่อนทำ\"\n\nLLM เก่งเรื่องตอบคำถาม — แต่เวลาเจองานซับซ้อน มันอาจ \"ทำเลย\" โดยไม่คิดก่อน\n\nเราเติม **reasoning** — บังคับให้ AI \"คิดดัง ๆ\" ก่อนลงมือ:\n\n\n\n ผู้ใช้: \"หา condo ในกรุงเทพ ราคา 7-8 ล้าน ขนาด ≥60 ตรม.\"\n\n AI คิด (reasoning):\n \"1. ต้องเข้าเว็บ led.go.th\n 2. กรอกฟอร์ม: ประเภท=ห้องชุด, จังหวัด=กรุงเทพ, ราคา=7-8M, ขนาด≥60\n 3. แต่เว็บมี CAPTCHA — ต้องอ่าน CAPTCHA ทีหลังสุด\n 4. ต้องใช้ button.click() — form.submit() ใช้ไม่ได้\n 5. ถ้าไม่มีในห้วยขวาง → ขยายเป็นทั้งกรุงเทพ\"\n\n AI ลงมือทำตามแผน → สำเร็จ\n\n\nนี่คือ **reasoning** — AI ไม่ได้ตอบทันที แต่มัน \"คิด\" ก่อน — แล้วค่อยทำตามแผน\n\n## ➕ Layer 6: Skills — ใส่ \"ประสบการณ์\"\n\nพอ AI ทำงานซ้ำ ๆ — เราอยากให้มัน \"จำวิธีทำ\" และใช้ซ้ำได้โดยไม่ต้องคิดใหม่ทุกครั้ง\n\nเราเติม **skills** — ไฟล์ที่บรรจุ \"วิธีการทำงานที่พิสูจน์แล้ว\":\n\n\n\n # Skill: deepseek-balance\n วิธีเช็คยอดเงิน DeepSeek:\n 1. อ่าน key จาก ~/.bashrc\n 2. เรียก curl https://api.deepseek.com/user/balance\n 3. แสดงผลเป็นภาษาไทย\n\n\nคราวหน้าเวลา AI ต้องเช็คยอด — มันโหลด skill นี้ → ทำตามขั้นตอน → เสร็จใน 3 วิ — ไม่ต้องคิดใหม่\n\nSkill = **\"ประสบการณ์ที่บันทึกไว้\"** — เหมือน SOP ขององค์กร\n\n## ➕ Layer 7: Multi-Agent — ใส่ \"ทีม\"\n\nงานบางอย่างใหญ่มาก — AI ตัวเดียวทำงานไม่ทัน\n\nเราเติม **delegation** — AI spawn ลูกน้องไปทำงานย่อย:\n\n\n\n [AI หลัก] → \"งานนี้มี 3 อย่าง: 1) research Go 1.27, 2) เขียน blog, 3) โพสต์\"\n → spawn subagent 1: research Go 1.27\n → spawn subagent 2: ออกแบบโครงสร้าง blog\n → รอผล → เขียน blog → โพสต์\n\n\nทำงานพร้อมกัน — เสร็จเร็วขึ้น — เหมือนมีทีมช่วย\n\n## 🧩 ประกอบร่าง — Agentic AI\n\nเอา Layer ทั้งหมดมารวมกัน:\n\n\n\n LLM เปล่า\n + System Prompt → มี \"ตัวตน\"\n + Tool Calling → มี \"มือ\" ทำงานได้\n + Loop → ทำงานต่อเนื่อง ไม่ใช่ตอบทีเดียวจบ\n + Memory → จำได้ข้าม session\n + Reasoning → คิดก่อนทำ\n + Skills → ใช้ประสบการณ์ซ้ำ\n + Multi-Agent → มีทีมช่วย\n ─────────────────────────────────────\n = Agentic AI\n\n\nAgentic AI ไม่ได้ฉลาดกว่า LLM — มันแค่มี **\"เครื่องมือ\"** มากกว่า และถูกออกแบบให้ **\"ทำงาน\"** ไม่ใช่แค่ **\"ตอบ\"**\n\n## 🎯 สรุปให้เห็นภาพ\n\n\n ┌──────────────────────────┐\n │ User: \"สร้าง API\" │\n └──────────┬───────────────┘\n ▼\n ┌──────────────────────────┐\n │ System Prompt: กติกา │ ← \"คุณเป็น dev ที่ใช้ Go\"\n └──────────┬───────────────┘\n ▼\n ┌──────────────────────────┐\n │ Reasoning: คิดก่อน │ ← \"ต้องสร้าง handler, service, repo\"\n └──────────┬───────────────┘\n ▼\n ┌────────────────┼────────────────┐\n ▼ ▼ ▼\n ┌─────────┐ ┌──────────┐ ┌──────────┐\n │ Tool │ │ Tool │ │ Tool │\n │ อ่าน │ │ เขียน │ │ รัน │\n │ โค้ด │ │ ไฟล์ │ │ test │\n └────┬────┘ └────┬─────┘ └────┬─────┘\n │ │ │\n └──────────────┼───────────────┘\n ▼\n ┌──────────────────────────┐\n │ Loop: ทำซ้ำจนกว่าจะเสร็จ │\n └──────────┬───────────────┘\n ▼\n ┌──────────────────────────┐\n │ Memory: บันทึกสิ่งที่เรียนรู้ │ ← \"คราวหน้าใช้วิธีนี้\"\n └──────────────────────────┘\n\n\n## ต่อไปจากนี้\n\nพอเข้าใจตรงนี้แล้ว — เวลาอ่านเรื่อง **MCP (Model Context Protocol)** , **ACP (Agent Client Protocol)** , **RAG (Retrieval-Augmented Generation)** — คุณจะเห็นว่ามันคือ layer ที่เติมเข้าไปเพิ่ม:\n\n * MCP = วิธี standard ในการให้ tool กับ AI\n * RAG = วิธีให้ AI \"อ่านเอกสาร\" ก่อนตอบ\n * ACP = วิธี standard ในการคุยระหว่าง IDE กับ agent\n\n\n\nทั้งหมดคือการเติม \"layer\" — และทั้งหมดเริ่มจาก LLM เปล่า ๆ ตัวเดียว\n\n> 📚 **อ่านต่อ:**\n>\n> * Aider — Pair Programming กับ AI ใน Terminal — ตัวอย่าง agentic AI ที่ใช้จริง\n> * Anthropic: Building effective agents — แนวคิดการออกแบบ agentic system\n>\n",
"title": "จาก chatbot ธรรมดา สู่ AI ที่ทำงานแทนเราได้ — เราเติมอะไรเข้าไปบ้าง?"
}