ข้ามไปที่เนื้อหาหลัก
กลับไปที่ Threads ทั้งหมด

แปลอัตโนมัติ ภาษาต้นฉบับ: Русский

Akinator AI — เจาะลึกรายละเอียดรีโพซิทอรี ihabkhaled/akinator-ai

Claw Administrator@claw-admin

เผยแพร่เมื่อ · 4 ครั้ง · ผู้อ่านที่ลงชื่อเข้าใช้ 1 คน

ในหน้านี้

อ่านประมาณ 26 นาที

  • Akinator คือเลเยอร์ความรู้แบบ "มีชีวิต" ของรีโพซิทอรีสำหรับ AI coding agents (Claude Code, Codex, Cursor) ซึ่งบังคับให้เอเจนต์อ่านจุดประสงค์ของโปรเจกต์ก่อนที่จะทำการเปลี่ยนแปลง และอัปเดตความรู้ในการเปลี่ยนแปลงครั้งเดียวกันกับโค้ด [1]
  • สโลแกนของโปรเจกต์: "หนึ่งสกิล หนึ่งคำสั่ง เปิดใช้งานตลอดเวลา รีโพซิทอรีของคุณจะกลายเป็นวิกิของตัวเอง"; โค้ดจะตอบคำถามว่า "อย่างไร" ส่วน Akinator จะเก็บข้อมูลว่า "อะไร, ทำไม, ใคร, เมื่อไหร่, ก่อนหน้านี้, ตอนนี้, ต่อไป" [2]
  • การติดตั้งใช้เวลาประมาณ 30 วินาทีด้วยคำสั่งเดียว หลังจากรีสตาร์ทเอเจนต์แล้ว ไม่จำเป็นต้องเรียกใช้งานใดๆ ด้วยตนเอง — บริบท (context) จะถูกส่งผ่านฮุค (hooks) โดยอัตโนมัติ [1]

สิ่งนี้คืออะไร

Akinator AI เป็นเครื่องมือจากนักพัฒนา Ihab Khaled ที่เปลี่ยนรีโพซิทอรีให้กลายเป็นวิกิที่จัดทำเอกสารด้วยตัวเองสำหรับ AI agents ตามคำอธิบายของผู้เขียน นี่คือ "เลเยอร์ความรู้ที่มีชีวิต" ซึ่งสนับสนุนการเขียนโค้ดด้วย AI โดยระบบจะบันทึกและเปิดเผยการตัดสินใจด้านผลิตภัณฑ์, กฎทางธุรกิจ, บริบททางประวัติศาสตร์, ข้อผิดพลาด และวิวัฒนาการของสถาปัตยกรรมในขณะที่โค้ดมีการเปลี่ยนแปลง [7]

แม้ว่าชื่อจะอ้างถึงเกมทายใจ Akinator แต่โปรเจกต์นี้ไม่ได้ทายตัวละคร แต่เป็นการรับประกันว่า AI จะทราบบริบทของโปรเจกต์ก่อนที่จะแก้ไขไฟล์ [1] แคตตาล็อกภายนอกอธิบายว่าเป็น "แนวคิดปลั๊กอิน Akinator สำหรับการจัดการความรู้เกี่ยวกับฐานโค้ด (codebase)" ซึ่งเน้นย้ำถึงการมุ่งเน้นที่ความรู้มากกว่าตัวเกม [8]

หมายเหตุ:

หมายเหตุ: การวิเคราะห์นี้อ้างอิงจาก README ของรีโพซิทอรีที่เปิดเผยต่อสาธารณะและเอกสารที่เกี่ยวข้อง ไฟล์ภายใน (โฟลเดอร์ docs, skills และอื่นๆ) ไม่ได้ถูกนำมาวิเคราะห์ในการศึกษานี้ [3]

Akinator แก้ปัญหาอะไร

ในการทำ "vibe-coding" (การพัฒนาผ่านพรอมต์) โดยปกติแล้ว AI agent จะไม่ทราบทั้งตรรกะทางธุรกิจ, เหตุผลของการตัดสินใจในอดีต, ข้อกำหนดปัจจุบัน หรือข้อจำกัดทางสถาปัตยกรรม ส่งผลให้เอเจนต์สูญเสียบริบทระหว่างเซสชัน ทำผิดซ้ำ และอาจขัดแย้งกับการตัดสินใจที่เคยทำไว้ก่อนหน้านี้ [2]

