เริ่มต้นใช้งาน ENDEAVOR LOCAL AGENT TH

ภาพประกอบ: เริ่มต้นใช้งาน ENDEAVOR LOCAL AGENT TH

ENDEAVOR LOCAL AGENT TH คือ local AI agent ที่ออกแบบให้รองรับภาษาไทยโดยเฉพาะ รันบน Mac Apple Silicon ของคุณเอง 100% — ไม่มี API key ของ cloud LLM ไม่มีค่า token รายเดือน และบทสนทนา/ไฟล์ที่ส่งให้โมเดลหลักไม่ต้องออกจากเครื่อง

Agent TH รองรับสามระดับโมเดลใน runtime เดียวกัน: Qwen3.5-9B-4bit (VLM) สำหรับ Mac Apple Silicon ที่มี unified memory 16GB, Qwen3-14B-MLX-4bit ซึ่งยังเป็น fresh/default model สำหรับเครื่อง 24GB+, และ Qwen3.6-35B-A3B-UD-MLX-4bit (MoE) สำหรับเครื่องที่ต้องการ reasoning/tool-calling headroom สูงกว่า. 9B รองรับ image input/direct vision จึงใช้ read_image และ computer แบบเห็น pixels ได้ แม้ reasoning reliability จะต่ำกว่า 35B ในโจทย์หลายขั้นที่ซับซ้อน

ทำอะไรได้บ้าง

พิมพ์ภาษาไทยตามงานที่ต้องการได้เลย Agent จะวิเคราะห์ query เลือก tool และวน ReAct loop เองจนกว่าจะได้คำตอบ ปัจจุบันมี 28 tools ที่มองเห็นในโหมดปกติ และ runtime มี guard กลางคอยกันการเรียก tool เดิมด้วย arguments เดิมซ้ำติดกัน: รอบที่สองจะคืนคำเตือนโดยไม่รัน tool ซ้ำ และรอบที่สามจะหยุด turn แบบ deterministic เพื่อไม่ให้ติด loop

เครื่องมือหลักครอบคลุมงาน เช่น:

  • ค้นเว็บและอ่านหลายแหล่ง (web_search, browse_url, browser_use, batch_browse)
  • อ่าน/เขียน/แก้ไฟล์และค้นโค้ด — read_file อ่านพร้อมกันได้สูงสุด 4 ไฟล์ และกำหนด filter/range แยกต่อไฟล์ได้
  • รัน Bash/Python และวาดกราฟ
  • อ่านภาพด้วย progressive direct vision + OCR/table/QR assist — batch ได้สูงสุด 10 ภาพ พร้อมเลือก OCR เฉพาะภาพ
  • ควบคุมหน้าจอจริงผ่าน computer
  • ค้นฐานความรู้ส่วนตัวผ่าน rag_search
  • เชื่อม MCP server ผ่าน mcp_list_tools, mcp_call_tool, mcp_add_server, mcp_remove_server
  • จำข้อมูลข้าม session ด้วย remember
  • ตั้ง standing trigger ผ่าน awake
  • วางแผนและทำงานหลายขั้นด้วย create_plan + tool_loop

MCP client รุ่นปัจจุบันรองรับทั้ง Streamable HTTP และ local stdio โดย public repo ไม่ผูก default MCP server มาให้ ผู้ใช้หรือ developer จึงเลือกเชื่อม MCP ของตัวเองได้ตามต้องการ และ stdio child ยังอยู่ใต้ sandbox เดียวกับ bash แทนการได้สิทธิ์เพิ่มอัตโนมัติ

ตัวอย่าง:

วิเคราะห์หุ้น PTT กับ CPALL ว่าตัวไหนน่าสนใจกว่า
→ วางแผน → ค้นหลายแหล่ง → เปรียบเทียบข้อมูล → สรุป

เทียบ config 4 ไฟล์แล้วหาค่าที่ต่างกัน
→ read_file(path=[...4 files...]) → อ่านพร้อมกัน → เปรียบเทียบ → สรุป

อ่านไฟล์ sales.csv แล้ววาดกราฟยอดขายรายเดือน
→ read_file → วิเคราะห์ด้วย Python/pandas → plot → สรุป

อ่านข้อความใน screenshot นี้แล้วสรุปให้หน่อย
→ Qwen3-14B ใช้ read_image แบบ full OCR fallback อัตโนมัติ

