วันนี้เรากำลังเปิดตัว OpenWiki ซึ่งเป็นเอเจนต์และ CLI โอเพนซอร์สสำหรับสร้างและบำรุงรักษาเอกสารประกอบสำหรับฐานโค้ด
เอเจนต์จะเขียนโค้ดได้ดีขึ้นเมื่อพวกเขาเข้าใจ repo ที่พวกเขากำลังทำงานอยู่ พวกเขาต้องรู้ว่าลอจิกหลักอยู่ที่ไหน ไฟล์เชื่อมต่อกันอย่างไร และรูปแบบใดที่ฐานโค้ดคาดหวัง เอกสารที่ดีจะให้บริบทนั้นแก่เอเจนต์ ซึ่งนำไปสู่การเปลี่ยนแปลงโค้ดที่มีข้อมูลครบถ้วนและข้อผิดพลาดที่หลีกเลี่ยงได้น้อยลง
ปัญหาคือเอกสารนั้นยากที่จะคงความทันสมัย การเขียนเอกสารเบื้องต้นใช้เวลา และการอัปเดตทุกครั้งที่โค้ดเปลี่ยนก็ยากยิ่งกว่า ใน repo ใหญ่ที่มี PR บ่อยๆ เอกสารอาจล้าสมัยได้อย่างรวดเร็ว
OpenWiki จัดการงานนั้นโดยอัตโนมัติ มันสร้าง wiki สำหรับ repo ของคุณ เชื่อมต่อ wiki นั้นกับ coding agent ของคุณ และทำให้มันอัปเดตอยู่เสมอเมื่อโค้ดของคุณเปลี่ยน
ทำไมต้องใช้ wiki สำหรับเอเจนต์
เราได้รับแรงบันดาลใจจากงานที่มีอยู่เกี่ยวกับ codebase wikis รวมถึง DeepWiki, AutoWiki และแนวคิด Karpathy's LLM Wiki ไอเดียที่เหมือนกันนั้นเรียบง่าย wiki มอบวิธีที่มีโครงสร้างให้มนุษย์และเอเจนต์เข้าใจฐานโค้ด โดยไม่ต้องบีบอัดบริบททั้งหมดลงในไฟล์ขนาดใหญ่ไฟล์เดียว
เรื่องนั้นสำคัญเพราะ coding agent ส่วนใหญ่อ่านไฟล์เช่น AGENTS.md หรือ CLAUDE.md สำหรับคำแนะนำอยู่แล้ว ไฟล์เหล่านั้นมีประโยชน์ แต่ไม่ใช่ที่ที่เหมาะสมสำหรับเก็บเอกสาร repo หลายร้อยหน้า พวกมันควรชี้เอเจนต์ไปยังบริบทที่ถูกต้อง แล้วให้เอเจนต์ดึงสิ่งที่ต้องการ
OpenWiki เป็นไปตามโมเดลนั้น มันสร้าง repo wiki จากนั้นอัปเดตไฟล์คำแนะนำของเอเจนต์ของคุณด้วยการอ้างอิงไปยัง wiki นั้น จากนั้น coding agent ของคุณสามารถค้นพบและใช้เอกสารโดยอัตโนมัติ
เริ่มต้นใช้งาน
OpenWiki ออกแบบมาให้ใช้งานง่ายจาก command line
ติดตั้งด้วย NPM:
npm install -g openwiki
จากนั้นรัน:
openwiki --init