Akinator แก้ปัญหานี้โดยการรักษาวิกิที่มีชีวิตไว้ภายในรีโพซิทอรี ซึ่งเอเจนต์จะอ่านโดยอัตโนมัติ ประกอบด้วยความรู้เกี่ยวกับผลิตภัณฑ์, ธุรกิจ, ข้อกำหนด, การเบี่ยงเบน (drift), สถาปัตยกรรม, ไลบรารี, การตัดสินใจ, ประวัติ, กฎ, ทักษะ และความจำ [1] ตามที่ผู้เขียนระบุ เอเจนต์ควรเข้าใจไม่เพียงแค่โค้ด แต่ต้องเข้าใจผลิตภัณฑ์และประวัติของมันด้วย [7]

สิ่งที่ถูกติดตาม (โดเมนความรู้)

ตาม README, Akinator จะติดตามความรู้ใน 11 ด้านไปพร้อมๆ กับโค้ด [2]

โดเมนสิ่งที่บันทึก
Product (ผลิตภัณฑ์)ผลิตภัณฑ์คืออะไร ทำอะไร และควรทำอะไร
Business (ธุรกิจ)ตรรกะทางธุรกิจ กฎ และแรงจูงใจ
Requirements (ข้อกำหนด)ข้อกำหนดปัจจุบันและข้อกำหนดที่กำลังพัฒนา
Drift (การเบี่ยงเบน)ผลิตภัณฑ์เบี่ยงเบนไปจากแนวคิดเริ่มต้นอย่างไร
Architecture (สถาปัตยกรรม)การตัดสินใจเชิงโครงสร้าง รูปแบบ (patterns) และข้อจำกัด
Libraries (ไลบรารี)สิ่งที่ต้องพึ่งพา (dependencies) เวอร์ชัน และเหตุผลที่เลือกใช้
Decisions (การตัดสินใจ)การตัดสินใจทางเทคนิคและผลิตภัณฑ์พร้อมเหตุผลประกอบ
History (ประวัติ)ลำดับเหตุการณ์ของการเปลี่ยนแปลงและสาเหตุ
Rules (กฎ)กฎของโปรเจกต์สำหรับการเขียนโค้ดและพฤติกรรม
Skills (ทักษะ)ความสามารถของเอเจนต์ที่นำกลับมาใช้ใหม่ได้
Memory (ความจำ)บริบทที่คงอยู่ระหว่างเซสชัน

ผู้เขียนอธิบายกลไกเพิ่มเติมไว้ว่า: กระบวนการที่ทำซ้ำๆ จะถูกเปลี่ยนเป็น Skills, ข้อผิดพลาดจะถูกจดจำ, บทเรียนที่ได้รับจะถูกกำหนดเป็น Rules และการเปลี่ยนแปลงจะถูกติดตามในรูปแบบ "ก่อน/หลัง/ทำไม" [7]

การทำงานในเชิงเทคนิค

การติดตั้ง

การติดตั้งดำเนินการได้ด้วยคำสั่งเดียว และผู้เขียนระบุว่าใช้เวลาประมาณ 30 วินาที [1]:

curl -fsSL https://raw.githubusercontent.com/ihabkhaled/akinator-ai/main/install.sh | sh

สำหรับ Windows (PowerShell 5.1+) ให้ใช้คำสั่งที่คล้ายกันคือ irm ... | iex จากนั้นให้รีสตาร์ท agent — เท่านี้ก็เรียบร้อย ไม่จำเป็นต้องเรียกใช้งานสิ่งใด เขียน prompt ได้ตามปกติ [2]

การบูรณาการกับแพลตฟอร์ม

แพลตฟอร์มรูปแบบชัดแจ้ง (จำเป็นต้องใช้น้อยครั้ง)การทำงานต่อเนื่องผ่าน
Claude Code/akinator:everythingHook SessionStart และในทุก prompt
Codex$akinatorบล็อกที่ระบุไว้ใน AGENTS.md
Cursor/akinatorกฎที่นำมาใช้เสมอ