ถ้าใช้ Mac 16GB แล้วเลือก Qwen3.5-9B VLM
→ main model เห็น original image โดยตรง และใช้ read_image/computer แบบ direct vision ได้

ถ้าเลือก Qwen3.6-35B แล้วส่งหลายภาพ
→ read_image(source=[...]) เตรียมภาพพร้อมกันสูงสุด 10 ภาพ → main VLM เห็น original ตาม progressive contract → เลือก OCR เฉพาะภาพที่ต้องการได้

เลือก 9B, 14B หรือ 35B อย่างไร

Qwen3.5-9B-4bit — compact VLM สำหรับ Mac RAM 16GB

  • 16GB unified memory ใช้งาน Agent TH ได้ เมื่อเลือกโมเดลนี้
  • เป็น vision-language model จึงรองรับ image input, progressive read_image และ computer direct vision
  • เบากว่า 14B/35B เหมาะกับเครื่อง RAM จำกัดและงานทั่วไป
  • reasoning/tool-calling ทำงานได้จริง แต่มี headroom ต่ำกว่า 35B โดยเฉพาะโจทย์หลายเงื่อนไขหรือคำนวณที่ต้องแม่นสูง
  • ไม่ใช่ fresh default; เลือกได้จาก Electron Settings หรือ CLI Model list

Qwen3-14B — ค่าเริ่มต้น เหมาะกับ Mac RAM 24GB+

  • 24GB unified memory เป็นขั้นต่ำเชิงปฏิบัติ สำหรับ Agent TH รุ่นปัจจุบัน
  • 32GB+ แนะนำ ถ้าต้องการเผื่อ macOS, KV cache, context และเปิดแอปอื่นพร้อมกัน
  • เป็น default model ของ fresh install และ fresh runtime config
  • text/tool calling หลักผ่านชุด verification ของโปรเจกต์
  • configuration ที่ทดสอบกับโปรเจกต์นี้เป็น text-only: read_image fallback เป็น full OCR ใน turn เดียว และ computer จะ fail closed ก่อนทำ desktop action

Qwen3.6-35B-A3B — ตัวเลือกคุณภาพสูง

  • reasoning/planning/tool calling มี headroom สูงกว่า
  • รองรับ image input ใน configuration ปัจจุบันของโปรเจกต์
  • read_image ส่งภาพต้นฉบับให้ main VLM มองโดยตรง
  • computer ใช้ screenshot direct vision ร่วมกับ Accessibility/OCR assist
  • ไม่ถูกดาวน์โหลดบังคับพร้อม 14B; จะโหลดเมื่อผู้ใช้เลือกใช้จริง
  • ถ้าเครื่องมี RAM ต่ำกว่า 24GB Electron/CLI จะเตือนก่อน download/load แต่ไม่บล็อก ผู้ใช้ยังยืนยันทำต่อได้

โมเดล 7B/8B ลงไปไม่ใช่ target ที่แนะนำ เพราะความน่าเชื่อถือของ reasoning, tool-call และ format ลดลงชัดเจนในงานหลายขั้น

UI ที่รองรับ 2 แบบ

  1. CLI (endeavor_agent.py) — เบา เร็ว เหมาะกับงานที่เปิดทิ้งไว้นาน
  2. Electron Desktop (AGENT_UI) — desktop app แยกหน้าต่างจริง มี Workspace / Activity / History / Settings และจัดการ mlx_vlm.server + authenticated agent_server.py backend ให้อัตโนมัติ

CLI กับ Electron ใช้ Model / Think Budget config กลางเดียวกัน จึงสลับ frontend แล้วเห็นค่าที่ตั้งไว้ต่อเนื่องกัน ส่วน browser HTML UI เดิมถูกถอดออกจาก product แล้ว agent_server.py ยังอยู่ในฐานะ backend สำหรับ Electron/custom client ไม่ใช่ UI ตัวที่สาม

Electron จะใช้ MLX server ที่มีอยู่แล้วถ้าพบว่ารันอยู่ และจะไม่สลับ/kill external server ที่ไม่ได้เป็นเจ้าของ. เมื่อ Electron เป็นเจ้าของ standalone MLX และผู้ใช้เปลี่ยน Model, Settings จะแสดง กำลังสลับโมเดล… ระหว่าง restart/load และแสดง สลับโมเดลเสร็จแล้ว · พร้อมใช้งาน หลัง runtime ยืนยันว่า model ใหม่พร้อมแล้ว. CLI ยังไม่ฆ่า external MLX จึงจะแจ้งว่า model selection ถูกบันทึกและรอ restart แทนการแสดงพร้อมใช้งานแบบผิดจริง

