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

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

ENDEAVOR AGENT LITE คือ AI agent ภาษาไทยที่รันบน Mac Apple Silicon โดยออกแบบให้เครื่อง RAM 8GB ใช้งานงานประจำวันได้จริง จุดสำคัญของรุ่นปัจจุบันไม่ใช่แค่ “ใช้โมเดล 2B” แต่คือการแยกงานหนักออกเป็น tool ที่ deterministic และมีขอบเขตชัดเจน

โมเดลเริ่มต้นคือ mlx-community/Qwen3.5-2B-OptiQ-4bit ส่วนการค้นเอกสาร, OCR, web evidence, file I/O และ safety guard อยู่ในโค้ดรอบๆ โมเดล

มีอะไรใหม่ในรุ่นปัจจุบัน

  • Knowledge Base แยกเป็น MCP-RagDoc — Agent Lite ติดต่อ document RAG ผ่าน MCP stdio ไม่ผูก implementation RAG ไว้กับ agent loop
  • Knowledge Base อยู่ที่ rag_document/ — รองรับ nested folders และเอกสารหลายชนิด รวม PDF/Word/Excel/PowerPoint/ODF/ภาพ
  • Hybrid document search — filename + SQLite FTS5/BM25 + OCR fuzzy + optional MiniLM semantic retrieval
  • RAG unavailable ก็ไม่วนซ้ำ — ถ้า MCP/server/tool ใช้ไม่ได้ agent fallback ไป bash แบบ read-only โดยรักษา scope เดิม
  • อ่านไฟล์พร้อมกันสูงสุด 4 ไฟล์ — shared options หรือ filter/range แยกต่อไฟล์ใน call เดียว
  • อ่านภาพพร้อมกันสูงสุด 4 ภาพ — ใช้ progressive vision-first; OCR เลือกเฉพาะภาพที่ต้องการได้
  • PDF to Text panel — แปลง PDF เป็น .txt แบบ page-by-page ใช้ native text ก่อน, Apple Vision OCR เมื่อเป็นหน้าสแกน และ staging ใน SQLite
  • Web search แบบ batch 1–4 query — query หลายข้อรันพร้อมกัน แล้ว code-only ranking คัดหลักฐานสั้นพร้อม URL
  • Generic MCP client แบบจำกัด — model list/call ได้เฉพาะ server ที่ developer provision ไว้ ไม่สามารถเพิ่ม server เอง

Tool หลัก 8 ตัว

bash
read_file
write_file
web_search
local_search
read_image
mcp_list_tools
mcp_call_tool

Knowledge Base ไม่ได้โผล่เป็น rag_search tool ตรงๆ ใน agent surface แต่เรียกผ่าน:

mcp_call_tool(server="lite-rag", tool_name="rag_search", ...)

แยกขอบเขตค้นหาให้ถูก

นี่เป็นส่วนสำคัญที่สุดของรุ่นใหม่:

สิ่งที่ต้องการค้น เส้นทางปกติ
เอกสารใน Knowledge Base / rag_document/ MCP-RagDoc ผ่าน lite-rag.rag_search
ไฟล์ทั่วไปบน Desktop / Documents local_search
project/repository ที่กำลังทำงาน MCP-RagDoc เมื่อผู้ใช้ระบุ scope project ตาม routing ปัจจุบัน หรือ bash fallback เมื่อ MCP unavailable
ผู้ใช้สั่ง “นอก RAG / ไม่ใช้ RAG” bash แบบ read-only ใน scope ที่ระบุ
ข้อมูลปัจจุบันบนอินเทอร์เน็ต web_search

ถ้า lite-rag ไม่มี, rag_search หาย หรือ MCP เชื่อมไม่ได้ ระบบจะหยุด retry RAG แล้วใช้ bash ภายใน scope เดิม เท่านั้น เช่นคำขอ KB จะค้นเฉพาะ rag_document/ ไม่ขยายไปทั้ง Home และไม่เอา web_search มาแทน local data

ติดตั้ง

git clone https://github.com/halochamp/ENDEAVOR_AGENT_LITE.git
cd ENDEAVOR_AGENT_LITE
bash install_library/install.sh

ตัวติดตั้งสร้าง .venv ด้วย Python 3.11, ติดตั้ง dependencies ที่ lock ไว้ และพยายาม build Apple Vision OCR helper จาก Swift source ให้ทั้ง Agent Lite และ MCP-RagDoc โดยยังไม่เปิดโมเดล