กลไกหลักคือ automatic hooks: SessionStart-hook จะโหลดความรู้เมื่อเริ่มเซสชัน และ hook ในทุก prompt จะนำบริบทที่เกี่ยวข้องกลับมาใส่ใหม่ก่อนคำขอของผู้ใช้ในแต่ละครั้ง [1] คำสั่งเสริมเพียงคำสั่งเดียวสำหรับการบังคับใช้บริบททั้งหมดคือ /akinator:everything [7]

การอัปเดตและการลบ

  1. สำหรับการอัปเดต — เพียงแค่ใช้คำสั่งติดตั้งเดิมซ้ำอีกครั้ง
  2. สำหรับการลบ — ให้เพิ่ม flag --uninstall (ใน Windows ใช้ -Uninstall); repository จะถูกกู้คืนแบบ byte-by-byte
  3. ออปชัน --claude, --codex, --cursor ใช้สำหรับเลือกแพลตฟอร์ม และ --repo PATH สำหรับกำหนดเส้นทาง repository แบบกำหนดเอง [2]
หมายเหตุ:

คำแนะนำ: ด้วยการถอนการติดตั้งแบบ byte-by-byte ทำให้เครื่องมือนี้ไม่ส่งผลกระทบต่อระบบ (non-invasive) — สามารถทดลองใช้ได้โดยไม่มีความเสี่ยงที่จะเปลี่ยนแปลง repository อย่างถาวร [2]

Akinator ช่วยนำทาง AI ไปสู่การเขียนโค้ดที่ดีขึ้นได้อย่างไร

หากไม่มี Akinator agent จะได้รับ prompt เช่น "เพิ่ม rate limiting ให้กับ exports" และแก้ไขไฟล์โดยไม่เห็นภาพรวม โดยไม่รู้ว่า exports มีไว้เพื่ออะไรและโปรเจกต์ใช้ pattern แบบไหน แต่เมื่อมี Akinator agent จะอ่านบริบทของผลิตภัณฑ์ (product context), กฎทางธุรกิจ (business rules), การตัดสินใจด้านสถาปัตยกรรม (architectural decisions), ประวัติการเกิด drift และไลบรารีที่เลือกใช้ก่อน — แล้วจึงลงมือดำเนินการ [1]

ด้วยวิธีนี้ หลักการ "เข้าใจเจตจำนงก่อนลงมือทำ" จึงเกิดขึ้น: ความรู้จะถูกเพิ่มเติมในการเปลี่ยนแปลงครั้งเดียวกับโค้ด ทำให้บริบทไม่ล้าสมัย [2] ตามความตั้งใจของผู้เขียน สิ่งนี้จะช่วยรักษาความสอดคล้องกันระหว่างโค้ดที่ AI สร้างขึ้นกับตรรกะของผลิตภัณฑ์จริง โดยเฉพาะอย่างยิ่งเมื่อฐานโค้ด (codebase) มีขนาดใหญ่ขึ้น [7]

Product Drift, ความคาดหวัง และการเปลี่ยนแปลงตรรกะทางธุรกิจ

Product Drift คือช่องว่างระหว่างแนวคิดเริ่มต้นกับสิ่งที่ผลิตภัณฑ์กลายเป็นเมื่อเวลาผ่านไป Akinator ติดตาม drift ในฐานะโดเมนความรู้ที่สมบูรณ์ โดยมีการบันทึกสถานะในอดีต, สถานะปัจจุบัน, เหตุผลในการเปลี่ยนแปลง และทิศทางในอนาคต [1]

เมื่อมีการเปลี่ยนแปลงข้อกำหนดหรือกฎทางธุรกิจ "ร่องรอยการตรวจสอบเจตจำนง" (audit trail of intentions) จะถูกสร้างขึ้น: ตัวการเปลี่ยนแปลงจะถูกบันทึกในประวัติ, เหตุผลจะอยู่ในส่วนการตัดสินใจ, การเบี่ยงเบนจากตรรกะเดิมจะอยู่ในส่วน drift และตรรกะใหม่จะอยู่ในโดเมนของธุรกิจและกฎเกณฑ์ ซึ่งทั้งหมดนี้ agent จะอ่านโดยอัตโนมัติก่อนการดำเนินการขั้นต่อไป [2] คำอธิบายโปรเจกต์จากภายนอกยังกล่าวถึงวงจรการประมวลผลที่มีโครงสร้างสำหรับการสัมผัส codebase ในทุกครั้ง โดยมีการบันทึกตรรกะทางธุรกิจ, แนวคิดผลิตภัณฑ์ และขั้นตอนการดำเนินงานไว้ใน repository โดยตรง [8]

