Akinator AI: เลเยอร์ความรู้ที่มีชีวิตสำหรับเอเจนท์การเขียนโค้ด AI
Claw Administrator@claw-adminเผยแพร่เมื่อ · 4 ครั้ง · ผู้อ่านที่ลงชื่อเข้าใช้ 1 คน
ในหน้านี้
อ่านประมาณ 23 นาที
Akinator AI คือเลเยอร์ความรู้ที่สามารถติดตั้งได้สำหรับเอเจนท์การเขียนโค้ด AI ซึ่งช่วยให้ Claude Code, Codex และ Cursor อ่านจุดประสงค์ของรีโพสิทอรีก่อนที่จะทำการเปลี่ยนแปลง และพัฒนาความรู้นั้นไปพร้อมกับการเปลี่ยนแปลงโค้ด [1] โปรเจกต์นี้อธิบายตัวเองด้วยประโยคเดียวในการวางตำแหน่งผลิตภัณฑ์ว่า: "ทักษะเดียว คำสั่งเดียว เปิดใช้งานตลอดเวลา รีโพของคุณจะกลายเป็นวิกิในตัวมันเอง" [2] Ihab Khaled ผู้สร้าง ได้นิยามสิ่งนี้ว่าเป็นเลเยอร์พฤติกรรมที่บันทึกว่าทำไมจึงมีการตัดสินใจเช่นนั้น ไม่ใช่แค่ว่าโค้ดทำอะไร [3]
ประเด็นสำคัญ
- Akinator มุ่งเป้าไปที่เอเจนท์สามตัว: Claude Code, Codex และ Cursor โดยแต่ละตัวจะถูกรวมเข้าด้วยกันผ่านกลไกส่วนขยายดั้งเดิม [1]
- อ้างว่าเปิดใช้งานตลอดเวลา: ไม่จำเป็นต้องเรียกใช้คำสั่งใดๆ ในระหว่างการทำงานปกติหลังจากติดตั้งแล้ว [2]
- ติดตามข้อมูลผลิตภัณฑ์, ธุรกิจ, ข้อกำหนด, ความเบี่ยงเบน (drift), สถาปัตยกรรม, ไลบรารี, การตัดสินใจ, ประวัติ, กฎ, ทักษะ และหน่วยความจำ [1]
- วิธีการติดตั้งเป็นสคริปต์ shell หรือ PowerShell บรรทัดเดียว และการถอนการติดตั้งจะคืนค่ารีโพสิทอรีกลับมาเหมือนเดิมทุกไบต์ [2]
- ชุดความรู้ถูกอ่านในเครื่องโดยไม่มี daemon, ไม่มีการเชื่อมต่อเครือข่าย และไม่มีบริการดัชนี [2]
สิ่งที่โปรเจกต์นี้เป็นจริงๆ
คำมั่นสัญญาหลักคือการพลิกการแบ่งงานตามปกติ โดยที่โค้ดจะบอกว่า อย่างไร (how) ส่วน Akinator จะเก็บข้อมูล อะไร, ทำไม, ใคร, เมื่อไหร่, ก่อนหน้า, ตอนนี้, ถัดไป (what, why, who, when, before, now, next) [1] การวางกรอบแบบนี้ทำให้เครื่องมือนี้อยู่เหนือฐานโค้ดแทนที่จะอยู่ภายใน: มันคือเลเยอร์ของจุดประสงค์ที่ถูกบันทึกไว้ซึ่งเอเจนท์จะเข้ามาปรึกษาก่อนแก้ไขไฟล์
README ระบุว่ามันนำข้อตกลง (conventions) ที่รีโพสิทอรีมีอยู่แล้วมาใช้ และไม่สร้างวิกิคู่ขนานขึ้นมา [2] สิ่งนี้สำคัญต่อการนำไปใช้งาน เพราะหมายความว่าเครื่องมือนี้ถูกออกแบบมาเพื่อเสริมเอกสารที่มีอยู่เดิม มากกว่าที่จะเป็นแหล่งอ้างอิงที่มาแข่งกัน
หมายเหตุ:หมายเหตุ: ชื่อนี้ยืมมาจากเกมทายใจ Akinator แต่รีโพสิทอรีนี้ไม่ใช่เกมทายตัวละคร รายการไดเรกทอรีอิสระที่อธิบายว่ามันเป็นเกมทายใจนั้นเป็นการเข้าใจชื่อเรื่องผิด [4]
การติดตั้งและการรองรับแพลตฟอร์ม
การติดตั้งนั้นสั้นอย่างตั้งใจ บน macOS และ Linux ตัวติดตั้งจะถูกดึงมาและส่งผ่านไปยัง shell; บน Windows จะถูกดึงมาและเรียกใช้ผ่าน PowerShell [1] หลังการติดตั้ง ผู้ใช้จะรีสตาร์ทเอเจนท์และพิมพ์พรอมต์ตามปกติ เพราะไม่มีอะไรที่ต้องเรียกใช้อย่างชัดเจน [2]
| แพลตฟอร์ม | รูปแบบคำสั่งชัดเจน (ไม่ค่อยจำเป็น) | กลไกการทำงานตลอดเวลา |
|---|---|---|
| Claude Code | /akinator:everything | SessionStart และ per-prompt hooks [1] |
| Codex | $akinator | Marked block ใน AGENTS.md [1] |
| Cursor | /akinator | Always-applied rule [1] |
ตัวเลือกตัวติดตั้งหลายตัวช่วยกำหนดร่องรอยการติดตั้ง --claude, --codex และ --cursor สำหรับเลือกแพลตฟอร์ม; --repo PATH ติดตั้งลงในรีโพสิทอรีเดียวแทนที่จะเป็นโปรไฟล์ผู้ใช้; --ref REF ระบุเวอร์ชัน [2] การอัปเดตทำได้โดยการรันบรรทัดติดตั้งเดิมซ้ำ และการถอนการติดตั้งใช้ --uninstall (หรือ -Uninstall บน Windows) [1]
เคล็ดลับ:เคล็ดลับ: ปลั๊กอินของ Cursor ต้องการแมนิเฟสต์ของมาร์เก็ตเพลสเป็นของตัวเอง ซึ่ง Akinator ไม่ได้จัดส่งให้ ดังนั้น README จึงแนะนำให้ใช้ตัวติดตั้งสำหรับ Cursor แทนเส้นทางปลั๊กอิน [2]
การทำงานของการผสานรวมแบบ always-on
กลไกจะแตกต่างกันไปตามแพลตฟอร์ม แต่มีเป้าหมายเดียวคือ: บริบทต้องถูกส่งมาโดยที่ผู้ใช้ไม่ต้องร้องขอ ใน Claude Code, hooks จะทำงานเมื่อเริ่มเซสชันและอีกครั้งก่อนทุก prompt [1] ใน Codex, บล็อกที่ระบุไว้ภายใน AGENTS.md จะเป็นตัวนำคำสั่ง [1] ใน Cursor, กฎที่นำมาใช้เสมอจะทำหน้าที่เดียวกัน [1]
Akinator ยังมีช่องทางปลั๊กอินสำหรับ Claude Code โดยจะเพิ่ม marketplace ผ่าน HTTPS URL ของมัน อัปเดตด้วย claude plugin marketplace update akinator และรีเฟรชด้วย claude plugin update akinator@akinator [2] ในส่วนขยาย VS Code ผู้ใช้จะพิมพ์ /plugins เปิด Marketplaces เพิ่ม URL เดียวกัน และติดตั้งปลั๊กอิน [2]
ตัวติดตั้งจะระมัดระวังเรื่องความเป็นเจ้าของไฟล์ โดยจะแตะต้องเฉพาะไฟล์ที่มีแบนเนอร์ Akinator รักษาการขึ้นบรรทัดใหม่ (line endings) เดิม และแจ้งเตือนหาก AGENTS.override.md จะไปบดบัง (shadow) บล็อกของ Codex [2]
โดเมนความรู้ที่ระบบรักษาไว้
ขอบเขตที่ระบุไว้ของ Akinator คือชุดของโดเมนที่ระบุชื่อ ซึ่งแต่ละโดเมนจะตอบคำถามที่แตกต่างกันเกี่ยวกับโปรเจกต์ [1]
- Product — ผลิตภัณฑ์คืออะไร ทำอะไร และควรทำอะไร [1]
- Business — ตรรกะทางธุรกิจ กฎ และแรงจูงใจ [1]
- Requirements — ข้อกำหนดในปัจจุบันและข้อกำหนดที่กำลังพัฒนา [1]
- Drift — ผลิตภัณฑ์เบี่ยงเบนไปจากเจตนาเดิมอย่างไร [1]
- Architecture — การตัดสินใจเชิงโครงสร้าง รูปแบบ และข้อจำกัด [1]
- Libraries — สิ่งที่ต้องพึ่งพา เวอร์ชัน และเหตุผลที่เลือกใช้ [1]
- Decisions — การตัดสินใจทางเทคนิคและผลิตภัณฑ์พร้อมเหตุผลประกอบ [1]
- History — ลำดับเวลาของการเปลี่ยนแปลงและเหตุผลที่เกิดขึ้น [1]
- Rules — กฎการเขียนโค้ดและพฤติกรรมเฉพาะของโปรเจกต์ [1]
- Skills — ความสามารถของเอเจนต์ที่นำกลับมาใช้ใหม่ได้ [1]
- Memory — บริบทที่คงอยู่ข้ามเซสชัน [1]
คำอธิบายของผู้เขียนเองช่วยเพิ่มรายละเอียดให้กับหมวดหมู่เหล่านี้ กระบวนการที่ทำซ้ำๆ สามารถเปลี่ยนเป็น Skills ได้, ความล้มเหลวจะถูกจดจำ, บทเรียนจะถูกบังคับใช้เป็น Rules, และการเปลี่ยนแปลงจะถูกติดตามทั้งก่อน หลัง และเหตุผล [3]
โครงสร้าง Repository และสิ่งที่ถูกสร้างขึ้น
ทักษะมาตรฐาน (canonical skill) จะอยู่ที่ skills/everything/ และใน repository ยังมีไดเรกทอรีทักษะ akinator มาให้ด้วย [2, 5] ส่วนเอกสารจะมีโครงสร้างของตัวเองภายใต้ docs [6]
มีกฎการดำเนินงานที่สำคัญสำหรับเนื้อหาที่ถูกสร้างขึ้น ไดเรกทอรี .agents/, router ทุกตัว และหน้า wiki ที่ถูกสร้างขึ้น เป็นผลลัพธ์จากการสร้าง (generated output) ซึ่งควรใช้วิธีสร้างใหม่แทนการแก้ไขด้วยมือ โดยมีคำสั่งบันทึกไว้ใน CLAUDE.md [2] ไฟล์ README จะนำผู้อ่านไปยังเหตุผลในการออกแบบใน ADR 0010 และ ADR 0011 [2]
หมายเหตุ:คำเตือน: การแก้ไข router หรือหน้า wiki ที่ถูกสร้างขึ้นด้วยมือจะทำให้ข้อตกลงที่ระบุไว้ใน README เสียไป ให้สร้างสิ่งเหล่านั้นขึ้นมาใหม่แทน โดยทำตามคำสั่งใน
CLAUDE.md[2]
วิธีการจัดการกับการเบี่ยงเบนของผลิตภัณฑ์ (Product Drift)
Drift ถูกปฏิบัติในฐานะโดเมนหลัก (first-class domain) แทนที่จะเป็นผลข้างเคียง เนื่องจากสถานะในอดีต สถานะปัจจุบัน เหตุผลในการเปลี่ยนผ่าน และทิศทางในอนาคตทั้งหมดถูกบันทึกไว้ [1] เอเจนต์จึงสามารถตรวจสอบบันทึกนั้นก่อนดำเนินการ ในทางปฏิบัติสิ่งนี้สนับสนุนพฤติกรรมสี่ประการ:
- หลีกเลี่ยงการย้อนกลับการตัดสินใจที่ถูกเปลี่ยนโดยเจตนา [1]
- เข้าใจว่าทำไมสถานะปัจจุบันถึงแตกต่างจากแผนเดิม [1]
- รักษาความสอดคล้องกับแนวทางของผลิตภัณฑ์ [1]
- แจ้งเตือนความขัดแย้งระหว่างการเปลี่ยนแปลงใหม่และทิศทางที่กำหนดไว้ [1]
การสร้าง "บริษัทในเรโพสิทอรี"
คุณค่าที่นำเสนอในทางปฏิบัติคือ เอเจนต์จะทำงานเสมือนว่าสวมบทบาทหลายบทบาทในเวลาเดียวกัน โดยมีมุมมองของวิศวกร (สถาปัตยกรรม, การเลือกไลบรารี, กฎการเขียนโค้ด), มุมมองของผู้จัดการผลิตภัณฑ์ (ขอบเขต, ข้อกำหนด, กฎทางธุรกิจ, การเบี่ยงเบนของความต้องการ) และความจำของทีม (ใครตัดสินใจอะไร เมื่อไหร่ และเพราะอะไร) [1] เมื่อผู้ใช้สั่งว่า "fix the failed payment retry" เอเจนต์สามารถตรวจสอบบริบทของผลิตภัณฑ์, กฎทางธุรกิจ, สถาปัตยกรรม, ไลบรารี, การตัดสินใจ, ประวัติการเบี่ยงเบน และกฎของโปรเจกต์ ก่อนที่จะเริ่มแตะต้องโค้ด [1]
นี่คือความหมายที่เครื่องมือนี้กล่าวอ้างว่าช่วยให้ AI สามารถ "vibe code" ได้เหมือนเป็นบริษัทที่สมบูรณ์แบบ: ตัวโมเดลไม่ได้ฉลาดขึ้น แต่ได้รับข้อมูลบรีฟที่ดีขึ้น เอกสารประกอบใน README รวมถึงหน้ากรณีทางธุรกิจ (business case) พร้อมกับสถาปัตยกรรม, ความเข้ากันได้, กฎ, บริบท, ความจำ, บัญชีแยกประเภท (ledger), เทมเพลต และสัญญา wiki ที่มีการอัปเดตตลอดเวลา (living wiki contract) [2]
ข้อจำกัดในการออกแบบที่ควรทราบ
เรื่องประสิทธิภาพและความเป็นส่วนตัวถูกระบุไว้อย่างชัดเจน README อธิบายว่าเครื่องมือนี้มีราคาถูกและรวดเร็ว และเน้นย้ำว่ามันอ่านจาก knowledge pack แทนที่จะอ่านจาก tree โดยไม่มีการใช้ daemon, ไม่ใช้เครือข่าย และไม่มีบริการ index service [2]
สำหรับทีมที่กังวลเรื่องการผูกติดกับผู้ให้บริการ (lock-in) การอนุญาตใช้งานนั้นตรงไปตรงมา: MIT ตามไฟล์ LICENSE ของเรโพสิทอรี [2] นอกจากนี้ เรโพสิทอรีดังกล่าวยังเปิดให้เข้าถึง branch ต่างๆ สำหรับผู้ที่ต้องการติดตามกิจกรรมการพัฒนา [7]
ตำแหน่งของโปรเจกต์นี้เมื่อเทียบกับโปรเจกต์อื่นๆ ของผู้เขียน
Ihab Khaled ดูแลผลงานอื่นๆ ในพื้นที่ใกล้เคียงกัน โดย ClawAI ถูกอธิบายว่าเป็น local-first AI control plane ที่รันโมเดลแบบ open บนเครื่องของผู้ใช้ ในขณะที่เชื่อมต่อกับผู้ให้บริการ LLM ชั้นนำ พร้อมด้วยระบบ routing, memory และ orchestration [8] ใน changelog ของโปรเจกต์ระบุการปล่อยเวอร์ชัน 0.2.0 ซึ่งเปลี่ยนจาก monolith เป็น NestJS microservices เก้าตัว พร้อมด้วยการส่งข้อความผ่าน RabbitMQ, Nginx ในฐานะ API gateway และคอนเทนเนอร์ประมาณยี่สิบตัวภายใต้ Docker Compose [9]
ทั้งสองโปรเจกต์จัดการในเลเยอร์ที่แตกต่างกัน ClawAI ตัดสินใจว่าจะใช้โมเดลใด ส่วน Akinator ตรวจสอบให้แน่ใจว่าโมเดลที่เลือกนั้นเข้าใจโปรเจกต์ก่อนที่จะลงมือทำ [8][1] ส่วน project boards และ CI workflows ของ ClawAI เองนั้นเป็นเรื่องของโครงสร้างพื้นฐานที่แยกต่างหาก [10][11]
สิ่งที่ไม่มีการระบุในเอกสารสาธารณะ
README ที่ดึงมานั้นครอบคลุมเรื่องการติดตั้ง, การรวมเข้ากับแพลตฟอร์ม, โดเมน และสัญญาของไฟล์ที่ถูกสร้างขึ้น (generated-file contract) แต่ไม่ใช่ทั้งหมด รูปแบบไฟล์ที่แน่นอนที่ใช้จัดเก็บแต่ละโดเมน, การสืบค้นว่าใช้ embeddings หรือ keyword matching, ต้นทุนความหน่วง (latency) ของ hooks, การแก้ไขข้อขัดแย้งระหว่างรายการความรู้, พฤติกรรมของ monorepo และการกำหนดราคา ไม่ได้ถูกอธิบายไว้ในเอกสารที่ตรวจสอบในที่นี้ [1, 2]
รายการจากบุคคลที่สามบางแห่งได้เพิ่มรายละเอียดที่ตัวเรโพสิทอรีเองไม่ได้ยืนยัน โดยรายหนึ่งอธิบายถึงลูป 12 สถานีที่ครอบคลุม ask, resolve, audit, plan, implement, document, skillify, rule, contextify, memoize, index-and-sync และ verify รวมถึงคำสั่งสำหรับการ onboarding, การรันลูป และการตรวจสอบเลเยอร์ความรู้ [13] โปรดถือว่าข้อมูลนี้เป็นคำอธิบายลำดับรองที่รอการยืนยันในเรโพสิทอรีต้นทาง
หมายเหตุ:หมายเหตุ: เรโพสิทอรีนี้ไม่ใช่เครื่องมือค้นหาฐานความรู้ทั่วไป เรโพสิทอรีอย่าง AI-Powered-Knowledge-Base-Search จะครอบคลุมเรื่องการนำเข้าเอกสารและการสืบค้นเชิงความหมาย (semantic retrieval) ซึ่งเป็นปัญหาที่แตกต่างจากการจับเจตจำนงของโปรเจกต์ (project intent) สำหรับเอเจนต์เขียนโค้ด [12]
รายการตรวจสอบสำหรับการนำไปใช้
- อ่านสคริปต์ติดตั้งก่อนรัน ตามคำแนะนำใน README [2]
- รันคำสั่งติดตั้งใน shell หรือ PowerShell โดยเพิ่ม platform flags หากใช้ agent เพียงตัวเดียว [1]
- รีสตาร์ท agent และส่ง prompt ตามปกติ โดยไม่จำเป็นต้องใช้คำสั่งเฉพาะเจาะจง [2]
- ให้ทำการสร้าง routers และหน้า wiki ที่ถูกสร้างขึ้นมาใหม่เสมอ แทนการแก้ไขด้วยตนเอง [2]
- รันคำสั่งติดตั้งอีกครั้งเพื่ออัปเดต และใช้ uninstall flag เพื่อคืนค่า repository ให้เหมือนเดิมแบบ byte ต่อ byte [2]
สมมติฐานในภาพกว้างนั้นเรียบง่าย: agent ที่เข้าใจถึง "เหตุผล" ของ codebase จะสร้างการแก้ไขที่ขัดแย้งกันน้อยกว่า agent ที่เห็นเพียงแค่ไฟล์ต่างๆ Akinator คือความพยายามหนึ่งที่จะทำให้ความรู้นั้นสามารถพกพาได้, มีการจัดการเวอร์ชัน และเป็นไปอย่างอัตโนมัติ [1]
แหล่งที่มา
- https://github.com/ihabkhaled/akinator-ai
- https://github.com/ihabkhaled/akinator-ai/blob/main/README.md
- https://github.com/ihabkhaled/akinator-ai/tree/main/docs
- https://github.com/ihabkhaled/akinator-ai/tree/main/skills/akinator
- https://github.com/ihabkhaled/akinator-ai/branches
- https://github.com/ihabkhaled/ClawAI
- https://github.com/ihabkhaled/ClawAI/blob/6a5bc7fb5c0532a90f393c49acaedb8832283f98/CHANGELOG.md
- https://github.com/ihabkhaled/ClawAI/projects
- https://github.com/ihabkhaled/ClawAI/actions/runs/30214522756/usage
- https://github.com/rikusato0/AI-Powered-Knowledge-Base-Search---Enrichment
- https://www.linkedin.com/posts/ihabkhaled94_github-ihabkhaledakinator-ai-a-behavioral-activity-7506729924691406848-Xeoq
- https://pluginsradar.com/chatgpt/plugins/akinator-788ea07d
- https://pluginsradar.com/chatgpt/developers/ihab-khaled
แหล่งอ้างอิง
- https://github.com/ihabkhaled/akinator-ai
- https://github.com/ihabkhaled/akinator-ai/blob/main/README.md
- https://www.linkedin.com/posts/ihabkhaled94_github-ihabkhaledakinator-ai-a-behavioral-activity-7506729924691406848-Xeoq
- https://pluginsradar.com/chatgpt/developers/ihab-khaled
- https://github.com/ihabkhaled/akinator-ai/tree/main/skills/akinator
- https://github.com/ihabkhaled/akinator-ai/tree/main/docs
- https://github.com/ihabkhaled/akinator-ai/branches
- https://github.com/ihabkhaled/ClawAI
- https://github.com/ihabkhaled/ClawAI/blob/6a5bc7fb5c0532a90f393c49acaedb8832283f98/CHANGELOG.md
- https://github.com/ihabkhaled/ClawAI/projects
- https://github.com/ihabkhaled/ClawAI/actions/runs/30214522756/usage
- https://github.com/rikusato0/AI-Powered-Knowledge-Base-Search---Enrichment
- https://pluginsradar.com/chatgpt/plugins/akinator-788ea07d