SSekApp Stories
บทที่ 5 · Agent architecture

เบื้องหลัง AI ทีมของผม

Agent 1 ตัวไม่ได้เริ่มจากแชทว่างๆ แต่มัน boot จาก folder, rule, memory, shared guide แล้วค่อยไปเช็ค Linear/GitLab ก่อนขยับงานจริง

🍊
Blue / SekApp LabTechnical story · อ่านประมาณ 6 นาที
Agent Knowledge Tree: folder และ source ที่ AI agent อ่านตอนเริ่ม session
ตัวอย่าง knowledge tree ของ agent 1 ตัว: อ่าน folder ตัวเองก่อน แล้วค่อยไป shared rules และ source of truth

ใน setup ของผม agent แต่ละตัวไม่ได้เริ่มจาก prompt ลอยๆ มันมี boot process ของตัวเองก่อนจะรับงาน

ผมสนใจจุดนี้มากกว่า model ว่าฉลาดแค่ไหน คือมันต้องเริ่มจาก context ที่ถูกต้อง เชื่อข้อมูลชุดเดียวกัน และรู้ว่าข้อมูลไหนเป็นแค่ความจำเก่า

ผมไม่ได้พยายามทำให้ AI จำทุกอย่าง แต่พยายามทำให้มันรู้ว่าต้องไปอ่านอะไร

ถ้าไม่มี architecture ตรงนี้ state งานจะกระจายเร็วมาก คนนึงบอกเสร็จ อีกคนนึงยังไม่เห็น MR อีกตัวนึงหยิบ conversation เก่ามาตอบเหมือนเป็นข้อมูลล่าสุด

ภาพรวม architecture ล่าสุดของ SekApp/OpenClaw: Aura อยู่เป็น executive intelligence layer ครอบระบบ ไม่ใช่ step ใน workflow ส่วนงานจริงยังวิ่งผ่าน approval, Linear, GitLab, deploy, staging และ QA — กดรูปเพื่อขยายดูรายละเอียด

ผมแยก workspace ให้แต่ละ agent

แต่ละ agent มี folder ของตัวเอง เช่น dev, devops, qa, uxui, po อันนี้ไม่ได้ทำเพื่อให้ดูเป็น role play แต่เพื่อแยก operating context ให้ชัด

workspace-dev/ AGENTS.md # rules ของ Dev SOUL.md # identity / tone MEMORY.md # long-term memory ของ agent memory/ # daily notes + chat logs shared/ README.md knowledge/dev-guide.md standards/*.md scripts/*.md

ตอน start agent ส่วนใหญ่จะถูกสั่งให้อ่านของตัวเองก่อน เช่น AGENTS.md, SOUL.md, memory/ แล้วค่อยอ่าน shared/README.md กับ role guide ของตัวเอง

ตรงนี้ช่วยลดปัญหาว่า Dev คิดแบบ QA หรือ QA ไปทำตัวเป็น DevOps เพราะแต่ละตัวมีกติกาของตัวเอง มี memory ของตัวเอง และมี guide ของ role ตัวเอง

แต่ source of truth ผมไม่ให้ไปอยู่ใน memory

memory ช่วยจำ context ได้ แต่เวลาตอบเรื่องสถานะงาน requirement code deploy หรือ QA ผมให้กลับไปเช็ค Linear กับ GitLab ก่อน

Linearissue, status, label, assignee, project, next step
GitLabrepo, branch, MR, diff, commit, file, artifact
Shared fileshandoff และ operational context ใช้ประกอบ แต่ไม่ใช่ final truth
Memoryช่วยจำสิ่งที่คุยมา แต่ต้อง cross-check ก่อนใช้ตัดสิน state ปัจจุบัน

ถ้า AI บอกว่าส่ง QA แล้ว แต่ Linear ยังไม่ได้อยู่ฝั่ง QA ผมยังถือว่างานยังไม่ไป QA ถ้า AI บอกว่าแก้ code แล้ว แต่ GitLab ไม่มี commit หรือ MR ให้ดู ผมก็ยังไม่ถือว่ามีของจริง

อันนี้ทำให้ระบบดูแข็งขึ้นนิดนึง แต่ผมชอบ เพราะมันบังคับให้ทุกคำว่า “เสร็จแล้ว” ต้องมีอะไรให้คนเปิดเช็คต่อได้

การส่งงานต่อไม่ได้ให้ AI ทักกันมั่วๆ

ผมเคยลองหลายแบบ สุดท้าย flow ที่คุมง่ายกว่าคือให้ agent สร้าง handoff file แล้วมี relay script ไปส่งต่อเอง

UX/UI done ↓ write shared/handoff/to-dev-project-timestamp.md ↓ relay.sh reads file ↓ Discord delivery + Linear sync ↓ Dev receives work with issue + links + context

ข้อดีคือมันมี artifact เหลือไว้ ถ้างานหายหรือคนต้อง audit ย้อนหลัง อย่างน้อยยังมีไฟล์ handoff กับ Linear/GitLab link ให้ตามต่อ ไม่ใช่มีแค่ข้อความในแชทที่หาไม่เจอ

อีกอย่างคือมันลด cost และลดความมั่วของการให้ AI คุยข้าม agent ตรงๆ เพราะการส่งงานกลายเป็น file + script + status update ที่ตรวจย้อนหลังได้

Qdrant มี แต่ผมไม่ให้เป็น default truth

ระบบมี Qdrant เก็บ conversation archive กับ snapshot บางอย่างไว้จริง อันนี้มีประโยชน์มากตอนอยากค้นย้อนหลัง เช่น เคยคุยอะไรไว้ handoff เก่าหาย หรืออยาก audit ว่า decision มาจากไหน

แต่ผมไม่อยากให้ agent ทุกตัวค้น Qdrant ทุกครั้งแล้วเอามาตอบเป็นสถานะล่าสุด เพราะ vector search เก่งเรื่อง recall ไม่ได้แปลว่ามันคือ current state ของงาน

policy ที่ผมล็อกไว้เลยคือ Qdrant ใช้เมื่อคนสั่งค้นย้อนหลัง หรือใช้ recover context เท่านั้น ถ้าเอาข้อมูลจาก Qdrant มาใช้ ต้องบอกชัดว่ามาจาก archive แล้วต้อง cross-check กับ Linear/GitLab ก่อน

Qdrant เอาไว้จำ conversation เก่า แต่ Linear กับ GitLab เอาไว้บอกว่างานตอนนี้เป็นยังไง

สุดท้ายผมออกแบบให้มันรับไม้ต่อกันได้

ภาพที่ผมอยากได้ไม่ใช่ AI ที่เก่งที่สุดตัวเดียว แต่เป็นทีมเล็กๆ ที่แต่ละตัวรู้ขอบเขตตัวเอง รู้ว่าจะอ่าน context จากไหน เชื่ออะไร ส่งต่อยังไง และต้องรอ approval ตรงไหน

ถ้า AI หาย คนยังเปิด Linear / GitLab / Discord / staging แล้วทำต่อได้ ถ้า AI กลับมา มันก็อ่าน source เดียวกับคนแล้วทำต่อจาก state ล่าสุด ไม่ต้องเริ่มจากการเดาว่าก่อนหน้านี้คุยอะไรไว้

ตอนนี้ flow นี้ยังถูกปรับอยู่เรื่อยๆ แต่สำหรับผม architecture เริ่มสำคัญพอๆ กับ prompt หรือ model แล้ว