Sharing Experiences might help someone.
สร้าง Research Agent ด้วย ReAct Pattern
สร้าง Research Agent ด้วย ReAct Pattern — โปรเจกต์ที่ 2 โปรเจกต์ที่ 2 · Phase 2: ReAct Loop & Research Agent Phase 2 Python · Anthropic API · DuckDuckGo · BeautifulSoup บทความนี้เป็นส่วนหนึ่งของ series “เส้นทางสู่ AI Agent Engineer” ถ้าคุณยังไม่ได้อ่าน Phase 1 แนะนำให้อ่านก่อนที่ Ask My Docs — Tool-Calling Agent เพราะเราจะต่อยอดจากแนวคิดนั้นโดยตรง สารบัญ จากที่แล้วมา… เราทำอะไรไปแล้ว? ReAct Pattern คืออะไร? โครงสร้างโปรเจกต์ Setup โปรเจกต์…
รันจริง และสิ่งที่ได้เรียนรู้
จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 6: รันจริง + สิ่งที่ได้เรียนรู้ มาถึงตอนสุดท้ายแล้ว ตอนนี้เราจะรันโปรแกรมจริง ลองถามคำถาม และสรุปสิ่งที่ได้เรียนรู้จากโปรเจกต์นี้ทั้งหมด Clone และเตรียม git clone https://github.com/nipitpongpan/ask-my-docs cd ask-my-docs python -m venv .venv source .venv/bin/activate # Mac/Linux # หรือ .venv\Scripts\activate # Windows pip install anthropic pydantic python-dotenv สร้างไฟล์ .env: ANTHROPIC_API_KEY=sk-ant-api03-ใส่-key-ของคุณ ใส่เอกสารที่อยากให้ AI อ่าน สร้างไฟล์ .txt ใดๆ ใส่ไว้ในโฟลเดอร์ docs/ เช่น สร้างไฟล์ python.txt:…
Pydantic กับ Structured Output
จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 5: Pydantic กับ Structured Output ตอนนี้เราเกือบครบแล้ว เหลือแค่ส่วนสุดท้าย — Pydantic และ entry point ของโปรแกรม ฟังดูน่ากลัว แต่จริงๆ ไม่ยากเลย มาดูกัน ปัญหาของการรับข้อมูลจาก AI สมมติ Claude ส่งคำตอบกลับมา แต่ดันส่งผิด เช่น: confidence ควรเป็น “high”, “medium”, หรือ “low” แต่ Claude ส่ง “very high” มา found_in_docs ควรเป็น true/false แต่ส่งมาเป็น “yes” แทน ถ้าไม่มีอะไรตรวจสอบ โปรแกรมอาจทำงานผิดพลาดโดยที่เราไม่รู้ Pydantic: ผู้ตรวจสอบข้อมูล Pydantic…
Agent Loop — วนจนกว่าจะได้คำตอบ
จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 4: Agent Loop — วนจนกว่าจะได้คำตอบ ตอนที่แล้วเรานิยาม tool ไว้แล้ว ตอนนี้มาดูส่วนที่สำคัญที่สุดของโปรเจกต์ — Agent Loop หรือวงจรที่ทำให้ AI “คิดแล้วทำ แล้วคิดต่อ” ได้ run_tool(): ฝั่ง Python ทำงานจริง เมื่อ Claude ตัดสินใจเรียก tool โปรแกรมของเราต้องรันฟังก์ชันจริงๆ แล้วส่งผลกลับไป หน้าที่นี้อยู่ใน run_tool(): def run_tool(name: str, inputs: dict) -> str: if name == “list_files”: files = [] for f in DOCS_FOLDER.iterdir():…
นิยาม Tools ให้ Claude ใช้
จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 3: นิยาม Tools ให้ Claude ใช้ ตอนที่แล้วเราเข้าใจแล้วว่า Tool Calling คืออะไร ตอนนี้เราจะมาดูว่า โค้ดจริงๆ เขียนยังไง โฟกัสตอนนี้: บอก Claude ว่ามี tool อะไรให้ใช้บ้าง และกำหนด behavior ด้วย System Prompt โครงสร้างโปรเจกต์ ask-my-docs/ ├── ask.py ← โค้ดหลักทั้งหมด ├── .env ← API Key (อย่า commit!) ├── .gitignore └── docs/ ← ใส่ไฟล์ .txt ที่อยากให้ AI อ่าน…
Tool Calling คืออะไร
จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 2: Tool Calling คืออะไร ตอนที่แล้วเราเตรียม environment และเรียก Claude ครั้งแรกได้แล้ว ตอนนี้ก่อนจะดูโค้ดจริง ขอหยุดอธิบาย concept สำคัญมากก่อนสักตอนหนึ่ง เพราะถ้าเข้าใจตรงนี้ โค้ดในตอนต่อๆ ไปจะ “คลิก” ทันทีเลย ปัญหาของ AI แบบ “ถามตอบ” ธรรมดา ลอง imagine ว่าเราจ้างพนักงานใหม่คนนึง เขาฉลาดมาก ความรู้กว้างขวาง แต่มีข้อจำกัดอย่างนึง — เขารู้แค่สิ่งที่อยู่ในหัวตอนที่จ้างเข้ามา ถ้าเราถามว่า “นโยบายลาพักร้อนของบริษัทเราคืออะไร?” — เขาตอบไม่ได้ เพราะมันอยู่ในคู่มือพนักงาน ไม่ได้อยู่ในหัวเขา นี่คือปัญหาของ LLM (Large Language Model) อย่าง Claude เหมือนกัน — มันรู้เยอะมาก…
เริ่มต้นกับ Anthropic API
จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 1: เริ่มต้นกับ Anthropic API เคยสงสัยไหมว่า AI พวก ChatGPT หรือ Claude มันทำงานยังไง? แล้วถ้าอยากให้ AI ทำงานให้เราเองบ้างล่ะ — ไม่ใช่แค่คุย แต่ให้มันอ่านไฟล์ ค้นข้อมูล หรือทำงานอัตโนมัติ — จะเริ่มยังไง? บทความนี้คือบันทึกจากประสบการณ์จริงที่ผมเรียนรู้เรื่อง AI Agent ตั้งแต่ต้น ไม่มีพื้นฐานมาก่อนก็อ่านได้ครับ เราจะค่อยๆ เดินไปด้วยกัน AI Agent คืออะไร (ฉบับเข้าใจง่าย) ลองนึกถึง AI แบบที่เราคุ้นเคย — พิมพ์คำถาม รอคำตอบ จบ AI Agent ต่างออกไปนิดนึง มันไม่ได้แค่ตอบ — มัน ตัดสินใจ ว่าต้องทำอะไรก่อน…
ดึงข้อมูลจาก AI ให้เป็นระเบียบด้วย Structured Output และ Pydantic
โดยปกติแล้ว AI จะส่งผลลัพธ์กลับมาเป็น free text — ข้อความธรรมดาที่มนุษย์อ่านเข้าใจ แต่โปรแกรมจัดการต่อได้ยาก แต่ในงานจริง เราต้องการมากกว่านั้น เช่น บันทึกข้อมูลลง database, ส่งต่อให้ระบบอื่น, หรือ process ผลลัพธ์แบบอัตโนมัติ — สิ่งเหล่านี้ต้องการ Structured Data ที่มี format ชัดเจน ไม่ใช่ข้อความลอยๆ ลองนึกภาพ use case พวกนี้ดู: 📧 Email → Calendar อ่าน email แล้วดึงนัดหมาย → บันทึกลง calendar อัตโนมัติ 🧾 Slip → รายจ่าย อ่าน slip โอนเงิน → จำนวน, วันที่, ผู้รับ → บันทึกบัญชี 🛒 Review…
Tool Calling คืออะไร? เมื่อ AI เริ่ม “หยิบเครื่องมือ” ได้เองแบบมืออาชีพ
ถ้าคุณเคยถาม AI ว่า “วันนี้อากาศเป็นอย่างไร?” แล้วได้คำตอบว่า “ขออภัย ฉันไม่มีข้อมูล real-time” — นั่นแหละคือข้อจำกัดดั้งเดิมของ AI ที่รู้แค่สิ่งที่ถูกสอนมาจนถึงวันหมดการฝึก แต่ตอนนี้ มีความสามารถใหม่ที่เรียกว่า Tool Calling (หรือบางค่ายเรียกว่า Function Calling) ที่ทำให้ AI ไม่ได้แค่ “ตอบจากความจำ” อีกต่อไป แต่สามารถออกไป หยิบข้อมูล จากโลกภายนอก เรียกใช้ API จริงๆ และส่งคำตอบที่แม่นยำกลับมาให้คุณได้ 🤔 เข้าใจง่ายๆ ก่อน — ไม่ต้องเขียนโค้ดก็อ่านได้ ลองนึกภาพว่าคุณมี เลขานุการที่ฉลาดมาก — เขามีความรู้กว้างขวาง จำอะไรได้เก่ง แต่ถ้าคุณถามว่า “หุ้น Apple ปิดที่เท่าไหร่วันนี้?” เขาจะไม่ตอบเดาๆ แต่จะหยิบโทรศัพท์ขึ้นมา เปิด Bloomberg แล้วบอกตัวเลขจริงๆ ให้คุณ Tool Calling ก็ทำงานในลักษณะเดียวกัน ตัว…
🧠 LLM ทำงานยังไง — Tokens, Context Window และ Temperature
LLM ทำงานยังไง — Tokens, Context Window และ Temperature ก่อนจะสร้าง AI Agent หรือเขียนโค้ดเรียก API ได้อย่างถูกต้อง มีแนวคิดพื้นฐาน 3 อย่างที่ต้องเข้าใจก่อน บทความนี้อธิบายทั้งหมดแบบตรงไปตรงมา Token คืออะไร หลายคนนึกว่า LLM อ่านข้อความทีละคำหรือทีละตัวอักษร — แต่จริง ๆ แล้วโมเดลอ่านทีละ token ซึ่งเป็นหน่วยย่อยของข้อความที่เล็กกว่าคำแต่ใหญ่กว่าตัวอักษร 📏 หลักจำง่าย: 1 token ≈ 0.75 คำภาษาอังกฤษ ≈ 4 ตัวอักษร ลองดูตัวอย่างให้ชัดขึ้น: ข้อความ จำนวน Token cat 1 Bangkok 2 (Bang + kok) Pydantic 3 (Py + dan…