KRIT.JUNSREE PERSONAL WEBSITE
MEDIUM

หยุดสร้าง AI Agent ตัวยักษ์ — ใช้ Hermes Profile แยกทีม Specialist ให้ทำงานเป็น Fleet

Kristopher Dunham อธิบายว่าทำไม instinct ที่ยัดทุก tool ให้ agent ตัวเดียวจึงทำลาย agent เงียบ ๆ และทำไม Profile Builder ของ Hermes ที่เพิ่งเพิ่มมาใน dashboard เดือน June 2026 คือคำตอบ Profile ในที่นี่ไม่ใช่ personality setting แต่คือ home directory แยกบน disk ที่มี config, .env, SOUL.md, memory, skill, cron ของตัวเอง สร้าง 3 profile แนะนำ (Coder, Researcher, Ops bot) พร้อมข้อควรระวังว่า isolation ครอบ state ไม่ครอบ filesystem — sandbox จริงต้อง Docker backend

By krit.junsree@gmail.com ◆ Jul 28, 2026 ◆ 26 MIN READ Beginner
Source image for หยุดสร้าง AI Agent ตัวยักษ์ — ใช้ Hermes Profile แยกทีม Specialist ให้ทำงานเป็น Fleet
ที่มารูปภาพ: medium.com

☰ ON THIS PAGE

Kristopher Dunham อธิบายว่าทำไม instinct ของนักพัฒนา AI agent ที่ยัดทุก tool ให้ agent ตัวเดียวจึงทำลาย agent เงียบ ๆ และทำไม Hermes Profile Builder — ที่เปลี่ยน specialist agent ให้ spin ขึ้นภายใน 1 นาที — คือ shift ที่ควรลอง

Instinct ที่ทำลาย Agent เงียบ ๆ

Instinct แรกของคนที่ build AI agent คือยัดทุกอย่างเข้าไปในตัวเดียว — web browsing, code execution, image generation, calendar access, MCP server เป็นสิบ, skill ทุกตัวที่หาเจอ ทั้งหมดต่อเข้ากับ assistant ที่ “รู้ทุกอย่าง”

Instinct นั้นทำลาย agent เงียบ ๆ

ทุก tool ที่ bolt เข้าไป add schema ที่ model ต้องอ่านก่อนทำอะไร และทุก skill description กินพื้นที่ใน prompt System prompt บวมขึ้น, per-step token cost พุ่งขึ้น, model เริ่มไขว้เขว — เลือก tool ผิด, สร้าง function ที่ hallucinate มาให้เข้ากับ vibe ของ request เรา build มา generalist กลับได้ generalist ที่สับสน ใครที่เคยดู agent ที่ยัดทุกอย่างเอื้อมไปหยิบ image generator ตอนที่เราขอให้รัน test จะรู้ความรู้สึกนี้ดี

คำตอบไม่ใช่ generalist ที่ฉลาดขึ้น แต่คือspecialist กลุ่มเล็กที่คมและ isolated จากกัน และ Nous Research เพิ่ง ship tool ที่ทำให้ stand ตัวหนึ่งขึ้นได้ในเวลาประมาณ 1 นาที

สิ่งที่ Hermes สร้างขึ้น

Hermes Agent คือ open-source self-improving agent ของ Nous Research และเป็นหนึ่งใน open-source agent project ที่ visible ที่สุดของปี 2026 มัน run จาก command line และ messaging channel ยาว ๆ ทั้ง Telegram, Discord, Slack, WhatsApp, Signal, Email และ Matrix ship model provider หลายตัวมาให้และชี้ไปยัง OpenAI-compatible endpoint ใดก็ได้ ในเดือน June 2026 ทีมเพิ่ม Profile Builder เข้าไปใน local web dashboard (Nous ยัง ship native desktop app ในช่วงเดียวกันด้วย ซึ่งห่อ profile architecture ตัวเดียวกันสำหรับคนที่ไม่อยากอยู่ใน terminal แต่บทความนี้จะพูดถึง flow บน web dashboard เท่านั้น)

เรื่องนี้สำคัญที่สุดถ้าเรากำลัง wire agent เข้ากับ repo, doc, Slack, cron job หรือ internal tool ถ้าใช้แค่ chatbot ใน browser profile ก็ overkill ถ้ารัน local agent, MCP server, code assistant หรือ scheduled workflow อยู่ — profile คือความต่างระหว่าง “ระบบที่ทำงาน” กับ “กองสายไฟที่พันกัน”