Generation profile ปัจจุบัน

Agent TH ปรับค่าพื้นฐานให้เหมาะกับ tool-calling และบทสนทนาเส้นตรง:

ค่า Default
Temperature 0.1
Thinking budget 1536 tokens
Repetition penalty 1.05
Recursion limit 60
APC เปิด
APC exact cache entries 2
APC exact prefix guard 64 tokens

เหตุผลที่ exact cache ใช้ 2 slots คือ runtime เก็บทั้ง reusable guarded checkpoint และ full-prompt snapshot ทำให้บทสนทนาเส้นตรง reuse prefix ยาวได้โดยไม่ต้อง prefill system/tool/history ก้อนเดิมใหม่ทุก turn

ติดตั้งแบบเร็วที่สุด

ถ้าไม่อยากยุ่งกับ Terminal หลัง clone ให้ดับเบิลคลิก agent_start.command ที่ root ของโปรเจกต์ ครั้งแรกจะติดตั้ง conda env + AGENT_UI dependencies ให้ และครั้งต่อไปเปิด desktop app ได้โดยตรง

ถ้าต้องการเปิดเองทีละส่วน:

# 1. clone
git clone https://github.com/halochamp/ENDEAVOR_LOCAL_AGENT_TH.git
cd ENDEAVOR_LOCAL_AGENT_TH

# 2. ติดตั้ง
bash install_library/install.sh

# 3. เปิด MLX server — default ใช้ Qwen3-14B
conda activate mlx
APC_ENABLED=1 APC_EXACT_CACHE_ENTRIES=2 APC_EXACT_PREFIX_GUARD_TOKENS=64 \
python -m mlx_vlm.server \
  --model Qwen/Qwen3-14B-MLX-4bit \
  --host 127.0.0.1 \
  --port 8085

# 4. เลือก frontend
python endeavor_agent.py    # CLI
# หรือ Electron Desktop
cd AGENT_UI && npm install && npm start

ถ้า process ค้างหรือ port ถูกใช้อยู่ ให้รันจาก root ของโปรเจกต์:

bash agent_stop.command

แล้วเริ่มใหม่ด้วย agent_start.command หรือคำสั่งด้านบน

สลับ Model / Think Budget

วิธีปกติคือเลือกจาก Electron Settings หรือ CLI menu → Model / Think Budget ทั้งสอง frontend ใช้ workspace/runtime_settings.json ร่วมกัน ค่า fresh/default ยังเป็น Qwen3-14B แต่ model list มี Qwen3.5-9B-4bit (VLM) สำหรับเครื่อง 16GB และ Qwen3.6-35B สำหรับคุณภาพสูง ระบบดาวน์โหลดเฉพาะ model ที่ถูกเปิดใช้งานจริง ไม่บังคับดึงทุกตัวพร้อมกัน

ถ้าเลือก Qwen3.6-35B บนเครื่อง RAM ต่ำกว่า 24GB ระบบจะขอ confirmation ก่อน download/load เพราะ model ใหญ่และอาจใช้ swap สูง แต่ 9B ไม่มี warning นี้และเป็นตัวเลือกที่เหมาะกว่าสำหรับ Mac 16GB

สำหรับ custom backend/port ยังใช้ advanced override ได้ โดยตั้ง V2_MODEL และ MLX_BASE_URL คู่กัน เช่น:

export V2_MODEL="unsloth/Qwen3.6-35B-A3B-UD-MLX-4bit"
export MLX_BASE_URL="http://localhost:8888/v1"

advanced override นี้ล็อก Model ใน UI ตาม backend ที่ผู้ใช้กำหนด

เรื่องความเป็นส่วนตัว

โมเดลหลักรันบนเครื่องผ่าน MLX ดังนั้น conversation/file context ไม่ถูกส่งไป cloud LLM provider โดยอัตโนมัติ

เครื่องมือที่ต้องใช้อินเทอร์เน็ต เช่น web_search, browse_url, browser_use ย่อมส่งเฉพาะ query/URL/traffic ที่จำเป็นไปยังบริการหรือเว็บปลายทางเมื่อ Agent เลือกใช้ tool นั้น

ดูเพิ่มเติม

ความคิดเห็น

กำลังโหลดความคิดเห็น...