สรุปย่อ (TL;DR)
เพิ่มหน่วยความจำถาวรให้เอเจนต์ AI ใน 4 ขั้นตอน: (1) ตั้งค่าเซิร์ฟเวอร์หน่วยความจำ MCP ด้วยเครื่องมือ remember, recall, search และ rollback, (2) เพิ่มคำสั่งหน่วยความจำลงในพรอมต์ของเอเจนต์, (3) กำหนดค่า ~/.claude/settings.json สำหรับ Claude Code หรือ .cursor/mcp.json สำหรับ Cursor, (4) ใช้รูปแบบหน่วยความจำสำหรับการบันทึกการตัดสินใจ, การส่งต่องานระหว่างเอเจนต์ และจุดตรวจสอบเซสชัน เอเจนต์จะเก็บรักษาบริบทข้ามเซสชัน — ไม่ต้องคัดลอกและวางการสนทนาก่อนหน้าอีกต่อไป
แก้ปัญหา “ฉันจำเรื่องเมื่อวานไม่ได้” เพิ่มหน่วยความจำถาวรให้เอเจนต์ AI โดยใช้โปรโตคอล MCP แล้วพวกเขาจะจดจำการตัดสินใจ สิ่งที่ส่งมอบได้ และบริบทจากเซสชันก่อนหน้า
คุณรู้จักวิธีปฏิบัตินี้ดี:
วันแรก: "สร้างระบบยืนยันตัวตนผู้ใช้"
เอเจนต์: [สร้าง JWT auth, สร้างตาราง users, implements refresh tokens]
วันที่สอง: "ทำต่อจากเมื่อวาน"
เอเจนต์: "ฉันไม่มีบริบทจากเซสชันก่อนหน้า คุณช่วยวางสิ่งที่เราทำไปแล้วได้ไหม?"
คุณคัดลอกและวางการสนทนาก่อนหน้า เอเจนต์อ่านบริบท 2000 บรรทัด คุณทั้งคู่เสียเวลา 15 นาทีเพื่อทำความเข้าใจให้ทันกัน
หน่วยความจำถาวรแก้ไขปัญหานี้ ด้วยหน่วยความจำ MCP (Model Context Protocol) เอเจนต์จะจัดเก็บการตัดสินใจโดยอัตโนมัติและเรียกคืนเมื่อจำเป็น ไม่ต้องคัดลอกวาง ไม่ต้องอธิบายซ้ำ
ในบทช่วยสอนนี้ คุณจะได้ตั้งค่าหน่วยความจำ MCP สำหรับเอเจนต์ AI คุณจะได้เรียนรู้วิธีจัดเก็บการตัดสินใจจากเซสชันของ Backend Architect, เรียกคืนบริบทเมื่อเปลี่ยนไปใช้ Database Optimizer และส่งมอบสิ่งที่ทำสำเร็จแล้วให้ Frontend Developer — ทั้งหมดนี้โดยไม่สูญเสียบริบท รูปแบบหน่วยความจำเดียวกันนี้ใช้ได้ไม่ว่าคุณจะสร้าง API ด้วยการรวม Apidog หรือจัดการสปรินต์การพัฒนาหลายวัน
หน่วยความจำ MCP คืออะไร?
หน่วยความจำ MCP ช่วยให้เอเจนต์ AI จัดเก็บและเรียกคืนข้อมูลข้ามเซสชัน ลองนึกภาพว่าเป็นสมุดบันทึกที่ใช้ร่วมกันซึ่งเอเจนต์สามารถเขียนและอ่านได้
เครื่องมือสี่อย่างที่ขับเคลื่อนหน่วยความจำ MCP:
| เครื่องมือ | วัตถุประสงค์ | ตัวอย่าง |
|---|---|---|
remember |
จัดเก็บข้อมูลพร้อมแท็ก | บันทึก “users table with UUID, bcrypt” |
recall |
ค้นหาด้วยคีย์เวิร์ดหรือแท็ก | ค้นหา “auth decisions” |
rollback |
คืนค่ากลับสู่สถานะก่อนหน้า | ยกเลิกการเปลี่ยนแปลงสคีมาที่ไม่ดี |
search |
ค้นหาข้ามเซสชัน | “Backend Architect ตัดสินใจอะไรไปบ้าง?” |
┌─────────────────┐ ┌──────────────────┐ ┌─────────────┐
│ AI Agent │ │ MCP Memory │ │ Storage │
│ (Claude Code) │◄───────►│ Server │◄───────►│ (SQLite) │
└─────────────────┘ JSON └──────────────────┘ I/O └─────────────┘
ขั้นตอนที่ 1: ตั้งค่าเซิร์ฟเวอร์หน่วยความจำ MCP
คุณต้องมีเซิร์ฟเวอร์ MCP ที่เปิดเผยเครื่องมือหน่วยความจำ มีการใช้งานแบบโอเพนซอร์สหลายรายการ
ตัวเลือก A: ใช้เซิร์ฟเวอร์หน่วยความจำโฮสต์
npm install -g @example/mcp-memory-server
ตัวเลือก B: เรียกใช้เซิร์ฟเวอร์ภายในเครื่องแบบง่ายๆ
สร้าง memory-server.js:
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
import fs from "fs/promises";
import path from "path";
const MEMORY_FILE = path.join(process.env.HOME, ".mcp-memory", "memories.json");
const server = new McpServer({
name: "memory",
version: "1.0.0"
});
// Ensure memory file exists
async function initMemory() {
await fs.mkdir(path.dirname(MEMORY_FILE), { recursive: true });
try {
await fs.access(MEMORY_FILE);
} catch {
await fs.writeFile(MEMORY_FILE, JSON.stringify([]));
}
}
// Tool: remember
server.tool(
"remember",
{
content: z.string().describe("Information to store"),
tags: z.array(z.string()).describe("Tags for retrieval (e.g., ['backend', 'auth'])"),
agent: z.string().optional().describe("Agent name for tagging")
},
async ({ content, tags, agent }) => {
await initMemory();
const memories = JSON.parse(await fs.readFile(MEMORY_FILE, "utf-8"));
const memory = {
id: Date.now().toString(),
content,
tags,
agent,
timestamp: new Date().toISOString()
};
memories.push(memory);
await fs.writeFile(MEMORY_FILE, JSON.stringify(memories, null, 2));
return { content: [{ type: "text", text: `Stored memory with tags: ${tags.join(", ")}` }] };
}
);
// Tool: recall
server.tool(
"recall",
{
query: z.string().describe("Search query or tag to find"),
agent: z.string().optional().describe("Filter by agent name")
},
async ({ query, agent }) => {
await initMemory();
const memories = JSON.parse(await fs.readFile(MEMORY_FILE, "utf-8"));
const results = memories.filter(m => {
const matchesQuery = m.content.toLowerCase().includes(query.toLowerCase()) ||
m.tags.some(t => t.toLowerCase().includes(query.toLowerCase()));
const matchesAgent = !agent || m.agent === agent;
return matchesQuery && matchesAgent;
});
return {
content: [{
type: "text",
text: results.length === 0
? "No memories found"
: results.map(m => `[${m.timestamp}] ${m.content}`).join("\n\n")
}]
};
}
);
// Tool: search
server.tool(
"search",
{
tags: z.array(z.string()).describe("Tags to search for"),
limit: z.number().optional().default(10)
},
async ({ tags, limit }) => {
await initMemory();
const memories = JSON.parse(await fs.readFile(MEMORY_FILE, "utf-8"));
const results = memories
.filter(m => tags.some(t => m.tags.includes(t)))
.slice(0, limit);
return {
content: [{
type: "text",
text: results.map(m => `[${m.agent || "unknown"}] ${m.content}`).join("\n\n")
}]
};
}
);
// Tool: rollback
server.tool(
"rollback",
{
agent: z.string().describe("Agent name to rollback"),
timestamp: z.string().describe("Rollback to this timestamp")
},
async ({ agent, timestamp }) => {
await initMemory();
const memories = JSON.parse(await fs.readFile(MEMORY_FILE, "utf-8"));
const rolledBack = memories.filter(m =>
m.agent !== agent || new Date(m.timestamp) <= new Date(timestamp)
);
await fs.writeFile(MEMORY_FILE, JSON.stringify(rolledBack, null, 2));
return {
content: [{
type: "text",
text: `Rolled back ${agent} to ${timestamp}`
}]
};
}
);
const transport = new StdioServerTransport();
await server.connect(transport);
เรียกใช้เซิร์ฟเวอร์:
node memory-server.js
ขั้นตอนที่ 2: เพิ่มคำสั่งหน่วยความจำไปยังเอเจนต์ใดก็ได้
คุณไม่จำเป็นต้องแก้ไขไฟล์เอเจนต์ เพียงเพิ่มคำสั่งหน่วยความจำในพรอมต์ของคุณ:
คุณสามารถเข้าถึงเครื่องมือหน่วยความจำ MCP ได้: remember, recall, search, rollback
ปฏิบัติตามโปรโตคอลหน่วยความจำเหล่านี้:
**เมื่อคุณเริ่มเซสชัน:**
1. เรียกคืนบริบท: recall(query="ecommerce-api", agent="Backend Architect")
2. ตรวจสอบรายการที่รอดำเนินการจากเซสชันล่าสุด
**เมื่อคุณทำงานเสร็จสิ้น:**
1. จดจำสิ่งที่ทำสำเร็จพร้อมแท็ก:
- remember(content="Created users table with UUID primary key, bcrypt password hashing, JWT auth with refresh tokens", tags=["ecommerce-api", "database", "auth"], agent="Backend Architect")
2. ระบุการตัดสินใจที่ทำไปแล้วและรายการที่รอดำเนินการ
**เมื่อส่งต่องานไปยังเอเจนต์อื่น:**
1. ทิ้งบริบทไว้สำหรับเอเจนต์ผู้รับ:
- remember(content="API endpoints: /auth/login, /auth/register, /products, /orders. Auth flow: JWT access token (15min) + refresh token (7 days). Known issue: rate limiting not yet implemented", tags=["ecommerce-api", "handoff"], agent="Backend Architect", for="Frontend Developer")
**เมื่อมีบางอย่างล้มเหลว:**
1. ค้นหาสถานะที่ทราบว่าดีที่สุดครั้งล่าสุด
2. ใช้ rollback เพื่อกู้คืน
ตัวอย่างการใช้งาน:
คุณ: "เปิดใช้งานโหมด Backend Architect ออกแบบระบบผู้ใช้สำหรับ e-commerce API ของเรา"
[เอเจนต์ออกแบบระบบ, สร้างสคีมา, implements auth]
เอเจนต์: "ระบบผู้ใช้เสร็จสมบูรณ์ กำลังจัดเก็บหน่วยความจำ..."
→ เรียกใช้: remember("users table with UUID, bcrypt, JWT + refresh tokens", tags: ["ecommerce-api", "auth", "database"])
[เซสชันสิ้นสุด]
[วันถัดไป]
คุณ: "ทำต่อจากเมื่อวาน"
เอเจนต์: "กำลังเรียกคืนบริบท..."
→ เรียกใช้: recall(query="ecommerce-api")
→ คืนค่า: "users table with UUID, bcrypt, JWT + refresh tokens"
เอเจนต์: "เมื่อวานฉันออกแบบตารางผู้ใช้ด้วย UUID primary keys, implements bcrypt password hashing, และตั้งค่า JWT authentication พร้อม refresh tokens ขั้นตอนต่อไป: สคีมาแคตตาล็อกสินค้า พร้อมทำงานต่อ"
ขั้นตอนที่ 3: กำหนดค่าสำหรับ Claude Code
เพิ่มเซิร์ฟเวอร์หน่วยความจำลงในการกำหนดค่า MCP ของคุณ:
แก้ไข ~/.claude/settings.json:
{
"mcpServers": {
"memory": {
"command": "node",
"args": ["/absolute/path/to/memory-server.js"],
"env": {
"HOME": "/Users/your-username"
}
}
}
}
รีสตาร์ท Claude Code เครื่องมือหน่วยความจำควรพร้อมใช้งานแล้ว
ทดสอบ:
ใช้เครื่องมือ remember เพื่อจัดเก็บ: "Test memory for ecommerce project"
แท็ก: ["test", "ecommerce-api"]
ใช้เครื่องมือ recall เพื่อค้นหาหน่วยความจำเกี่ยวกับ "test"
ขั้นตอนที่ 4: กำหนดค่าสำหรับ Cursor
สร้าง .cursor/mcp.json ในโปรเจกต์ของคุณ:
{
"mcpServers": {
"memory": {
"command": "node",
"args": ["/absolute/path/to/memory-server.js"]
}
}
}
ทดสอบ:
@memory remember "Starting ecommerce API project with PostgreSQL"
แท็ก: ["ecommerce-api", "setup"]
@memory recall query="ecommerce"
รูปแบบหน่วยความจำสำหรับเวิร์กโฟลว์จริง
รูปแบบที่ 1: การบันทึกการตัดสินใจ
ทุกครั้งที่คุณตัดสินใจทางเทคนิค ให้บันทึกไว้:
remember({
content: "Chose PostgreSQL over MySQL for: (1) JSONB support for flexible product attributes, (2) better full-text search, (3) UUID native support",
tags: ["ecommerce-api", "database", "decision"],
agent: "Backend Architect"
})
ภายหลัง เมื่อมีคนถามว่า “ทำไมถึงใช้ PostgreSQL?”:
recall(query="PostgreSQL MySQL decision")
รูปแบบที่ 2: การส่งต่องานระหว่างเอเจนต์
เมื่อเปลี่ยนเอเจนต์ ให้ทิ้งบันทึกการส่งต่องานไว้:
remember({
content: "Backend complete. Endpoints: POST /auth/login, POST /auth/register, GET /products, POST /orders. Auth: JWT 15min access + 7 day refresh. Pending: rate limiting, email verification. Frontend needs: login form, product list, cart, checkout.",
tags: ["ecommerce-api", "handoff", "backend-complete"],
agent: "Backend Architect",
for: "Frontend Developer"
})
Frontend Developer เริ่มต้นด้วย:
recall(query="handoff", agent="Backend Architect")
รูปแบบที่ 3: จุดตรวจสอบเซสชัน
เมื่อสิ้นสุดแต่ละเซสชันการทำงาน:
remember({
content: "Session complete. Done: users table, auth endpoints, product schema. Next session: order system, payment webhook. Blockers: waiting for Stripe API keys.",
tags: ["ecommerce-api", "checkpoint", "session-1"],
agent: "Backend Architect"
})
ดำเนินการต่อในเซสชันถัดไป:
recall(query="checkpoint session-1")
รูปแบบที่ 4: การติดตามข้อผิดพลาด (Bug Tracking)
เมื่อคุณพบข้อผิดพลาด:
remember({
content: "BUG: Refresh token not expiring after logout. Token stored in memory, not persisted. Fix: move to Redis with TTL.",
tags: ["ecommerce-api", "bug", "auth"],
agent: "Code Reviewer",
severity: "high"
})
ค้นหาข้อผิดพลาดในภายหลัง:
search(tags=["bug", "ecommerce-api"])
การแก้ไขปัญหา
หน่วยความจำไม่คงอยู่:
- ตรวจสอบพาธไฟล์หน่วยความจำ (
~/.mcp-memory/memories.json) - ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ MCP กำลังทำงานอยู่
- ตรวจสอบว่า Claude Code/Cursor มีการกำหนดค่า MCP
ผลลัพธ์มากเกินไปเมื่อเรียกคืน:
- เพิ่มแท็กที่เฉพาะเจาะจงมากขึ้น
- กรองด้วยชื่อเอเจนต์
- ใช้ประโยคที่ตรงตามตัวอักษรในเครื่องหมายคำพูด
ไฟล์หน่วยความจำมีขนาดใหญ่ขึ้น:
- เก็บถาวรหน่วยความจำเก่าเป็นระยะ
- ใช้
rollbackเพื่อล้างโปรเจกต์ที่เสร็จสมบูรณ์แล้ว - เพิ่มวันหมดอายุในสคีมาหน่วยความจำของคุณ
สิ่งที่คุณสร้าง
| ส่วนประกอบ | วัตถุประสงค์ |
|---|---|
| MCP Memory Server | จัดเก็บ/เรียกคืนข้อมูลข้ามเซสชัน |
เครื่องมือ remember |
บันทึกการตัดสินใจ, สิ่งที่ส่งมอบได้, การส่งต่องาน |
เครื่องมือ recall |
ค้นหาบริบทจากเซสชันก่อนหน้า |
เครื่องมือ search |
สืบค้นด้วยแท็กจากหน่วยความจำทั้งหมด |
เครื่องมือ rollback |
คืนค่ากลับสู่สถานะก่อนหน้าเมื่อจำเป็น |
| รูปแบบหน่วยความจำ | การบันทึกการตัดสินใจ, การส่งต่องาน, จุดตรวจสอบ, การติดตามข้อผิดพลาด |
ขั้นตอนต่อไป
ขยายเซิร์ฟเวอร์หน่วยความจำ:
- เพิ่มการค้นหาเชิงความหมายด้วย embeddings
- ใช้งานการหมดอายุของหน่วยความจำ (เก็บถาวรอัตโนมัติหลังจาก 30 วัน)
- เพิ่มการสรุปหน่วยความจำ (ย่อเซสชันที่ยาวนาน)
สร้างหน่วยความจำทีม:
- แชร์เซิร์ฟเวอร์หน่วยความจำส่วนกลางทั่วทั้งทีมของคุณ
- แท็กหน่วยความจำตามโปรเจกต์และนักพัฒนา
- สร้างขั้นตอนการเริ่มต้นสำหรับสมาชิกทีมใหม่
ผสานรวมกับเครื่องมือ:
- บันทึก git commits เป็นหน่วยความจำโดยอัตโนมัติ
- ซิงค์กับระบบจัดการโปรเจกต์ (Jira, Linear)
- ส่งออกหน่วยความจำไปยังเอกสารประกอบ
การแก้ไขปัญหาทั่วไป
หน่วยความจำไม่คงอยู่ระหว่างเซสชัน:
- ตรวจสอบว่าเซิร์ฟเวอร์ MCP กำลังทำงานอยู่ก่อนที่จะเริ่ม Claude Code
- ตรวจสอบว่าพาธไฟล์หน่วยความจำมีอยู่จริง:
ls -la ~/.mcp-memory/memories.json - ตรวจสอบให้แน่ใจว่าสิทธิ์ของไฟล์อนุญาตให้อ่าน/เขียน:
chmod 644 ~/.mcp-memory/memories.json - ยืนยันการกำหนดค่าเซิร์ฟเวอร์ใน
~/.claude/settings.jsonชี้ไปยังพาธที่ถูกต้อง
การเรียกคืนส่งคืนผลลัพธ์ว่างเปล่า:
- ตรวจสอบว่าคำค้นหาตรงกับแท็กที่จัดเก็บไว้ (คำนึงถึงตัวพิมพ์เล็ก/ใหญ่)
- ลองใช้คำค้นหาที่กว้างขึ้น หรือใช้
searchกับแท็กที่เฉพาะเจาะจง - ตรวจสอบว่าหน่วยความจำถูกจัดเก็บจริงหรือไม่:
cat ~/.mcp-memory/memories.json - ตรวจสอบว่าตัวกรองชื่อเอเจนต์ตรงกัน (หากใช้พารามิเตอร์
agent)
ไฟล์หน่วยความจำมีขนาดใหญ่เกินไป:
- ใช้การเก็บถาวรอัตโนมัติสำหรับหน่วยความจำที่เก่ากว่า 30 วัน
- เพิ่มเครื่องมือ
pruneที่ลบหน่วยความจำตามช่วงวันที่ - แยกหน่วยความจำออกเป็นไฟล์แยกกันตามโปรเจกต์หรือวันที่
- ใช้แบ็คเอนด์ฐานข้อมูล (SQLite) แทน JSON สำหรับการใช้งานขนาดใหญ่
เซิร์ฟเวอร์ไม่สามารถเริ่มต้นได้:
- ตรวจสอบเวอร์ชัน Node.js:
node --version(ควรเป็น 18+) - ติดตั้ง dependencies ที่ขาดหายไป:
npm install @modelcontextprotocol/sdk zod - มองหาข้อผิดพลาดทางไวยากรณ์ในโค้ดเซิร์ฟเวอร์
- เรียกใช้โดยตรงเพื่อดูข้อผิดพลาด:
node memory-server.js
เอเจนต์หลายตัวเขียนทับหน่วยความจำของกันและกัน:
- ใส่ฟิลด์
agentเสมอเมื่อเรียกใช้remember - ใช้แท็กที่ไม่ซ้ำกันสำหรับแต่ละโปรเจกต์:
["project-x", "backend", "auth"] - กรองการเรียกคืนด้วยชื่อเอเจนต์เมื่อเรียกบริบท
- พิจารณาใช้ไฟล์หน่วยความจำแยกกันสำหรับแต่ละโปรเจกต์
ข้อควรพิจารณาด้านความปลอดภัยของเซิร์ฟเวอร์หน่วยความจำ
การจัดเก็บ API Key:หากเซิร์ฟเวอร์หน่วยความจำของคุณจัดเก็บข้อมูลที่ละเอียดอ่อน (API key, รหัสผ่าน) ให้ใช้การเข้ารหัส:
import crypto from 'crypto';
const ENCRYPTION_KEY = process.env.MEMORY_ENCRYPTION_KEY;
const ALGORITHM = 'aes-256-gcm';
function encrypt(text) {
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv(ALGORITHM, Buffer.from(ENCRYPTION_KEY), iv);
const encrypted = cipher.update(text, 'utf8', 'hex');
return {
encryptedData: encrypted + cipher.final('hex'),
iv: iv.toString('hex'),
authTag: cipher.getAuthTag().toString('hex')
};
}
function decrypt(encrypted) {
const decipher = crypto.createDecipheriv(
ALGORITHM,
Buffer.from(ENCRYPTION_KEY),
Buffer.from(encrypted.iv, 'hex')
);
decipher.setAuthTag(Buffer.from(encrypted.authTag, 'hex'));
return decipher.update(encrypted.encryptedData, 'hex', 'utf8') + decipher.final('utf8');
}
การควบคุมการเข้าถึง:สำหรับเซิร์ฟเวอร์หน่วยความจำของทีม ให้เพิ่มการยืนยันตัวตน:
- ต้องใช้ API key ในการเรียกเครื่องมือหน่วยความจำ
- ใช้ namespaces หน่วยความจำเฉพาะผู้ใช้
- บันทึกการทำงานของหน่วยความจำทั้งหมดเพื่อการตรวจสอบ
- จำกัดอัตราการร้องขอต่อผู้ใช้
ตอนนี้เอเจนต์ AI ของคุณมีหน่วยความจำถาวรแล้ว พวกเขาจดจำเรื่องเมื่อวาน พวกเขาเรียกคืนการตัดสินใจ พวกเขาส่งต่อบริบทโดยไม่ต้องคัดลอกวาง
ไม่มีอีกแล้วกับ “ฉันไม่มีบริบทจากเซสชันก่อนหน้า” ไม่มีอีกแล้วกับการอธิบายซ้ำ ไม่มีอีกแล้วกับการเสียเวลา
นั่นคือพลังของหน่วยความจำ MCP: มอบสมุดบันทึกที่ใช้ร่วมกันให้เอเจนต์ของคุณ แล้วดูว่าพวกเขาจะมีประโยชน์จริง ๆ อย่างไรในโปรเจกต์ที่กินเวลาหลายวัน
คำถามที่พบบ่อย
หน่วยความจำ MCP คืออะไร?หน่วยความจำ MCP คือการนำโปรโตคอลมาใช้ที่ช่วยให้เอเจนต์ AI จัดเก็บและเรียกคืนข้อมูลข้ามเซสชัน ลองนึกภาพว่าเป็นสมุดบันทึกที่ใช้ร่วมกันซึ่งเอเจนต์สามารถเขียนและอ่านได้ โดยคงบริบทไว้ได้เหนือการสนทนาครั้งเดียว
ฉันจะตั้งค่าหน่วยความจำถาวรสำหรับ Claude Code ได้อย่างไร?ติดตั้งเซิร์ฟเวอร์หน่วยความจำ MCP จากนั้นเพิ่มลงใน ~/.claude/settings.json พร้อมคำสั่งเซิร์ฟเวอร์และพาธ รีสตาร์ท Claude Code แล้วเครื่องมือหน่วยความจำ (remember, recall, search, rollback) จะพร้อมใช้งาน
เอเจนต์ AI ใดบ้างที่รองรับหน่วยความจำ MCP?เอเจนต์ใดก็ตามที่ทำงานบนไคลเอนต์ที่เข้ากันได้กับ MCP (Claude Code, Cursor, Windsurf) สามารถใช้เครื่องมือหน่วยความจำได้ คุณไม่จำเป็นต้องแก้ไขไฟล์เอเจนต์—เพียงเพิ่มคำสั่งหน่วยความจำลงในพรอมต์ของคุณ
รูปแบบหน่วยความจำที่ดีที่สุดสำหรับการส่งต่องานระหว่างเอเจนต์คืออะไร?ใช้ remember กับแท็กเช่น ["handoff", "project-name"] เพื่อทิ้งบริบทไว้สำหรับเอเจนต์ถัดไป รวมถึงงานที่ทำเสร็จแล้ว, รายการที่รอดำเนินการ, และปัญหาที่ทราบ เอเจนต์ผู้รับจะเรียกใช้ recall(query="handoff") เพื่อเรียกคืนข้อมูลนั้น
เซิร์ฟเวอร์ MCP สามารถจัดเก็บหน่วยความจำได้มากแค่ไหน?ขึ้นอยู่กับการใช้งาน เซิร์ฟเวอร์อ้างอิงใช้ไฟล์ JSON ที่มีขนาดเพิ่มขึ้นเรื่อยๆ เซิร์ฟเวอร์ที่ใช้ในงานจริงควรกำหนดนโยบายการหมดอายุ, การเก็บถาวรอัตโนมัติ หรือใช้แบ็คเอนด์ฐานข้อมูลสำหรับการใช้งานขนาดใหญ่
ทีมสามารถแชร์เซิร์ฟเวอร์หน่วยความจำส่วนกลางได้หรือไม่?ได้ เรียกใช้เซิร์ฟเวอร์หน่วยความจำบนเครื่องที่ใช้ร่วมกันหรืออินสแตนซ์คลาวด์ กำหนดค่าไคลเอนต์ของสมาชิกทีมทั้งหมดให้เชื่อมต่อกับเซิร์ฟเวอร์นั้น และแท็กหน่วยความจำตามโปรเจกต์และนักพัฒนาเพื่อการเรียกคืนที่เป็นระบบ
จะทำอย่างไรหากการเรียกคืนหน่วยความจำส่งคืนผลลัพธ์มากเกินไป?เพิ่มแท็กที่เฉพาะเจาะจงมากขึ้นเมื่อจัดเก็บหน่วยความจำ กรองด้วยชื่อเอเจนต์ในการสืบค้นการเรียกคืนของคุณ ใช้ประโยคที่ตรงตามตัวอักษรในเครื่องหมายคำพูด พิจารณาใช้การค้นหาเชิงความหมายด้วย embeddings เพื่อการเรียกคืนที่ฉลาดขึ้น