ใน Hermes “profile” ไม่ใช่ personality setting หรือ prefix ของ system prompt Profile คือhome directory แยกบน disk แต่ละอันมี config.yaml, .env สำหรับ key, SOUL.md สำหรับ persona ของ agent, memory, session, skill, cron job และ state database ของตัวเอง

Directory นั้นคือ agent Profile 2 ตัวไม่ share state เลย Agent สำหรับ coding ที่อ่าน private repo กับ agent สำหรับ research ที่ scrape open web รันบน laptop เดียวกันได้โดยไม่เห็น history, key หรือ short-term memory ของกัน

สิ่งหนึ่งที่ต้อง hold ไว้ตั้งแต่ต้น: isolation นี้เป็นเรื่อง state และความสะอาด ไม่ใช่เรื่อง security Profile ตัวเดียวไม่ได้ wall agent ออกจากส่วนอื่นของ disk เรื่อง sandbox ที่จริงจังจะพูดต่อไป

Layout จริงมีหน้าตา:

text
~/.hermes/profiles/researcher/
├── config.yaml      # model, providers, MCP servers, tool toggles
├── .env             # API keys and tokens (secret, do not share)
├── SOUL.md          # persona and behavior
├── skills/          # procedural skills, loaded on demand
├── memory/          # what this agent knows and remembers
├── sessions/        # conversation history
└── state.db         # cron jobs, gateway status, live state

ลบ folder นี้ = agent หายไป Export หรือ package profile นี้ = recreate worker ที่ไหนก็ได้โดยไม่ต้อง rebuild ด้วยมือ (มีวิธีที่ปลอดภัยกว่านั้นซึ่งจะพูดถัดไป)

ก่อนมี Builder การ assemble profile ตัวหนึ่งขึ้นมาต้องผ่าน command terminal เป็นชุด — สร้าง profile, ตั้ง model, ติดตั้ง skill, wire MCP server, drop key Profile Builder รวมทั้งหมดนี้เข้าเป็น form ที่ walk-through ใน browser output เหมือนเดิม friction น้อยลงมาก

สิ่งที่เราเลือกจริง ๆ ตอน Build Profile

รัน hermes dashboard จะเปิดที่ http://127.0.0.1:9119 Dashboard bind กับ loopback เป็น default ทำให้ admin UI ไม่ expose ต่อ network ยกเว้นเราตั้งใจเปลี่ยน (agent เองยังคุยกับ hosted model, search tool และ MCP server ที่เรา wire ไว้อยู่ traffic นั้นจึงยังออกจาก machine ปกติ) Builder จะ walk เราผ่าน setting 5 กลุ่ม แล้วเขียนตรงเข้าไฟล์ของ profile ใหม่

Identity — ชื่อและ description ชื่อทำงาน 2 หน้าที่ กลายเป็น shell command alias ด้วย ตั้งชื่อ profile ว่า coder เราจะได้ command coder chat ใน terminal ทันที ส่วน description feed เข้า task routing และเรื่อง tone หรือ behavior ที่ลึกกว่านั้นไปอยู่ที่ SOUL.md ของ profile

Model และ Provider — Hermes เป็น model-agnostic ชี้ profile ไปที่ Nous Portal, OpenRouter, OpenAI, NVIDIA หรือ OpenAI-compatible endpoint ของเราเอง สลับ model ทีหลังได้โดยไม่ต้องแตะอะไรอย่างอื่น

Built-in Skill — toggle tool native ของ agent เปิด/ปิดต่อ profile การปิด image generation ให้ text-only coding assistant ไม่ใช่ cosmetic — มัน shrink schema ของ tool ที่ model อ่านทุก turn ทำให้ latency ลด และ decision คมขึ้นด้วย เพราะ action ที่พร้อมใช้น้อยลง = wrong pick น้อยลง = junk tool call น้อยลง

Skills Hub Install — skill คือไฟล์ SKILL.md ที่มี name, description และ procedure Agent อ่าน description สั้น ๆ แบบถูก ๆ และ pull เนื้อ skill เต็มเข้า context เฉพาะเมื่อ task ต้องการ ดังนั้นเราติดตั้ง skill กองหนึ่งไว้ได้โดยไม่ bloat ทุก request Builder ติดตั้ง skill inline จาก catalog ภายนอกผ่าน identifier

MCP Server — คือจุดที่เราต่อ agent เข้ากับโลกภายนอก Hermes รับทั้ง local stdio server (command ที่มันรัน) และ remote HTTP server (URL) มี Nous-approved catalog ที่ install ได้ในคลิกเดียวและ prompt ให้ใส่ key inline

ใช้จริงในทางปฏิบัติ