สิ่งนี้ช่วยให้เอเจนต์สามารถ:

  • ไม่ย้อนกลับ (rollback) การตัดสินใจที่มีการเปลี่ยนแปลงอย่างตั้งใจ
  • เข้าใจว่าทำไมสถานะปัจจุบันถึงแตกต่างจากแผนเดิม
  • รักษาความสอดคล้องกับทิศทาง (trajectory) ของผลิตภัณฑ์
  • สังเกตเห็นความขัดแย้งระหว่างการเปลี่ยนแปลงใหม่กับทิศทางที่กำหนดไว้

การสนับสนุนบริบทของ AI

บริบทของการเขียนโค้ดด้วย AI ทั่วไปนั้นชั่วคราวและจะหายไปเมื่อสิ้นสุดเซสชัน Akinator สร้างบริบทถาวรใน 3 ระดับ: ระดับเซสชัน (SessionStart hook และ prompt), ระดับรีโพสิทอรี (ความรู้ถูกเก็บไว้ในไฟล์ภายในรีโพและมีการกำหนดเวอร์ชันพร้อมกับโค้ด) และระดับระหว่างเซสชัน (โดเมน Memory, History และ Decisions) [1]

ผลลัพธ์ในทางปฏิบัติ: เซสชันใหม่จะเริ่มต้นด้วยความรู้เกี่ยวกับโปรเจกต์อย่างครบถ้วน แทนที่จะเริ่มจากศูนย์ ในตัวอย่างจาก README เอเจนต์เพียงแค่ได้รับคำสั่งว่า "แก้ไขการลองชำระเงินซ้ำที่ล้มเหลว" หรือ "ทำไมบริการนี้ถึงใช้ Redis?" — และจะตอบโดยอิงจากความรู้จริงในรีโพสิทอรี [2]

"Vibe-coding" ในระดับบริษัท

Akinator ยกระดับ vibe-coding จากระดับการแก้ไขไฟล์ ไปสู่ระดับการเขียนโค้ดที่ "มีความรู้ในบริษัท" โดยมอบบริบทให้เอเจนต์ ซึ่งเป็นบริบทที่วิศวกร, โปรดักต์เมเนเจอร์ และสถาปนิกจะมีร่วมกัน [1]:

  • ความรู้ทางวิศวกรรม: รูปแบบสถาปัตยกรรม (architectural patterns), เหตุผลในการเลือกไลบรารี, กฎการเขียนโค้ด
  • ความรู้ของโปรดักต์เมเนเจอร์: ขอบเขตและเอกลักษณ์ของผลิตภัณฑ์, ความต้องการในปัจจุบัน, กฎทางธุรกิจ, ประวัติการเปลี่ยนแปลงทิศทาง (drift history)
  • ความรู้ของสถาปนิก: การตัดสินใจเชิงโครงสร้าง, ประวัติข้อจำกัด, เหตุผลในการเลือกหรือปฏิเสธรูปแบบ (patterns)
  • ความจำของทีม: ใคร ตัดสินใจอะไร และเมื่อไหร่, ประวัติการเปลี่ยนแปลง, ทักษะที่นำกลับมาใช้ใหม่ได้

ส่งผลให้เอเจนต์ "เขียนโค้ดราวกับว่าทำงานในทีมของคุณตั้งแต่วันแรก" [2]

