หน่วยความจำเชิงกระบวนการ (คลังทักษะ)
คลังลำดับพรอมต์และเครื่องมือที่ประสบความสำเร็จ ซึ่งเอเจนต์สามารถเรียกใช้ซ้ำสำหรับงานที่เกิดขึ้นเป็นประจำ
หน่วยความจำเชิงกระบวนการ (คลังทักษะ) เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
ความจำเชิงกระบวนการคืออะไร
ความจำเชิงกระบวนการจัดเก็บ "วิธีทำสิ่งต่าง ๆ" ซึ่งคือลำดับการดำเนินการที่ประสบความสำเร็จและนำกลับมาใช้ได้ ลองนึกภาพว่าเป็นคลังสูตรย่อย ๆ ที่เอเจนต์สามารถเล่นซ้ำได้
ตัวอย่าง:
- "หากต้องการยื่นรายงานค่าใช้จ่าย ให้ทำ A จากนั้น B แล้วจึง C"
- "หากต้องการนำบิลด์สำหรับการทดสอบไปใช้งาน ให้เรียกใช้ X รอ Y แล้วจึงทำ Z"
เหตุใดจึงต้องมีความจำเชิงกระบวนการ
หากไม่มีความจำประเภทนี้ เอเจนต์จะต้องคิดแผนเดิมใหม่ตั้งแต่ต้นทุกครั้ง ทำให้ช้า มีค่าใช้จ่ายสูง และให้ผลไม่สม่ำเสมอ เมื่อมีคลังทักษะ งานที่ทำซ้ำ ๆ จะได้รับการแก้ไขได้ทันที
Storage Format
CREATE TABLE skills (
id UUID PRIMARY KEY,
name TEXT NOT NULL,
description TEXT NOT NULL,
embedding vector(1536),
steps JSONB NOT NULL, -- list of tool calls
success_rate REAL DEFAULT 1.0,
use_count INT DEFAULT 0,
created_at TIMESTAMPTZ
);บันทึกทักษะใหม่
หลังจากการทำงานสำเร็จ ให้ขอให้ LLM ดึงสูตรการทำงานออกมา:
extract_prompt = '''
The agent successfully completed: {user_request}
The trace was:
{trace}
Write this as a reusable skill with name, description, and step list.
Return JSON: {name, description, steps: [{tool, args_template}]}
'''
print(extract_prompt.strip())
Storing the Skill
skill = json.loads(llm.invoke(extract_prompt).content)
vec = embed(skill['description'])
conn.execute('''
INSERT INTO skills (id, name, description, embedding, steps)
VALUES (%s, %s, %s, %s, %s::jsonb)
''', (str(uuid.uuid4()), skill['name'], skill['description'], vec, json.dumps(skill['steps'])))การเรียกคืนทักษะที่เกี่ยวข้อง
เมื่อมีคำขอใหม่จากผู้ใช้เข้ามา ให้ค้นหาในคลังทักษะ:
def find_skill(query):
qvec = embed(query)
rows = conn.execute('''
SELECT name, steps FROM skills
ORDER BY embedding <=> %s LIMIT 3
''', (qvec,))
return rowsแม่แบบทักษะ
ทักษะคือแม่แบบที่มีช่องพารามิเตอร์ เอเจนต์จะเติมค่าจริงในการทำงานแต่ละครั้ง:
skill = {
'name': 'file_expense_report',
'steps': [
{'tool': 'open_form', 'args': {'form_id': 'expense'}},
{'tool': 'fill_field', 'args': {'field': 'amount', 'value': '{amount}'}},
{'tool': 'fill_field', 'args': {'field': 'category', 'value': '{category}'}},
{'tool': 'submit'}
]
}
import json
print(json.dumps(skill, indent=2))
การแนะนำทักษะให้ LLM
แทรกทักษะที่มีโอกาสเป็นคำตอบลงในพรอมต์ระบบ แล้วให้ LLM ตัดสินใจว่าจะใช้ทักษะใด:
candidates = find_skill(user_request)
prompt = f'''
You can use these existing skills if applicable:
{json.dumps(candidates, indent=2)}
Or you can plan a new sequence.
'''การติดตามความสำเร็จของทักษะ
หลังการใช้งานแต่ละครั้ง ให้ update สถิติของทักษะ:
UPDATE skills
SET use_count = use_count + 1,
success_rate = (success_rate * use_count + (CASE WHEN %s THEN 1 ELSE 0 END)) / (use_count + 1)
WHERE id = %s;การตัดทอนทักษะที่ไม่ดี
ควรนำทักษะที่มี success_rate ต่ำหรือ use_count ต่ำออก:
DELETE FROM skills
WHERE (success_rate < 0.5 AND use_count >= 5)
OR (use_count = 0 AND created_at < NOW() - INTERVAL '30 days');Voyager: ตัวอย่างที่มีชื่อเสียง
Voyager (Wang และคณะ 2023) คือเอเจนต์ที่เล่น Minecraft และสร้าง "คลังทักษะ" ของส่วนย่อยโค้ด ซึ่งเป็นงานวิจัยสำคัญด้านหน่วยความจำเชิงกระบวนการ
การประกอบทักษะ
ทักษะสามารถเรียกใช้ทักษะอื่นได้ เอเจนต์จะเรียนรู้กระบวนการที่เป็นนามธรรมมากขึ้นเรื่อย ๆ:
low_level_skill = {'name': 'open_email', 'steps': [...]}
high_level_skill = {'name': 'process_inbox', 'steps': [
{'skill': 'open_email'},
{'skill': 'reply_or_archive'}
]}
print(low_level_skill)
print(high_level_skill)
ความเป็นส่วนตัวของทักษะ
โดยทั่วไปทักษะมีความเป็นสากลเพียงพอที่จะแชร์ระหว่างผู้ใช้ได้ แต่ควรตรวจสอบให้ดี เพราะ "ทักษะ" บางอย่างอาจเปิดเผยรายละเอียดเฉพาะของผู้ใช้ เช่น หมายเลขบัญชีหนึ่ง ๆ ควรทำให้ข้อมูลไม่สามารถระบุตัวบุคคลได้ก่อนจัดเก็บลงในคลังที่ใช้ร่วมกัน
คำจำกัดความของกระบวนการ
หน่วยความจำเชิงกระบวนการจัดเก็บอะไร
สรุปทบทวน
หน่วยความจำเชิงกระบวนการ = คลังทักษะ ดึงสูตรขั้นตอนจากการทำงานที่ประสบความสำเร็จ เรียกคืนสูตรที่เกี่ยวข้องสำหรับคำขอใหม่ ติดตามอัตราความสำเร็จ และตัดทอนส่วนที่ไม่ใช้งานแล้ว
คำถามที่พบบ่อย
บทเรียน “หน่วยความจำเชิงกระบวนการ (คลังทักษะ)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “หน่วยความจำเชิงกระบวนการ (คลังทักษะ)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “หน่วยความจำเชิงกระบวนการ (คลังทักษะ)”
คลังลำดับพรอมต์และเครื่องมือที่ประสบความสำเร็จ ซึ่งเอเจนต์สามารถเรียกใช้ซ้ำสำหรับงานที่เกิดขึ้นเป็นประจำ คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “หน่วยความจำเชิงกระบวนการ (คลังทักษะ)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- หน่วยความจำแบบเหตุการณ์ (ประวัติต่อเซสชัน)
- หน่วยความจำเชิงความหมาย (ข้อเท็จจริงแบบเวกเตอร์)
- หน่วยความจำเชิงกระบวนการ (คลังทักษะ)
- การเสื่อมของหน่วยความจำและการเก็บขยะ