ก่อนสร้าง profile ให้ตอบคำถามสั้น ๆ 5 ข้อ — ทั้ง 5 ข้อจะตัดสินทุกอย่างที่ builder ถามต่อไป:

  • Folder ไหนที่มันควรเข้าถึงได้ และห้ามเกินจากนั้น?
  • Built-in tool ตัวไหนปิดได้บ้าง?
  • ต้อง write access หรือ read-only ก็เพียงพอ?
  • Secret ไหนที่ควรอยู่เฉพาะกับ profile นี้เท่านั้น?
  • รันที่ไหน — locally, ใน Docker หรือ remote backend?

ตัวอย่างที่เจาะจง: research agent ที่อ่าน code ของเราได้ แต่ไม่มีวันเปลี่ยน — web extraction on, repo write และ deploy tool off, doc MCP server และ read-only project path attached มันสรุปสิ่งที่พบและ save finding เป็น note และเพดานของสิ่งที่มันทำได้ก็แค่นั้น ต่อไปนี้คือการ build ทั้งหมด

ติดตั้ง dashboard extra เพราะ base install ไม่ ship web stack มา web extra ให้ dashboard ส่วน pty power ให้ Chat tab ใน browser:

bash
pip install 'hermes-agent[web,pty]'

ใช้ [all] ถ้าต้องการ messaging, voice และ stack ที่กว้างกว่ารวมใน install เดียว

Launch, เปิด builder, กรอก 5 field ตั้งชื่อว่า researcher, ให้ model ที่มีความสามารถพอ, toggle skill ที่ต้องการ, add filesystem MCP server ที่ชี้ไปยัง project folder จบ ตอนนี้เรามี command researcher chat แล้ว

ถ้าชอบ terminal มากกว่า builder mirror ลำดับ CLI ตรง ๆ และทั้งสองทางเขียนไฟล์เดียวกัน:

bash
hermes profile create researcher \
  --description "Reads source code and external docs, but only writes research notes."
researcher setup
researcher config set model your-provider/your-model
researcher skills install openai/skills/k8s

สิ่งที่ตกลง disk เป็น plain text อ่านได้ Model กับ MCP server อยู่ใน config.yaml, key อยู่ใน .env โดย mcp_servers เป็น map ที่ key ด้วยชื่อ server ไม่ใช่ list:

yaml
# ~/.hermes/profiles/researcher/config.yaml
model:
  default: your-provider/your-model

mcp_servers:
  filesystem:
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]

Remote HTTP server สลับ local command เป็น URL กับ header แทน:

text
mcp_servers:
  docs:
    url: "https://mcp.example.com/mcp"
    headers:
      Authorization: "Bearer ${DOCS_API_KEY}"

เพราะ profile ที่ non-secret เป็นไฟล์ plain เราเอาโครงสร้างเข้า version control ได้ อย่า commit .env, session history, memory หรือ state database เพราะมี key และ private data สำหรับการ share agent Hermes มี pattern สะอาดกว่านั้นที่เรียกว่า profile distribution — มัน package config, skill, cron job และ MCP connection พร้อม manifest โดยเว้น key และ memory ของ user แต่ละคนไว้นอก bundle ให้เอื้อมไปใช้ pattern นั้นแทนที่จะ push raw profile folder ขึ้น repo

3 Profile ที่ควรสร้างก่อน

Focused coding assistant — ให้ model ที่ code-aware, filesystem MCP server ที่ scope ให้อยู่กับ 1 project, และ skill ทาง Git กับ testing keep memory ให้ pin กับ project นั้น เพื่อให้มันหยุดสับสน repo ของสัปดาห์ก่อนกับสัปดาห์นี้

Research agent — pair model ที่แข็งกับ web-extract skill Finding ของมันแยกจากงาน coding ซึ่งสำคัญกว่าที่ฟังเผิน ๆ — research agent ดึง untrusted text เข้ามาเยอะ และเราไม่ต้องการให้ text เหล่านั้น bleed เข้าไปหา agent ที่มี write access ต่อ code

Operations bot — แนบ messaging channel, schedule cron report แล้วปล่อยให้มันรัน gateway ของตัวเองด้วย bot token ของตัวเอง Hermes เพิ่ม safeguard เล็ก ๆ แต่ real ตรงนี้ — ถ้าเผลอ hand bot token เดียวกันให้ 2 profile token lock จะจับ collision ที่ startup แล้ว block ตัวที่สองแทนที่จะปล่อยให้ทั้งคู่แย่ง webhook เดียวกัน