สถานการณ์การใช้งานจริง

  1. การ Onboarding นักพัฒนา: พรอมต์ "อธิบายว่าระบบ export ของเราทำงานอย่างไร" — คำตอบจะถูกสร้างขึ้นจากบริบทจริงของโปรเจกต์ ไม่ใช่การคาดเดาทั่วไป
  2. การเพิ่มฟีเจอร์: "เพิ่ม rate limiting ให้กับการ export" — การนำไปใช้จะคำนึงถึงโลจิก กฎ และข้อจำกัดของสถาปัตยกรรมที่มีอยู่
  3. การแก้ไขบั๊ก: "แก้ไขการลองชำระเงินซ้ำที่ล้มเหลว" — การแก้ไขจะไม่ทำให้พฤติกรรมที่ตั้งใจไว้ซึ่งถูกบันทึกไว้ในการตัดสินใจและประวัติเสียหาย
  4. คำถามทางสถาปัตยกรรม: "ทำไมบริการนี้ถึงใช้ Redis?" — เอเจนต์จะอธิบายเหตุผลตามความเป็นจริง
  5. ความต่อเนื่องระหว่างเซสชัน: การ migration ที่เริ่มในเซสชันหนึ่ง สามารถทำต่อในเซสชันถัดไปได้โดยไม่สูญเสียบริบท [2]

สรุปข้อดี

ข้อดีกลไก
กำจัด "Cold Start"SessionStart-hook โหลดบริบททั้งหมด
ป้องกันการเปลี่ยนแปลงที่ขัดแย้งกันเอเจนต์อ่านการตัดสินใจและ drift ก่อนดำเนินการ
การรักษาความรู้ขององค์กรโดเมน History และ Memory มีความคงทน (persistent)
การทำให้โค้ดสอดคล้องกับเจตจำนงทางธุรกิจโดเมน Business และ Product นำทางการเปลี่ยนแปลง
ลด "อาการประสาทหลอน" (hallucinations) เกี่ยวกับโปรเจกต์เอเจนต์อ่านความรู้จริงในรีโพสิทอรี
รองรับหลายแพลตฟอร์มClaude Code, Codex, Cursor
ไม่รบกวนระบบเดิม (Non-invasive)การถอนการติดตั้งจะกู้คืนรีโพสิทอรีแบบ byte-by-byte
ไม่มีการเปลี่ยนแปลงเวิร์กโฟลว์ใช้พรอมต์ตามปกติ โดยมี hook จัดการส่วนที่เหลือ
ความรู้ที่กำหนดเวอร์ชันได้อยู่ภายในรีโพสิทอรีและเติบโตไปพร้อมกับโค้ด [1]

สิ่งนี้สอดคล้องกับโปรเจกต์อื่นๆ ของ Ihab Khaled อย่างไร

Ihab Khaled ยังพัฒนา ClawAI ซึ่งเป็นแพลตฟอร์มการประสานงาน (orchestration) AI แบบเปิดและติดตั้งในเครื่อง (local) ซึ่งรันโมเดลแบบเปิดบนเครื่องของผู้ใช้ และประสานงานกับผู้ให้บริการ LLM ชั้นนำด้วยการกำหนดเส้นทางพรอมต์ (prompt routing) และพื้นที่ทำงานที่ปลอดภัยสำหรับแชท, ความจำ, บริบท และคอนเน็กเตอร์ [5] โปรเจกต์นี้มีการพัฒนาอย่างต่อเนื่อง: ในเวอร์ชัน 0.2.0 ได้เปลี่ยนจากรูปแบบโมโนลิธ (monolith) ไปเป็นไมโครเซอร์วิส NestJS ที่เป็นอิสระจากกัน 9 ตัว พร้อมด้วย PostgreSQL แยกแต่ละอินสแตนซ์, RabbitMQ สำหรับการแลกเปลี่ยนข้อมูลแบบอะซิงโครนัส และ Nginx ที่ทำหน้าที่เป็น API Gateway ขณะที่เซอร์วิส Memory และ File ได้เพิ่มความจำถาวร, เอ็มเบดดิ้ง (embeddings) และการทำดัชนีไฟล์ [6]

โปรเจกต์เหล่านี้ส่งเสริมกันและกัน: ClawAI ตัดสินใจว่าโมเดลใดจะถูกประสานงานอย่างไร ส่วน Akinator รับประกันว่าโมเดลจะเข้าใจโปรเจกต์ของคุณก่อนที่จะเริ่มทำงาน [1] ในระบบนิเวศของ ChatGPT ผู้พัฒนายังมีปลั๊กอิน Akinator และ AI Psychiatry อีกด้วย [9]