คำสั่ง init จะถามหา model provider และ API key จากนั้นสร้างเอกสารสำหรับ repo ของคุณ
OpenWiki รองรับทั้ง model provider แบบเปิดและปิด รวมถึง OpenRouter, Fireworks, Baseten, OpenAI และ Anthropic โดยค่าเริ่มต้นจะใช้ OpenRouter กับโมเดลแบบเปิด แต่คุณสามารถกำหนดค่า provider ที่เหมาะสมกับการตั้งค่าของคุณได้
เนื่องจาก OpenWiki สร้างบนพื้นฐานของ DeepAgents มันยังรองรับการติดตามผลไปยัง LangSmith หากคุณระบุ LangSmith API key OpenWiki จะบันทึกการทำงานไปยังโปรเจกต์ LangSmith เพื่อให้คุณตรวจสอบสิ่งที่เอเจนต์ทำขณะสร้างหรืออัปเดตเอกสารของคุณ
OpenWiki เชื่อมต่อกับ coding agent ของคุณอย่างไร
หลังจากสร้าง wiki แล้ว OpenWiki จะอัปเดตไฟล์คำแนะนำของเอเจนต์ใน repo ของคุณ หาก repo ของคุณใช้ AGENTS.md, CLAUDE.md หรือทั้งสองอย่าง OpenWiki จะเพิ่มการอ้างอิงไปยัง wiki ที่สร้างขึ้นและอธิบายว่าเมื่อใดที่เอเจนต์ควรใช้
เราเลือกแนวทางนี้เพราะการใส่ wiki ทั้งหมดไว้ในไฟล์คำแนะนำจะเพิ่มบริบทมากเกินไป ใน repo ขนาดใหญ่ wiki อาจครอบคลุมหลายร้อยไฟล์ การโหลดทั้งหมดนั้นในทุกการทำงานของเอเจนต์จะสิ้นเปลืองและดูแลรักษายาก
การอ้างอิงสั้นๆ ทำงานได้ดีกว่า coding agent ของคุณอ่านไฟล์คำแนะนำอยู่แล้ว เมื่อ OpenWiki เพิ่มการอ้างอิง เอเจนต์จะสามารถค้นหา wiki เมื่อต้องการบริบทของ repo โดยไม่ต้องให้คุณเปลี่ยนขั้นตอนการทำงาน
การทำให้ wiki ทันสมัยอยู่เสมอ
การสร้างเอกสารครั้งเดียวมีประโยชน์ การทำให้มันทันสมัยคือจุดที่ OpenWiki มีคุณค่ามากขึ้น
OpenWiki มี GitHub Action ที่สามารถรันตามกำหนดเวลา เช่น วันละครั้ง Action จะรัน OpenWiki ด้วยแฟล็ก update OpenWiki ตรวจสอบว่ามี commit ใดที่เข้ามาตั้งแต่การรันครั้งล่าสุด ใช้ git diffs เพื่อทำความเข้าใจสิ่งที่เปลี่ยนแปลง จากนั้นอัปเดต wiki ด้วยบริบทที่เกี่ยวข้อง
นั่นหมายความว่า workflow สามารถทำงานในเบื้องหลังได้ เมื่อฐานโค้ดของคุณเปลี่ยนแปลง OpenWiki จะอัปเดตเอกสาร coding agent ของคุณจะได้รับ wiki ล่าสุดผ่านการอ้างอิงในไฟล์คำแนะนำที่มีอยู่
สร้างมาเพื่อฐานโค้ดเป็นอันดับแรก
รุ่นแรกนี้มุ่งเน้นที่ wiki สำหรับฐานโค้ด เป้าหมายคือทำให้เอเจนต์เข้าใจ repos ที่พวกเขาทำงานได้ง่ายขึ้น โดยไม่ต้องให้ผู้พัฒนาเขียนและดูแลเอกสารโดยละเอียดด้วยตนเอง
เมื่อเวลาผ่านไป เราคิดว่าแนวคิดของ OpenWiki สามารถนำไปใช้ในวงกว้างขึ้นได้ เอเจนต์ต้องการบริบทที่คงทนสำหรับงานหลายประเภท ไม่ใช่แค่การเขียนโค้ด เอกสารฐานโค้ดเป็นกรณีการใช้งานแรก แต่รูปแบบเดียวกันนี้สามารถช่วยให้เอเจนต์รักษาบริบทที่เป็นประโยชน์ใน workflow อื่นๆ ได้เช่นกัน
ลองดู
OpenWiki เป็นโอเพนซอร์สและพร้อมใช้งานแล้วตอนนี้
คุณสามารถติดตั้ง เรียกใช้ openwiki --init และสร้าง wiki สำหรับ repo ของคุณได้ภายในไม่กี่นาที
ดู repo ได้ที่นี่: https://github.com/langchain-ai/openwiki และชมวิดีโอแนะนำ: https://youtu.be/nIVu3zfYprI





