ผมสร้าง Local Control Plane สำหรับ Coding Agents ของผม

การใช้ AI agent หลายตัวเคยเป็นเรื่องที่วุ่นวายมาก

ผมใช้ Copilot, Claude Code และ OpenCode แต่ละเครื่องมือมี home directory, การตั้งค่า และหน่วยความจำ (memory) เป็นของตัวเอง ทุกครั้งที่ผมเพิ่มทักษะหรือกฎใหม่ๆ ผมต้องคอยถามว่า: เครื่องมือตัวนี้คาดหวังให้เก็บไว้ที่ไหน?

home directory ของผมกลายเป็นเหมือนลิ้นชักเก็บของจิปาถะที่เต็มไปด้วยโฟลเดอร์ AI

ผมลองใช้ไฟล์ Markdown เพื่อส่งต่อแผนงานระหว่าง agent มันช่วยได้บ้างแต่ก็ยังไม่ได้ผล เพราะ agent ตัวหนึ่งอาจจะข้ามสมมติฐานบางอย่างไป และ agent ตัวถัดไปก็จะให้ผลลัพธ์ที่ผิดพลาด ไฟล์ช่วยให้ข้อมูลได้ แต่ไม่สามารถให้บริบท (context) ที่ใช้ร่วมกันได้

ผมต้องการวิธีที่จะ:

  • เขียนกฎระดับสูงเพียงครั้งเดียว
  • เก็บกฎการอนุญาตไว้ในที่เดียว
  • เลิกคัดลอกทักษะด้วยตัวเอง
  • แชร์หน่วยความจำข้ามโปรเจกต์และเซสชันต่างๆ

ผมจึงสร้าง local control plane ขึ้นมาเพื่อแก้ปัญหานี้

หัวใจสำคัญของการตั้งค่าของผมคือไดเรกทอรีเดียว: ~/.ai.

แทนที่จะใช้โฟลเดอร์ที่กระจัดกระจาย ผมใช้ symlinks แทน เครื่องมือต่างๆ จะคิดว่าพวกมันอยู่ในพื้นที่ของตัวเอง แต่โครงสร้างที่แท้จริงนั้นรวมอยู่ที่เดียว ผมส่งทราฟฟิกของโมเดลทั้งหมดผ่าน local proxy และใช้ฐานข้อมูล SQLite ร่วมกันสำหรับหน่วยความจำผ่าน MCP

สิ่งนี้ช่วยแยกงานสองอย่างออกจากกัน:

  1. Routing: คำขอของโมเดลจะผ่าน local proxy ก่อนจะส่งไปยังผู้ให้บริการ
  2. Memory: ข้อมูลที่เป็นข้อเท็จจริงระยะยาวจะถูกเก็บไว้ในที่เก็บข้อมูลในเครื่อง (local store)

ถ้าโมเดลทำงานแปลกๆ ผมจะเช็คที่ proxy ถ้า agent ลืมรายละเอียดบางอย่าง ผมจะเช็คที่ memory สิ่งนี้ทำให้การดีบั๊ก (debugging) เป็นเรื่องง่าย

หน่วยความจำที่ใช้ร่วมกันของผมจะเก็บสิ่งที่ต้องใช้ความพยายามสูงในการค้นพบใหม่:

  • การตัดสินใจในโปรเจกต์
  • บันทึกเกี่ยวกับสถาปัตยกรรม
  • ความชอบในเวิร์กโฟลว์
  • บั๊กที่เกิดขึ้นซ้ำๆ

ผมยังรวมศูนย์ความปลอดภัยไว้ด้วย ผมใช้ไฟล์ที่ใช้ร่วมกันสำหรับมาตรฐานการเขียนโค้ดและคำสั่งที่ถูกสั่งห้าม สิ่งนี้ช่วยให้มั่นใจได้ว่าการสลับจาก agent ตัวหนึ่งไปยังอีกตัวหนึ่งจะไม่ทำให้ความปลอดภัยของสภาพแวดล้อมเปลี่ยนไป

นี่ไม่ใช่เรื่องของการหา agent ที่สมบูรณ์แบบเพียงตัวเดียว แต่มันคือการทำให้มั่นใจว่า agent ของผมมีบริบทที่เพียงพอต่อการแบ่งปัน เพื่อที่การสลับไปมาระหว่างพวกมันจะไม่รู้สึกเหมือนต้องเริ่มนับหนึ่งใหม่

Source: https://dev.to/sperekrestova/i-built-a-local-control-plane-for-my-coding-agents-1bf7

Optional learning community: https://t.me/GyaanSetuAi