แต่ละ profile คือ worker ที่ isolated ตัวเดียว และรันทั้ง 3 พร้อมกันได้ ตารางด้านล่างสรุปว่าแต่ละตัวควรเปิดหรือปิด tool อะไร และช่วยลดปัญหาแบบไหนได้:

Profile เปิด tool ไหน ปิด tool ไหน ปัญหาที่ลดลง
Coder
(รันบน local หรือ Docker)
filesystem, git, test runner image generation, voice, การเข้า web แบบกว้าง สับสน repo ข้ามโปรเจกต์ และ tool call ที่ไม่จำเป็น
Researcher
(รันใน Docker)
web extract, doc, ไฟล์แบบ read-only shell write, deploy tool prompt injection ที่ bleed จากเนื้อหาภายนอกเข้าสู่ agent
Ops bot
(รันบน remote backend)
cron, messaging, status check repo write, browser automation bot token ชนกัน และ automation ที่ noisy เกินไป

จุดที่มัน “กัด”

สิ่งนี้มีประโยชน์จริง แต่มีขอบคมที่ควรรู้ก่อน trust กับข้อมูลอ่อนไหว

Isolation ครอบ state ไม่ครอบ filesystem — บน local terminal backend profile เก็บ memory และ session แยก แต่ไม่ sandbox file access Profile ยัง read/write ข้าม machine ได้ ถ้าต้องการ containment จริงให้รัน agent บน Docker backend ไม่ใช่พึ่ง profile boundary ในการป้องกัน disk

Loopback default เป็น default ที่ปลอดภัย — และวินาทีที่เราเปลี่ยน Hermes รู้ทันที Bind dashboard ไป non-loopback address จะ fail closed จนกว่าเรา config auth provider เป็น behavior ที่ถูก แต่แปลว่า remote access เป็นขั้น setup ที่ deliberate ไม่ใช่ checkbox

Change ไม่ live — Edit skill หรือ MCP server ของ profile change มีผลใน session หรือ gateway restart ถัดไป ไม่ใช่กลาง conversation Plan cycle agent หลัง reconfigure

Fleet คือ bill — Agent 3 ตัวทำงานพร้อมกันบน hosted model แปลว่ามี inference stream คู่ขนาน 3 stream ที่คิดค่าใช้จ่ายไปพร้อมกัน และ scheduled ops bot อาจเผา token เงียบ ๆ ตอนเรานอน ชี้ profile ที่ routine และ high-frequency ไปยัง model ที่ราคาถูกหรือ local model และเก็บ model ราคาแพงไว้กับงานที่คุ้มเงิน

Builder overlap กับส่วนอื่นของ dashboard — Control หลายอันที่ builder โผล่ยังอยู่ในหน้าของตัวเองด้วย ถ้าเราไปหา setting อาจเจอ 2 door เข้าห้องเดียวกัน เรื่องเล็กแต่ควรคาด

Shift ที่ควรทำความเข้าใจ

Profile Builder เป็น feature เล็กที่มีไอเดียใหญ่ซ่อนอยู่ข้างใต้ — หน่วยของ agent system ไม่ใช่ model และไม่ใช่ prompt แต่คือ profile ซึ่งเป็น directory ที่ self-contained ที่เราตั้งชื่อ, copy, version และทิ้งได้

เมื่อการ spin specialized agent ใช้เวลา 1 นาทีแทนที่จะเป็นครึ่งบ่ายที่ต้องใช้ CLI อย่างระวัง — monolith ราคาถูกก็หมด appeal เรา build archiver ที่ ingest เฉพาะ URL, reviewer ที่ read เฉพาะ folder เดียว, ops bot ที่ watch เฉพาะ server เดียว แต่ละอันเล็กพอที่จะ reason ให้ถูกต้อง และ isolated พอที่จะ fail อย่างปลอดภัย

Install extra, รัน hermes dashboard, และ build agent ที่แคบที่สุดที่คิดออก ไม่ใช่ตัวที่ทำทุกอย่าง — ตัวที่ทำสิ่งเดียวและก้าวออกจากทางของตัวเอง

เริ่มที่นี่: repo อยู่ที่ github.com/NousResearch/hermes-agent และ Profile Builder กับ dashboard doc อยู่ที่ hermes-agent.nousresearch.com/docs เลือกงาน 1 งานที่เราส่งให้ assistant ยักษ์อยู่ประจำ ให้ profile ของตัวเอง แล้วดูว่ามันเอื้อมไปหา tool ผิดน้อยลงแค่ไหน


ที่มา: Stop Building One Giant AI Agent by Kristopher Dunham — เผยแพร่ 19 มิ.ย. 2026