เปิดใช้งานแบบ CLI

เปิด local model server ใน Terminal แรก:

source .venv/bin/activate
python -m mlx_vlm.server \
  --model mlx-community/Qwen3.5-2B-OptiQ-4bit \
  --host 127.0.0.1 --port 8090 --api-key x \
  --prefill-step-size 512

Terminal ที่สอง:

source .venv/bin/activate
python ui_cli.py

วางเอกสาร KB ไว้ใต้ rag_document/ แล้วใช้:

/sync_kb

เพื่อ sync MCP-RagDoc index แบบ incremental

/index ยังมีอยู่เป็น compatibility path สำหรับ workflow เก่า แต่เส้นทางหลักของ Knowledge Base คือ /sync_kb + MCP-RagDoc

เปิด Web UI

source .venv/bin/activate
python web_ui.py

เปิด http://127.0.0.1:8766

Web UI bind เฉพาะ loopback และสามารถจัดการ local model server จากหน้าเว็บได้ นอกจากนี้ยังมี PDF to Text workflow และ Knowledge Base sync ใน UI เดียวกัน

MCP-RagDoc ที่ bundle มากับ Lite

Agent Lite public repo มี MCP-RagDoc/ แบบ standalone อยู่ใน repository เพื่อให้ clone เดียวใช้งานได้ครบ แต่ backend นี้ยังคง agent-agnostic — Agent Lite ติดต่อมันผ่าน MCP adapter ไม่ import agent logic เข้าไปใน RAG

ค่าเริ่มต้น:

source documents: rag_document/
private state: ~/Library/Application Support/ENDEAVOR_AGENT_LITE/

MCP-RagDoc มี 5 tools:

rag_search
sync_kb
sync_status
cancel_sync
rag_health

อ่านเอกสารหลายไฟล์ใน call เดียว

ถ้า option เหมือนกัน:

read_file(paths=["/abs/a.pdf", "/abs/b.docx", "/abs/c.xlsx", "/abs/d.txt"])

ถ้าแต่ละไฟล์ต้อง filter/range คนละแบบ:

read_file(requests=[
  {"path":"/abs/a.py", "contains":"sync_kb"},
  {"path":"/abs/b.py", "start_line":"100", "end_line":"180"}
])

สูงสุด 4 ไฟล์ต่อ call ผลลัพธ์เรียงตาม input และ error ของไฟล์หนึ่งไม่ควรทำให้ไฟล์อื่นหายไปทั้งชุด

อ่านภาพแบบ progressive vision-first

read_image ไม่เอา OCR text มาเป็นสิ่งแรกให้โมเดลโดยอัตโนมัติอีกแล้ว เส้นทางหลักคือให้ VLM เห็น original pixels ก่อน แล้วค่อยเรียก OCR/find/zoom เมื่อจำเป็น

batch ได้สูงสุด 4 ภาพต่อ call และเลือก OCR เป็นรายภาพได้ แนวทางนี้ลด sensor text ที่ไม่จำเป็นและยังคง Apple Vision OCR เป็นเครื่องมือเฉพาะทางเมื่อข้อความเล็ก/อ่านยาก

Web search แบบ 1–4 query

web_search(query="ข่าวหัวข้อนี้วันนี้")

หรือรวมหลายมุมใน call เดียว:

web_search(query=["fact A", "fact B", "fact C", "fact D"])

batch queries รันพร้อมกัน แล้วโค้ดคัด relevance/source diversity และดึง passage สั้นๆ พร้อม URL โดย web_search tool เองไม่เรียก LLM

ความเป็นส่วนตัวและความปลอดภัย

  • local model และ Web UI bind 127.0.0.1
  • user-facing file writes จำกัดใต้ workspect/
  • private runtime state อยู่ใต้ ~/Library/Application Support/ENDEAVOR_AGENT_LITE/ โดยค่าเริ่มต้น
  • sensitive paths/content ถูกบล็อกก่อนเข้า conversation
  • bash เป็น read-only allow-list พร้อม macOS sandbox backstop ไม่ใช่ arbitrary shell
  • MCP model list/call ได้เฉพาะ server ที่ developer provision ไว้
  • ไฟล์ในเครื่องไม่ถูกส่งไป hosted LLM; web_search ส่งเฉพาะ query/network requests ที่จำเป็นสำหรับการค้นเว็บ

อ่านต่อ

ความคิดเห็น

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