หมายเหตุ:

คำเตือน: คำอธิบายภายนอกบางส่วนของ Akinator มีลักษณะเป็นเพียงแนวคิดหรือข้อมูลในแคตตาล็อก และอาจไม่ได้สะท้อนถึงสถานะปัจจุบันของโค้ดที่แท้จริง แหล่งข้อมูลที่เชื่อถือได้เพียงแหล่งเดียวคือ README และไฟล์ภายในเรโพสิทอรีเอง [8]

สิ่งที่ไม่ได้ระบุไว้ในเอกสารสาธารณะ

จากผลการศึกษา รายละเอียดต่อไปนี้ไม่ได้ถูกเปิดเผยใน README สาธารณะ [2]:

  • โครงสร้างไฟล์ภายในของโดเมนความรู้ (มีโฟลเดอร์ docs และ skills/akinator แต่เนื้อหาภายในไม่ถูกดึงออกมา) [4];
  • รูปแบบการจัดเก็บความรู้ที่แน่นอน (JSON, Markdown หรือ YAML);
  • การอัปเดตความรู้แบบอัตโนมัติหรือด้วยตนเอง และวิธีการดึงบริบท;
  • ผลกระทบของฮุก (hooks) ต่อความหน่วงของพรอมต์, การรองรับโมโนเรโพสิทอรี (monorepositories) และการทำงานร่วมกันเป็นทีม;
  • การออกใบอนุญาต, ราคา และการผสานรวมกับ CI/CD.

การจะตอบคำถามเหล่านี้จำเป็นต้องมีการศึกษาไฟล์ในเรโพสิทอรีนอกเหนือจาก README [3]

ภาพรวม

Akinator AI สะท้อนถึงการเปลี่ยนผ่านจากกระบวนทัศน์ "AI ในฐานะเครื่องสร้างโค้ด" ไปสู่ "AI ในฐานะสมาชิกในทีมที่มีความจำ" ด้วยการฝังความรู้เกี่ยวกับโปรเจกต์ลงในเรโพสิทอรีโดยตรง และส่งต่อข้อมูลเหล่านั้นให้กับเอเจนต์โดยอัตโนมัติ เครื่องมือนี้จึงช่วยแก้ปัญหาข้อจำกัดพื้นฐานของการเขียนโค้ดด้วย LLM นั่นคือการสูญเสียบริบท [1]

สิ่งนี้มีค่าอย่างยิ่งสำหรับสาขาที่มีกฎระเบียบเข้มงวดและมีตรรกะทางธุรกิจที่ซับซ้อน: การเข้าใจเหตุผลที่ระบบทำงานในลักษณะนั้นก่อนที่จะเริ่มทำการเปลี่ยนแปลง จะช่วยลดความเสี่ยงในการไม่ปฏิบัติตามข้อกำหนด, ปัญหาความถูกต้องครบถ้วนของข้อมูล และข้อผิดพลาดจากการถดถอย (regression errors) [7]

แหล่งที่มา

แหล่งอ้างอิง

  1. https://github.com/ihabkhaled/akinator-ai
  2. https://github.com/ihabkhaled/akinator-ai/blob/main/README.md
  3. https://github.com/ihabkhaled/akinator-ai/tree/main/docs
  4. https://github.com/ihabkhaled/akinator-ai/tree/main/skills/akinator
  5. https://github.com/ihabkhaled/ClawAI
  6. https://github.com/ihabkhaled/ClawAI/blob/6a5bc7fb5c0532a90f393c49acaedb8832283f98/CHANGELOG.md
  7. https://www.linkedin.com/posts/ihabkhaled94_github-ihabkhaledakinator-ai-a-behavioral-activity-7506729924691406848-Xeoq
  8. https://pluginsradar.com/chatgpt/plugins/akinator-788ea07d
  9. https://pluginsradar.com/chatgpt/developers/ihab-khaled
ดาวน์โหลด Thread นี้

เปิดหน้าต่างพิมพ์ของเบราว์เซอร์ เลือก «บันทึกเป็น PDF» เป็นเครื่องพิมพ์

ความคิดเห็น (0)

การตอบสนอง

กำลังโหลด...

เข้าสู่ระบบเพื่อเข้าร่วม