I Put an Agent Skill on the Solana Blockchain (Real Code Bytes)
สรุปย่อ
ประเด็นสำคัญจากวิดีโอ
- **ช่อง:** Tonbi's AI Garage · **ความยาว:** ~21 นาที · **ลิงก์:** https://www.youtube.com/watch?v=tVED0r3vGrQ
# สรุป: I Put an Agent Skill on the Solana Blockchain (Real Code Bytes) - **ช่อง:** Tonbi's AI Garage · **ความยาว:** ~21 นาที · **ลิงก์:** https://www.youtube.com/watch?v=tVED0r3vGrQ ## ประเด็นหลัก - ผู้สร้างสร้างโปรเจกต์ "Gitlana" เพื่อจัดเก็บ agent skill (โค้ดจริง) ไว้บน Solana blockchain แบบถาวร ไม่ใช่ลิงก์หรือไฟล์สำรอง แต่เป็น bytes จริงใน account เดียว - แนวคิดเริ่มจากคำถาน่าสนใจ "ถ้า repo สามารถเป็น NFT ได้ล่ะ?" และพัฒนาเป็นบ้านถาวรที่ตรวจสอบได้สำหรับแพ็กเกจซอฟต์แวร์ขนาดเล็ก - เหตุผลหลักในการทำ: (1) พื้นที่เก็บข้อมูลที่ไม่มีใครแตะต้องได้ (2) มี wallet ติดกับทุกแพ็กเกจเป็น identity (3) "คิดว่ามันเท่" - ใช้ Metaplex Core standard โดยเก็บ manifest ไว้ใน attributes plugin และตัวโค้ดเองใน app data plugin - แพ็กเกจตัวอย่างมีขนาด 3,297 bytes บน mainnet ใช้เวลาสร้างด้วย Claude Code + Fable และ Hermes agent (GPT-5.6 Sol) - deterministic packaging ทำให้ source เดียวกันได้ archive ตรงกันทุก byte บนทุกเครื่อง ใครก็ rebuild แล้วยืนยัน fingerprint ได้ - การ publish บน mainnet เสียค่าใช้จ่ายประมาณ 0.05 SOL (~$4) และเป็นเงินมัดจำที่คืนได้ ทั้งยังมี proposal จะลดอีก 10 เท่า - รองรับ versioning เหมือน GitHub: update แทนที่ในตำแหน่งเดิม (เสียค่าใช้จ่ายน้อย) และ release เป็น snapshot แยกที่ immutable - การเข้าถึงฟรีทั้งหมด เพียงเรียก get account info ไม่ต้อง login ตรวจสอบ fingerprint แล้วก็ unpack + ติดตั้งได้ - เดโมจริง: ให้ Hermes agent ตัวใหม่เอี่ยมดึงและติดตั้ง skill จาก address เดียว สำเร็จในราว 4 นาที - Road map: Phase 2 เป็น provenance (เชื่อม wallet กับผู้เขียนตั้งต้นด้วย NPM provenance tech), Phase 3 คือ machine payments (Tempos / X402) - โค้ดทั้งหมดเป็น public บน GitHub (Tomb Studios/Gitlana) และมี CLI ให้ใช้สำหรับ mint package ได้ ## ความเห็นสรุป โปรเจกต์นี้เป็นการทดลองที่น่าสนใจและมีเทคนิคที่ค่อนข้างแข็งแรง โดยอาศัยความสามารถของ Metaplex Core app data plugin ในการเก็บ raw bytes บน chain แบบถาวรจริงๆ แม้ว่าข้อจำกัดเรื่องขนาดและต้นทุนยังทำให้ใช้ได้กับแพ็กเกจขนาดเล็กเท่านั้น แต่แนวคิดดังกล่าวเปิดทางใหม่ในการกระจายซอฟต์แวร์อย่างไม่มีศูนย์กลาง คุ้มค่ากับการติดตามต่อสำหรับทิศทาง phase 2 และ 3 ครับ
คำแปลเต็ม
แปลตามบทสนทนาต้นฉบับ ปรับเป็นภาษาไทยธรรมชาติ
ตัวเลขพวกนี้บนสไลด์ด้านบนอาจจะดูเหมือนแค่ตัวเลขสุ่มที่ผมเอามาใส่เพื่อทำสไลด์ให้ดูเท่ นะครับ แต่จริงๆ แล้วมันเป็นข้อมูลจริงทั้งหมด มันคือ bytes จริงๆ ของแพ็กเกจซอฟต์แวร์และ agent skill ที่ผมสร้างขึ้น และมันอาศัยอยู่ภายใน account เดียวบน Solana blockchain ไม่ใช่ลิงก์ไปหามัน ไม่ใช่ข้อมูลสำรอง ไม่ใช่ตัวชี้ มันคือตัวโค้ดเองจริงๆ นะครับ นี่เป็นโปรเจกต์ที่ผมสร้างด้วยตัวเอง ตอนนี้ผมตั้งชื่อมันว่า Gitlana และในวิดีโอนี้ผมจะแนะนำแนวคิดให้คุณรู้จัก ว่าผมสร้างมันยังไง ผมจะพาคุณดู transaction หนึ่งตัว เพื่อพิสูจน์ว่าโค้ดและ skill นี้อยู่บน Solana blockchain จริงๆ ไม่ใช่ไฟล์ที่โฮสต์ไว้ที่ไหน ไม่ใช่เซิร์ฟเวอร์ของผมเอง แล้วสุดท้ายเราจะเอา AI agent ตัวใหม่ที่สด fresh หนึ่งตัว คือ Hermes agent แล้วก็ให้มันไปดึง skill นี้และติดตั้งตรงจาก blockchain เลย โดยที่ต้องรู้แค่สิ่งเดียวคือ address บน mainnet beta นี้ มาเริ่มกันเลยครับ
สิ่งหนึ่งเกี่ยวกับการได้เข้าถึงเครื่องมือ AI พวกนี้ทั้งหมดก็คือ มันจุดประกายจินตนาการได้จริงๆ อย่างน้อยก็สำหรับผมนะครับ ไอเดียสุ่มๆ อะไรก็ตาม ความอยากรู้อยากเห็นอะไรก็ตาม ผมสามารถคุยกับ agent ของผมเกี่ยวกับมันได้ ให้มันไปค้นคว้า แล้วลองดูว่ามีอะไรที่พอจะเป็นไอเดียที่ไม่เลยเหมือนกันหรือเปล่า และพูดตามตรงเก้าจากสิบครั้ง หรืออาจจะมากกว่านั้นด้วยซ้ำ ไอเดียนั้นก็ไม่ใช่ไอเดียที่ดีนัก และไอเดียนี้ก็เริ่มต้นด้วยศักยภาพแบบนั้นเหมือนกัน เมื่อผมถามมันว่า "ถ้า repo สามารถเป็น NFT ได้ล่ะ?"
ก็นั่นคือไอเดียครับ คือ mint code repository ให้เป็น NFT ทำให้ metadata เป็นตัวโค้ดเอง แล้วให้ agent ดึงซอฟต์แวร์มาได้จาก address และในธรรมเนียมการตั้งชื่อโปรเจกต์ Solana ที่แสนจะแห้งและเน้นไปที่สัตว์ตัว Sol กับ NFT กันใช่ไหมครับ ก็มี Sol bears, Sol llamas พวกนี้ ผมเลยตัดสินใจตั้งชื่อโปรเจกต์นี้ว่า Gitlana แต่ข้อเท็จจริงที่ต้องยอมรับก็คือ metadata ของ NFT โดยทั่วไปก็มักจะเป็นแค่ลิงก์ไปยังไฟล์ที่โฮสต์ไว้ที่อื่น แม้แต่ตัว NFT เองในแบบดั้งเดิม ก็มักจะเป็นแค่ลิงก์ไปยังไฟล์ที่เก็บไว้บน Arweave หรืออะไรแบบนั้น ดังนั้นไอเดียก็เลยถูกปรับปรุงให้กลายเป็น ไม่ใช่ Git บน blockchain โดยตรง แต่เป็นบ้านถาวรที่ตรวจสอบได้สำหรับแพ็กเกจซอฟต์แวร์ขนาดเล็ก โดยมี address เหมือนเงิน อ่านได้โดยใครก็ได้ ตลอดไป
คุณอาจจะถามว่า ทำไมต้องทำแบบนี้ใช่ไหมครับ ผมมีเหตุผลอยู่สามข้อ ข้อแรกคือพื้นที่เก็บข้อมูลที่ไม่มีใครแตะต้องได้ blockchain เป็นระบบกระจายศูนย์ ตอนปล่อยออกไปแล้วมันจะถูก freeze ไว้ bytes จะถูกคัดลอกไปทั่วเครือข่ายเครื่องจักรอิสระทั่วโลก ดังนั้นจึงไม่มี host ให้ใครมากดดัน ไม่มีปุ่มลบให้กดใช่ไหมครับ GitHub repo ก็เคยถูกลบออกตามคำขอจากผมเชื่อว่ารัฐบาล หรือแน่นอนว่าบริษัทเอกชน ถ้าเขียนไว้บน Solana blockchain มันจะเป็นระบบกระจายศูนย์อย่างสมบูรณ์และอยู่นอกเหนือการควบคุมของพวกเขา
ข้อสองคือจะมี wallet ติดอยู่กับทุกแพ็กเกจ ทุกแพ็กเกจจะถูก mint โดย Solana wallet ดังนั้นคุณจะมี identity ในตัวและมีวิธีสนับสนุนนักพัฒนาแบบ built-in แล้วผมคิดว่าสิ่งนี้จะถูกพัฒนาเพิ่มขึ้น ใน road map ของผม ผมมีแผนสำหรับ cryptographic proof ว่าใครเป็นคน publish มัน ซึ่งผมมีแผนที่ค่อนข้างชัดเจนสำหรับเรื่องนั้น แล้วในที่สุดผมคิดว่าน่าจะมีทางทำ payment gate ได้ แต่ผมยังคงศึกษาเรื่องนั้นในอนาคตอยู่ครับ
และเหตุผลข้อที่สาม ซึ่งอาจจะเป็นเหตุผลหลัก ก็คือ ผมไม่รู้สิ ผมว่ามันเท่ดี ซึ่งจริงๆ แล้วเป็นเหตุผลเดียวที่ผมต้องการจะลองทำอะไรซักอย่าง มันอาจจะโง่ อาจจะไม่มีค่า แต่ผมไม่รู้สิ ผมว่าการเอาโค้ดไปไว้บน blockchain มันเท่ดีนะ ผมเลยตัดสินใจลองทำดูครับ
ก็เคยมีความพยายามอื่นๆ ในเรื่องนี้มาก่อน และบางโปรเจกต์ก็ค่อนข้างประสบความสำเร็จพอสมควร ผมจะไม่พูดถึงทั้งหมดนะครับ แต่ protocol หลายตัวก็ค่อยๆ ตายลงไปด้วยเหตุผลอะไรบางอย่าง และบางตัวก็มีสถาปัตยกรรมที่ต่างออกไป คือมันไปชี้ไปที่ไฟล์หรือเซิร์ฟเวอร์นอก chain ซึ่งไม่ใช่สิ่งที่ผมต้องการทำเป๊ะๆ แต่ก็มีกรณีที่พิสูจน์แล้วว่าทำได้ เช่น Ordinals บน Bitcoin repo เหล่านี้ถูก inscribe ลงบน Bitcoin จริงๆ และ Olas น่าจะเป็นตัวที่ใกล้เคียงที่สุด พวกเขา mint agent เป็น NFT แต่ตัวโค้ดเองนั้นอยู่บน IPFS ซึ่งเป็น off-chain และอาจจะมีตัวอย่างอื่นๆ อีก แต่ผมไม่เห็นใครทำเป๊ะกับสิ่งที่ผมอยากทำบน Solana mainnet เลย
ผมสร้างโปรเจกต์นี้โดยใช้ทั้ง Claude Code ร่วมกับ Fable และ Hermes agent โดยใช้ GPT-5.6 Sol แน่นอนครับ และนี่คือกฎห้าข้อที่เราวางไว้ ข้อแรกคือไอเดียไม่ใช่การสร้าง Git ใหม่ GitHub ก็ใช้ได้อยู่แล้วสำหรับสิ่งที่มันเป็น แต่จงขายในสิ่งที่ GitHub ทำไม่ได้ นั่นคือความถาวร การตรวจสอบที่มา และการชำระเงิน ข้อสอง การอ่านฟรี การ publish เสียเงิน ค่า mint จะเป็นตัวกรองสแปมเพราะการ mint NFT พวกนี้ก็ต้องเสียเงินจริงๆ ข้อสามเป็นส่วนที่ยังอยู่ใน road map คือต้องแสดงให้เห็นว่าใครเป็นคน sign ไม่ใช่แค่มี badge ยืนยันอย่างเดียว คุณต้องมี identity ที่ชัดเจนว่าใครเป็นคนสร้างสิ่งนี้ขึ้นมาจริงๆ ข้อสี่ NFT คือการกระจาย ไม่ใช่ของที่ระลึก มันไม่ใช่ของสะสมหรืออะไรแบบนั้นจริงๆ และข้อห้า unit ต้องมีขนาดเล็ก repo ทั้งหมดยังใส่ไม่ไหวในเชิงเศรษฐกิจในตอนนี้กับเทคโนโลยีที่เรามี
ผมเลยโฟกัสไปที่ agent skills เป็นหลัก ซึ่งค่อนข้างเบา ปกติแล้วมีขนาดไม่กี่กิโลไบต์ ส่วนใหญ่เป็นไฟล์ markdown หรืออาจจะเป็นสคริปต์ Python เล็กๆ แต่ไม่ใช่ codebase ขนาดมหึมาในกรณีส่วนใหญ่นะครับ ก็มีการเคลื่อนไหวไปทาง agent และ on-chain identity อยู่พอสมควร Ethereum มีระบบของตัวเอง Solana Foundation ก็เปิดตัวในเดือนมีนาคม สร้าง identity reputation validation สำหรับ agent แต่สิ่งที่เราพบก็คือยังไม่มี agent skill ทั้งตัวอยู่บน chain บน Solana mainnet ที่สามารถ resolve ได้ด้วย address เพียงอย่างเดียว
เราเลยสร้างมันขึ้นมา และนี่คือสถาปัตยกรรมครับ ผมรู้ว่าหลายคนอาจจะไม่ค่อยคุ้นเคยกับ Solana หรือ blockchain ผมเลยขออธิบายสั้นๆ นะครับ หนึ่ง มันคือ global ledger ตัวเดียว คือบันทึกที่ใช้ร่วมกันซึ่งถูกซิงค์โดย validator อิสระหลายร้อยตัวทั่วโลก รวมเป็น node หลายพันตัว ดังนั้นจึงไม่มีเซิร์ฟเวอร์เครื่องเดียวที่เป็นศูนย์กลางนะครับ สอง ข้อมูลอยู่ในสิ่งที่เรียกว่า account มันเป็น container ไบต์เล็กๆ ที่ validator ทุกตัวเก็บสำเนาไว้ address ก็เปรียบเหมือนหมายเลขกล่องนั่นเอง สาม การเขียน bytes ต้องจ่ายเงินมัดจำเรียกว่า rent และมันคืนได้ แต่การอ่าน account ใดๆ นั้นฟรีทั้งหมด ทันที และไม่ต้อง login คุณแค่ต้องการ address ก็พอ และสำหรับ NFT ก็คือ account ที่มี identity นี่ไม่ใช่ NFT ในความหมายดั้งเดิมแบบรูปภาพหรือ PFP หรอกครับ มันเป็นแค่ non-fungible token มันมีอยู่แค่ตัวเดียว และมี identity ติดมาด้วย เราจะใช้มาตรฐาน Metaplex Core ซึ่งผมจะพูดถึงอีกเล็กน้อยในภายหลัง
แล้ว Metaplex Core คืออะไร? การจะสร้าง NFT ซึ่งก็คือ entity ที่ไม่ซ้ำใครและมีเจ้าของบน chain คุณต้องทำตามมาตรฐานหนึ่ง นั่นคือรูปแบบที่ตกลงกันว่า asset จะมีหน้าตาแบบไหนบน chain Metaplex เป็น toolkit ที่อยู่เบื้องหลัง NFT บน Solana ส่วนใหญ่ และ Core คือเวอร์ชันล่าสุดที่ทันสมัยที่สุด ส่วนที่ดีก็คือ Core asset เป็น account เดียวที่ lean มันมีแค่ name, owner, และ update key ซึ่งต่างจากดีไซน์เก่าที่เอา account หลายตัวมาต่อกัน ความสามารถใหม่ที่ยิ่งใหญ่ก็คือ plugin ตัวนี้แหละครับ และมันสำคัญมากสำหรับสถาปัตยกรรมของเรา คุณสามารถ attach plugin เข้ากับ asset เพื่อให้มันมีข้อมูลหรือพฤติกรรมเพิ่มเติมได้ ให้คิดว่ามันเหมือนการลงแอปบนมือถือคุณนะครับ แล้วเราจะใช้สองตัวที่นี่ ตัวหนึ่งเก็บ manifest ขนาดเล็กมาก อีกตัวเก็บ code payload ทั้งหมด ตัวที่สองนี่แหละคือเทคนิคที่สำคัญจริงๆ manifest อยู่ใน attributes ส่วนตัวโค้ดเองอยู่ใน app data
app data คืออะไร? app data เป็น plugin อย่างที่บอก และมัน attach raw bytes โดยตรงเข้ากับ account ของ asset และถูกเก็บบน chain ภายในตัว asset เอง ความสามารถเดียวนั้นแหละคือสิ่งที่เปลี่ยน "โค้ดบน blockchain" จากการพูดเปรียบเปรยให้กลายเป็นเรื่องจริงตามตัวอักษรเลย อย่างที่บอก NFT ปกติจะมี account มีลิงก์บางอย่าง แล้วก็ไฟล์บนเซิร์ฟเวอร์ Arweave เป็นที่นิยมมากที่สุดสำหรับ PFP NFT พวกนี้ใช่ไหมครับ แต่กับ app data ไม่มีลิงก์เลย bytes ก็คือตัว account เอง ดังนั้นจึงไม่มีอะไรให้ชี้ ไม่มีอะไรให้สูญหาย validator ทุกตัวเก็บสำเนาไว้
และอย่างที่บอก attributes plugin เก็บ label text ขนาดเล็ก ซึ่งก็คือที่ที่เราใส่ manifest, ชื่อ, เวอร์ชัน, และ fingerprint พอเอาทั้งหมดมารวมกัน นี่คือแพ็กเกจทั้งหมด มันเป็นแค่ account เดียวนะครับ แต่มีขนาด 3,297 bytes บน mainnet และนั่นคือทุกอย่างสำหรับ agent skill ที่ผมสร้างขึ้น และในเดโมนี้ ผมจะใช้ skill ที่สอน agent วิธีการดึง skill เหล่านี้จาก on chain มาดูกันสักเล็กน้อยนะครับ ที่ด้านบนมี identity ประกอบด้วย name, owner, update key, update authority ซึ่งปกติจะเป็นคนที่ mint NFT นั้น แล้วก็อย่างที่บอก attributes คือ manifest มันแสดงมาตรฐาน เวอร์ชัน entry point แล้วก็ตรงนี้ content SHA256 นี่คือ fingerprint ที่ใครก็สามารถตรวจสอบซ้ำได้ แล้วก็ตัว code เอง ซึ่งอยู่ในรูป compressed archive ซึ่งจริงๆ แล้วก็คือ skill หนึ่งตัวแล้วก็สคริปต์เล็กๆ หนึ่งตัว และมีเรื่องหนึ่งที่สำคัญ คือมี deterministic packaging ดังนั้น source file เดียวกันจะให้ archive ที่เหมือนกันทุก byte บนเครื่องไหนก็ตาม fingerprint นี้จึงไม่ใช่เรื่องที่คุณต้องเชื่อผมแค่ฝ่ายเดียว ใครก็สามารถ rebuild จาก source แล้วยืนยันได้
แต่ก็มีข้อจำกัดอยู่ และมันเป็นข้อจำกัดที่ค่อนข้างใหญ่ด้วย คือ Solana transaction เดียวปัจจุบันรับได้ประมาณ 1.2 กิโลไบต์ ซึ่งแน่นอนว่าเล็กกว่าแพ็กเกจส่วนใหญ่ แล้วเราจะเอาไฟล์ที่ใหญ่กว่านั้นเข้าไปได้ยังไงล่ะ? มีสามขั้นตอนครับ ขั้นแรก stage คุณเขียน archive ทีละ chunk เข้าไปใน temporary buffer account จากนั้น copy ซึ่งเป็น instruction เดียวที่ดูด buffer ทั้งหมดเข้าไปในแพ็กเกจของคุณในครั้งเดียว แล้วสุดท้าย reclaim คุณลบ buffer ทิ้ง และเงินมัดจำก็คืนมาหาคุณทันที
แล้วมันเสียเงินเท่าไหร่จริงๆ? นี่คือตัวเลขจริงจากการ launch ที่เราทำ การ publish บน mainnet ทั้งหมดของเรา ทั้งแพ็กเกจและ frozen snapshot รวมเป็นประมาณ 0.05 SOL หรือราวๆ 4 ดอลลาร์ตามราคา SOL ปัจจุบัน และนี่คืนได้ถ้าคุณปิดมัน และมันน่าจะถูกลงไปอีก ตามที่เข้าใจ ยังไม่ได้ตัดสินใจขาดลอย แต่มี Solana proposal ที่จะลดค่ามัดจำพื้นที่เก็บข้อมูลลง 10 เท่า และมันจะค่อยๆ ออกมาเป็นขั้นตอน โดยขั้นแรกตั้งเป้าไว้กลางเดือนสิงหาคม ซึ่ง timing ก็ค่อนข้างดีทีเดียว
สิ่งที่ GitHub มีคือ versioning ใช่ไหมครับ ผมก็เลยอยากเพิ่มองค์ประกอบนั้นใน Gitlana ของผม แต่มันอาจจะแพง อย่างที่เพิ่งเห็น เพราะทุกครั้งที่ publish มันจะต้องเสียเงิน ดังนั้นเวลาที่คุณอัปเดตโค้ดเอง เวอร์ชันใหม่จะเข้าไปแทนที่ payload ในตำแหน่งเดิม เหมือนกับ Git push โดย address ไม่เปลี่ยน ทุกคนที่ถืออยู่ก็จะได้รับการอัปเดต และมันแทบจะไม่ต้องเสียเงินเลย แล้วก็มี releases ซึ่งเป็นประวัติศาสตร์มากกว่า release หมายถึง snapshot แยกต่างหาก และมันจะทำลาย update key ของตัวเอง มันจึงเป็น immutable และ snapshot เหล่านั้นจะเชื่อมกลับไปยัง parent ของมัน และมีประวัติเวอร์ชันแบบเต็มที่เดินได้บน chain ทั้งหมด
คุณอาจจะไม่จำเป็นต้องเอาทุก push ไปทำเป็น release แยก แต่ release ใหญ่ๆ คุณสามารถ freeze แบบนี้ได้ คุณก็จะเห็นประวัติศาสตร์ได้ และผมก็ได้ทดสอบเรื่องนี้จริงๆ ครับ immutability ถูกบังคับโดยเครือข่าย ไม่ใช่สัญญาของใครคนใดคนหนึ่ง ผมลองทดสอบแล้ว เราพยายามจะ override frozen snapshot ของตัวเอง ด้วย wallet ที่สร้างมันขึ้นมาเลยด้วยซ้ำ แต่มันถูกปฏิเสธครับ ดังนั้น frozen ก็คือ frozen มันเป็น immutable สำหรับทุกคน รวมถึงคนที่เขียนมันขึ้นมาด้วย
แล้วจะเข้าถึงยังไง? มันง่ายมากครับ ก็แค่เลข มันคือการเรียก API ฟรีหนึ่งครั้ง เรียกว่า get account info ไปยัง node ใดก็ได้ ไม่ต้อง login หรืออะไร เครื่องจักรทำได้เลย คุณสามารถอ่าน manifest และ bytes ได้ แล้วก็คำนวณ fingerprint ใหม่ ถ้ามันไม่ตรงกับ manifest ก็หยุด แล้วก็ unpack อย่างปลอดภัย แสดงไฟล์และสิทธิ์ แล้วให้คนยืนยัน แล้วก็ติดตั้ง ดังนั้น address นี้จึงพิสูจน์ integrity ของมัน bytes ที่คุณได้มาคือ bytes ที่ถูก publish จริงๆ และการตรวจสอบ fingerprint ทำให้การแก้ไขตรวจจับได้โดยใครก็ตาม
สิ่งที่ยังทำไม่ได้ตอนนี้คือเรื่อง authorship ใช่ไหมครับ ตอนนี้ใครก็สามารถ mint สำเนาของโค้ดใครก็ได้ แต่ผมกำลังทำเรื่องนั้นอยู่ ผมมีแผนที่ค่อนข้างชัดเจนสำหรับ phase two ที่จะพิสูจน์ว่าใครเป็นคน publish โดยการพิสูจน์ว่าใครเป็นคน publish มัน ผมจะมาอัปเดตให้คุณฟังเรื่องนั้นเมื่อมันเสร็จนะครับ แต่จากการวิจัยและแผนที่ผมได้พัฒนาขึ้น มันดูเหมือนจะเป็นไปได้ค่อนข้างสูง
โอเค คุณคงเบื่อสไลด์แล้วใช่ไหมครับ มาดูของจริงกันสักหน่อยดีกว่า และถ้าคุณใช้ Hermes Agent อยู่แล้วและอยากเข้าถึง LM wiki ที่ผมเองใช้ทำวิจัยและสร้างวิดีโอพวกนี้จริงๆ ลองแวะดูโปรเจกต์ของผมที่ agentwikis.com ได้นะครับ ผมให้ wiki ทั้งหมดนี้ฟรีในหัวข้อต่างๆ ที่หลากหลาย และคุณก็สามารถสมัคร pro account ในราคา 9.99 ดอลลาร์ต่อเดือนได้ ซึ่งจะให้สิทธิ์เข้าถึง wiki ขนาดใหญ่พิเศษ มีจำนวนหน้ามากกว่าและรายละเอียดมากกว่าในแต่ละหัวข้อ กลับเข้าเรื่องวิดีโอกันต่อนะครับ
นี่คือตอนที่ผมกำลังทำงานอยู่ใน Fable หรือทำงานใน Claude Code กับ Fable ผมเริ่มจาก brainstorm file นั้น ซึ่งเป็นความคิดสุ่มๆ ของผม ผมให้มันรัน sub-agent หลายตัวเพื่อตรวจสอบความเป็นไปได้ของเรื่องนี้ และมันเป็นเรื่องค่อนข้าง... พองานวิจัยจาก Fable เสร็จ มันก็ค่อนข้างง่ายเลย มันหาวิธีทำได้แล้ว และนี่ก็เป็นวิธีเดียวกับที่เราทำอยู่เป๊ะเลย แล้วเราก็คุยกันว่ามันเหมาะกับ Git push และอะไรพวกนั้นไหม และเราคุยกันถึงตัวเลือกต่างๆ แต่สุดท้ายเราก็เลือกวิธีที่ผมเพิ่งแนะนำไปก่อนหน้านี้
ผมถามคำถามต่างๆ มากมายเกี่ยวกับเรื่องนี้ รวมถึงความเสี่ยงด้านความปลอดภัย ไม่มีอะไรน่ากังวลมากนัก ตราบใดที่คุณไม่เอา key ของคุณไปเผยแพร่สาธารณะ ส่วนที่น่าห่วงที่สุดก็คงจะเป็นขั้นตอนต่อไป ถ้าคุณเชื่อม wallet ของคุณกับ identity สาธารณะ ถึงอย่างนั้นก็ตาม มีหลายวิธีที่คนทำแบบนั้นอยู่แล้ว แต่นั่นก็จะเป็นส่วนที่เลือกได้ด้วยเช่นกัน
จากนั้นเราก็ทำ devnet test ของเรื่องนี้ ผลปรากฏว่าสำเร็จ แล้วเราก็ทำ mainnet test และ mainnet test ก็ผ่านเช่นกัน นี่คือ mutable head ซึ่งเป็น address หลักของมัน ถ้าผมตรวจสอบ address นี้บน Solscan มันจะออกมาหน้าตาแบบนี้ครับ นี่คือสิ่งที่มันดูเหมือน ผมจะใส่ address นี้ในคำอธิบายไว้ ถ้าคุณต้องการตรวจสอบเอง คุณจะเห็นมันได้ที่นี่เลย และ owner นี้คือ wallet address ของผมที่ใช้สำหรับเรื่องนี้ คุณจะเห็นว่า owner program คือ Metaplex Core และมันจะแสดงชื่อว่า on-chain skill resolver ซึ่งเป็นชื่อของ agent skill ตัวนี้ คุณจะเห็น metadata ตรงนี้ mint แล้วก็ update authority ส่วน Solscan เองจะไม่แสดงส่วนนี้ ผมต้องไปดูใน... นี่คือ core.metaplex.com explorer ของพวกเขา นี่คือสิ่งที่เขามี ซึ่งมีรายละเอียดมากกว่า on-chain skill resolver ก็คืออันเดียวกันเลย owner คือ address ของผม ซึ่งก็เป็น update authority ด้วย
คุณเห็น attributes ตรงนี้ นี่คือ manifest ที่ผมพูดถึง มันมี content SHA ซึ่งก็คือ fingerprint และก็มี name, version และข้อมูลทั้งหมด แล้วถ้าคุณดูตรงนี้ นี่คือ app data และนี่ก็คือ plugin ด้วย นี่คือข้อมูลที่ถูกเก็บไว้ ตัวเลขพวกนี้อาจจะดูเหมือนตัวเลขสุ่ม แต่มันก็คือตัวเลขสุ่มจริงๆ มันคือ raw bytes ในรูปแบบ hexadecimal ของ agent skill นั่นเอง ถ้าผม copy มันมา แล้วผมจะเอามาใส่ตรงนี้ คุณไม่จำเป็นต้องทำแบบนี้ด้วยมือนะครับ agent ในแบบที่มันถูกออกแบบมา agent จะอ่านมันเอง แต่เพื่อจะแสดงให้คุณเห็น นี่คือเครื่องมือที่เรียกว่า CyberChef มันมีหลายวิธีในการอ่าน binary และ hexadecimal ต่างกันไป นี่คือ input ซึ่งก็คือสิ่งที่คุณเห็น แล้วผมกด bake และนี่คือ output พบไฟล์สามไฟล์จากการนี้ คุณจะเห็น skill MD, scripts directory แล้วก็ fetch script ซึ่งก็แค่ helper สำหรับดึงข้อมูลแบบง่ายๆ skill MD คือไฟล์หลัก และคุณจะเห็นว่ามันหน้าตาเหมือนไฟล์ markdown ปกติเลยใช่ไหมครับ on-chain skill resolver ใช้เมื่อไหร่ วิธีการเก็บ on-chain skills กระบวนการดึงข้อมูล
มันบอก agent ว่าต้องทำยังไง security rules, publisher attestation, ตัวอย่าง ใช่ครับ failure modes ทุกอย่างที่คุณจะได้ในไฟล์ skill ปกติเลย และทั้งหมดนี้อยู่บน chain ในรูปแบบ hexadecimal อยู่บน Metaplex Core plugin ตัวนี้คือ app data plugin ทั้งหมดนี้อยู่บน chain อย่างสมบูรณ์ และคุณสามารถตรวจสอบได้บน explorer.solana.com ด้วย ดังนั้นมันคือ Metaplex compressed NFT ในทางเทคนิค และมันมี raw data อยู่ raw data ถ้าคุณ copy มันอีกครั้ง มันก็คือสิ่งเดียวกับที่ผมเพิ่งแสดงให้คุณเห็น ก็มีเท่านี้ครับ เราเอามันขึ้น Solana mainnet แล้ว มันเป็น skill จริง
และตอนนี้เราจะให้ agent ตัวใหม่ที่สด fresh ตัวที่ไม่มี memory หรือความรู้เกี่ยวกับโปรเจกต์นี้เลย ลองดึงมันมา และเป็นครั้งเดียวที่ผมจะให้ prompt นี้กับมัน เพราะมันไม่รู้อะไรเลย นี่คือ prompt ที่ผมจะให้ และผมก็ไม่รู้เหมือนกันว่ามันจะทำงานได้จริงไหม ผมยังไม่ได้ทดสอบมันเลย แต่นี่คือ prompt ที่จะใช้ มี software package หนึ่งที่ถูกเก็บไว้ใน Solana account นี้ ผมจะให้ address กับมัน ให้ดึงมันมาด้วย get account info call ครั้งเดียว หา manifest และ gzip archive ใน bytes ตรวจสอบ fingerprint แล้วก็ unpack มันและอ่าน skill MD ก่อนเป็นอันดับแรก skill ที่มันดึงมาได้จะเป็น instructions ที่เหมือนกับที่ผมเพิ่งแสดงให้คุณเห็นสำหรับ on-chain skill resolver มาลองทำกันเลยครับ ใน Hermes agent ไปกันเลย
ตอนนี้เราอยู่ใน Hermes chat ใช้ GPT-5.6 Sol แน่นอนครับ ผมให้ prompt ที่คุณเพิ่งเห็นกับมัน แล้วมาดูกันว่ามันจะสามารถดึงมันมาได้จริงไหมจาก address เดียวนี้ มันไม่มี skill พิเศษอื่น ไม่มี MCP อื่น ไม่มี plugin นี่เป็น agent ตัวใหม่เอี่ยมเลย
โอเค มันกำลังทำงานอยู่ และมันทำได้แล้ว ใช้เวลาไปราวๆ 4 นาที เกือบ 4 นาทีเลย ดึง ตรวจสอบ และ unpack สำเร็จ account owner มันได้ skill มาแล้ว มันตรวจสอบ integrity จริงๆ ด้วย คุณจะเห็นว่า fingerprint ตรงกันอย่างถูกต้อง มันสามารถดึง skill และสคริปต์มาได้ และคุณจะเห็นว่า skill MD ถูก extract ออกมา โดยอธิบายว่าเป็น read-only resolver สำหรับการดึงและตรวจสอบ Hermes-style skills ที่เก็บอยู่ใน Metaplex Core account state นี่คือสิ่งที่ skill ทำเป๊ะเลย
ตอนนี้ผมก็สามารถติดตั้ง skill ตรงนี้ได้ โอเค ติดตั้งเรียบร้อยแล้ว คุณจะเห็นตรงนี้เลยใน Hermes skill ของผม ในหมวด software development on-chain skill resolver นั่นคือกระบวนการทั้งหมดตั้งแต่ต้นจนจบ การ mint NFT นี้แล้วให้ agent ดึง skill มาตรงจาก blockchain ได้เลย
แล้วเราจะไปต่อยังไงจากตรงนี้? Phase one ส่งมอบไปได้ค่อนข้างดีเลย ผมพอใจกับผลลัพธ์นี้มาก Phase two คือเรื่อง provenance และอย่างที่บอก ผมมี road map ที่ค่อนข้างชัดเจนว่าจะทำยังไง มันจะใช้เทคโนโลยีที่อยู่เบื้องหลัง NPM provenance ซึ่งผมคิดว่าสามารถนำมา reuse ในกรณีนี้ได้ เพื่อเชื่อมต่อ wallet กับผู้เขียนตั้งต้นของ GitHub repo หรือ NPM package จริงๆ แล้ว phase three คือเรื่องที่ผมกำลังศึกษาอยู่ ผมยังล็อกไว้ไม่แน่นเท่า phase two แต่ก็คงจะเป็นระบบ machine payments บางรูปแบบ ไม่ว่าจะใช้ Tempos machine payments protocol ซึ่งมี Stripe และ Paradigm เป็นแบ็กเอนด์ หรือ X402 บน Solana เพื่อทำ payment gate ให้กับโค้ดบน chain โดยที่ wallet ของผู้เขียนสามารถรับเงินจากโค้ดที่เขาเขียนได้โดยตรง แน่นอนว่ามีหลายวิธีที่จะทำแบบนี้แบบ off-chain แต่ผมไม่รู้สิ ผมว่าการลองทำแบบนี้ทั้งหมดบน chain มันเท่ดีนะ
และถ้าคุณอยากตรวจสอบเรื่องนี้ด้วยตัวเอง รวมถึงบน GitHub แบบเก่าๆ ผมได้ publish มันไว้แล้ว ตอนนี้เป็น public นะครับ ที่ Gitlana ใน Tomb Studios / Gitlana คุณสามารถเข้าไปดูได้เลย agent skill packages จริงๆ มันเป็นโค้ดอะไรก็ได้ แต่ผมแค่คิดว่า agent skills เหมาะสมที่สุดกับเรื่องนี้ และ repo นี้จะให้ข้อมูลทุกอย่างที่คุณจำเป็นต้องรู้ ทั้งการ mint package เอง หรือให้ agent ของคุณชี้ไปที่มัน และจริงๆ มันเป็น CLI ที่คุณสามารถติดตั้งได้ โดยใช้ git clone แล้วก็ npm install เพื่อให้คุณสามารถใช้คำสั่งง่ายๆ เหล่านี้ได้ แทนที่จะต้องคุยกับ agent โดยตรง คุณก็แค่ใช้คำสั่ง CLI ที่ผมสร้างขึ้นเพื่อให้มันง่ายขึ้นนิดหน่อย แต่มันมีข้อมูลทุกอย่างเกี่ยวกับวิธี publish skill บน chain รวมถึง formatting และอย่างอื่นทั้งหมด และการอัปเดตใดๆ ของ road map ที่ผมพูดถึงเรื่องอื่นๆ ก็จะอยู่ที่ repo นี้ทั้งหมด
ก็มีเท่านี้ครับ ทุกเรื่องที่พูดถึงในวิดีโอนี้มีอยู่ที่ address นี้บน Solana mainnet มัน live อยู่ตอนนี้ ผมจะใส่ address ไว้ในคำอธิบายเพื่อให้คุณตรวจสอบได้ด้วยตัวเอง สิ่งที่เริ่มจากคำถามสุ่มๆ กับ agent ของผม กลายเป็นโค้ดจริงบน chain ไปแล้ว ก็คงจะมีเท่านี้สำหรับวิดีโอนี้นะครับ รบกวนแสดงความคิดเห็นด้วยนะว่าคิดอย่างไร ผมรู้ว่าเรื่องนี้อาจจะดูโง่สำหรับคนส่วนใหญ่ แต่ผมว่ามันเป็นไอเดียที่เท่ดี และมันอยู่บนจุดตัดระหว่าง blockchain และ AI ซึ่งเป็นขอบเขตที่ผมสนใจ ถึงแม้ว่าผมจะยังไม่ได้ทำงานในพื้นที่ on-chain AI garage ที่เรียกว่าเร็วๆ นี้ก็ตาม แต่ผมก็มีไอเดียนี้ขึ้นมา ถ้าคุณชอบวิดีโอนี้ ฝากกด like ด้วยนะครับ กด subscribe ด้วย แล้วเจอกันใหม่วิดีโอหน้า ขอบคุณที่รับชมครับ
หมายเหตุการแปล
ความโปร่งใสเกี่ยวกับความไม่แน่นอนในต้นฉบับ
- ## ส่วนที่ไม่แน่ใจ / ไม่ชัดเจน
- ไม่มีส่วนที่ฟังไม่ชัดจนต้องใส่ `[ฟังไม่ชัด]`
อภิธานศัพท์เทคนิค
คำศัพท์และชื่อผลิตภัณฑ์ที่คงรูปภาษาอังกฤษ
| ศัพท์ | คำแปล / คำอธิบาย |
|---|---|
| Solana | เครือข่าย blockchain ความเร็วสูง |
| blockchain | บัญชีแยกประเภทแบบกระจายศูนย์ |
| agent skill | ชุดคำสั่ง/ความรู้ที่สอน AI agent ให้ทำงานบางอย่าง |
| Hermes Agent | แพลตฟอร์ม AI agent ของ Nous Research |
| Gitlana | ชื่อโปรเจกต์ที่ผู้สร้างตั้ง (Git + Solana) |
| NFT | non-fungible token (โทเค็นที่ไม่สามารถแทนกันได้) |
| Metaplex Core | มาตรฐาน NFT ล่าสุดบน Solana ใช้ account เดียวแบบ lean |
| app data plugin | plugin ที่เก็บ raw bytes ลงบน chain ในตัว asset เอง |
| attributes plugin | plugin ที่เก็บ label text ขนาดเล็ก เช่น manifest |
| manifest | ข้อมูลเมตาของแพ็กเกจ เช่น ชื่อ เวอร์ชัน entry point |
| fingerprint | ลายนิ้วมือของไฟล์ (content SHA256) ใช้ตรวจสอบ integrity |
| mainnet | เครือข่ายหลักของ blockchain (ไม่ใช่ทดลอง) |
| mainnet beta | เครือข่ายหลักของ Solana ในช่วงเริ่มต้น |
| devnet | เครือข่ายทดลองสำหรับนักพัฒนา |
| account | container ไบต์บน blockchain ที่ validator ทุกตัวเก็บสำเนา |
| validator | เครื่องที่ช่วยซิงค์และยืนยันธุรกรรมบนเครือข่าย |
| node | เครื่องในเครือข่าย blockchain |
| address | ตัวระบุของ account (เหมือนหมายเลขกล่อง) |
| transaction | ธุรกรรมบน blockchain |
| rent | เงินมัดจำสำหรับการเขียน bytes ลงบน account (คืนได้) |
| mint | สร้าง NFT หรือ token ใหม่ขึ้นมา |
| wallet | กระเป๋าเงินดิจิทัลบน blockchain |
| update authority | ผู้มีสิทธิ์อัปเดต asset |
| immutable | ไม่สามารถเปลี่ยนแปลงได้ |
| provenance | การตรวจสอบที่มาและความเป็นเจ้าของ |
| Arweave | เครือข่ายจัดเก็บข้อมูลถาวร |
| IPFS | ระบบไฟล์แบบกระจายศูนย์ |
| Ordinals | ระบบ inscribe ข้อมูลลงบน Bitcoin |
| Olas | โปรเจกต์ที่ mint agent เป็น NFT |
| Claude Code | เครื่องมือเขียนโค้ดของ Anthropic |
| Fable | เครื่องมือ AI ที่ใช้ร่วมกับ Claude Code |
| GPT-5.6 Sol | โมเดล AI ที่ใช้ใน Hermes agent |
| GitHub | แพลตฟอร์มจัดเก็บโค้ด |
| deterministic packaging | การที่ source เดียวกันได้ archive ตรงกันทุก byte |
| SHA256 | อัลกอริทึมแฮชใช้สร้าง fingerprint |
| CyberChef | เครื่องมือแปลงและวิเคราะห์ข้อมูล hexadecimal/binary |
| get account info | การเรียก API เพื่ออ่านข้อมูล account (ฟรี) |
| gzip archive | ไฟล์บีบอัดที่เก็บโค้ดและสคริปต์ |
| NPM | ระบบจัดการแพ็กเกจของ Node.js |
| Tempos | machine payments protocol ที่มี Stripe และ Paradigm สนับสนุน |
| X402 | protocol สำหรับการชำระเงินบน Solana |
| PFP | profile picture NFT แบบดั้งเดิม |
| LM wiki | ฐานความรู้สำหรับ AI agent ใช้ค้นคว้า |
| CLI | command-line interface |
ซับไตเติ้ลภาษาไทย
ดาวน์โหลดหรือดูซับทั้งหมด
1 00:00:00,000 --> 00:00:05,924 ตัวเลขพวกนี้บนสไลด์ด้านบนอาจจะดูเหมือนแค่ตัวเลขสุ่มที่ผมเอามาใส่เพื่อทำสไลด์ให้ดูเท่ 2 00:00:05,924 --> 00:00:09,520 นะครับ แต่จริงๆ แล้วมันเป็นข้อมูลจริงทั้งหมด มันคือ 3 00:00:09,520 --> 00:00:13,822 bytes จริงๆ ของแพ็กเกจซอฟต์แวร์และ agent skill ที่ผมสร้างขึ้น 4 00:00:13,822 --> 00:00:17,630 และมันอาศัยอยู่ภายใน account เดียวบน Solana blockchain
เปิดดูซับไตเติ้ลทั้งหมด (315 segments)
1 00:00:00,000 --> 00:00:05,924 ตัวเลขพวกนี้บนสไลด์ด้านบนอาจจะดูเหมือนแค่ตัวเลขสุ่มที่ผมเอามาใส่เพื่อทำสไลด์ให้ดูเท่ 2 00:00:05,924 --> 00:00:09,520 นะครับ แต่จริงๆ แล้วมันเป็นข้อมูลจริงทั้งหมด มันคือ 3 00:00:09,520 --> 00:00:13,822 bytes จริงๆ ของแพ็กเกจซอฟต์แวร์และ agent skill ที่ผมสร้างขึ้น 4 00:00:13,822 --> 00:00:17,630 และมันอาศัยอยู่ภายใน account เดียวบน Solana blockchain 5 00:00:17,630 --> 00:00:21,086 ไม่ใช่ลิงก์ไปหามัน ไม่ใช่ข้อมูลสำรอง ไม่ใช่ตัวชี้ 6 00:00:21,086 --> 00:00:25,599 มันคือตัวโค้ดเองจริงๆ นะครับ นี่เป็นโปรเจกต์ที่ผมสร้างด้วยตัวเอง 7 00:00:25,599 --> 00:00:30,676 ตอนนี้ผมตั้งชื่อมันว่า Gitlana และในวิดีโอนี้ผมจะแนะนำแนวคิดให้คุณรู้จัก 8 00:00:30,676 --> 00:00:34,273 ว่าผมสร้างมันยังไง ผมจะพาคุณดู transaction หนึ่งตัว 9 00:00:34,273 --> 00:00:38,222 เพื่อพิสูจน์ว่าโค้ดและ skill นี้อยู่บน Solana blockchain 10 00:00:38,222 --> 00:00:42,383 จริงๆ ไม่ใช่ไฟล์ที่โฮสต์ไว้ที่ไหน ไม่ใช่เซิร์ฟเวอร์ของผมเอง 11 00:00:42,383 --> 00:00:45,697 แล้วสุดท้ายเราจะเอา AI agent ตัวใหม่ที่สด fresh 12 00:00:45,697 --> 00:00:49,153 หนึ่งตัว คือ Hermes agent แล้วก็ให้มันไปดึง skill 13 00:00:49,153 --> 00:00:53,596 นี้และติดตั้งตรงจาก blockchain เลย โดยที่ต้องรู้แค่สิ่งเดียวคือ 14 00:00:53,596 --> 00:00:59,731 address บน mainnet beta นี้ มาเริ่มกันเลยครับ สิ่งหนึ่งเกี่ยวกับการได้เข้าถึงเครื่องมือ 15 00:00:59,731 --> 00:01:03,328 AI พวกนี้ทั้งหมดก็คือ มันจุดประกายจินตนาการได้จริงๆ 16 00:01:03,328 --> 00:01:06,642 อย่างน้อยก็สำหรับผมนะครับ ไอเดียสุ่มๆ อะไรก็ตาม 17 00:01:06,642 --> 00:01:10,097 ความอยากรู้อยากเห็นอะไรก็ตาม ผมสามารถคุยกับ agent 18 00:01:10,097 --> 00:01:17,079 ของผมเกี่ยวกับมันได้ ให้มันไปค้นคว้า แล้วลองดูว่ามีอะไรที่พอจะเป็นไอเดียที่ไม่เลยเหมือนกันหรือเปล่า 19 00:01:17,079 --> 00:01:20,958 และพูดตามตรงเก้าจากสิบครั้ง หรืออาจจะมากกว่านั้นด้วยซ้ำ 20 00:01:20,958 --> 00:01:26,740 ไอเดียนั้นก็ไม่ใช่ไอเดียที่ดีนัก และไอเดียนี้ก็เริ่มต้นด้วยศักยภาพแบบนั้นเหมือนกัน 21 00:01:26,740 --> 00:01:30,266 เมื่อผมถามมันว่า "ถ้า repo สามารถเป็น NFT ได้ล่ะ?" 22 00:01:30,266 --> 00:01:33,933 ก็นั่นคือไอเดียครับ คือ mint code repository ให้เป็น 23 00:01:33,933 --> 00:01:37,248 NFT ทำให้ metadata เป็นตัวโค้ดเอง แล้วให้ agent 24 00:01:37,248 --> 00:01:41,620 ดึงซอฟต์แวร์มาได้จาก address และในธรรมเนียมการตั้งชื่อโปรเจกต์ 25 00:01:41,620 --> 00:01:44,935 Solana ที่แสนจะแห้งและเน้นไปที่สัตว์ตัว Sol กับ 26 00:01:44,935 --> 00:01:48,531 NFT กันใช่ไหมครับ ก็มี Sol bears, Sol llamas พวกนี้ 27 00:01:48,531 --> 00:01:53,891 ผมเลยตัดสินใจตั้งชื่อโปรเจกต์นี้ว่า Gitlana แต่ข้อเท็จจริงที่ต้องยอมรับก็คือ 28 00:01:53,891 --> 00:01:58,968 metadata ของ NFT โดยทั่วไปก็มักจะเป็นแค่ลิงก์ไปยังไฟล์ที่โฮสต์ไว้ที่อื่น 29 00:01:58,968 --> 00:02:03,975 แม้แต่ตัว NFT เองในแบบดั้งเดิม ก็มักจะเป็นแค่ลิงก์ไปยังไฟล์ที่เก็บไว้บน 30 00:02:03,975 --> 00:02:08,489 Arweave หรืออะไรแบบนั้น ดังนั้นไอเดียก็เลยถูกปรับปรุงให้กลายเป็น 31 00:02:08,489 --> 00:02:14,835 ไม่ใช่ Git บน blockchain โดยตรง แต่เป็นบ้านถาวรที่ตรวจสอบได้สำหรับแพ็กเกจซอฟต์แวร์ขนาดเล็ก 32 00:02:14,835 --> 00:02:18,361 โดยมี address เหมือนเงิน อ่านได้โดยใครก็ได้ ตลอดไป 33 00:02:18,361 --> 00:02:22,734 คุณอาจจะถามว่า ทำไมต้องทำแบบนี้ใช่ไหมครับ ผมมีเหตุผลอยู่สามข้อ 34 00:02:22,734 --> 00:02:26,048 ข้อแรกคือพื้นที่เก็บข้อมูลที่ไม่มีใครแตะต้องได้ 35 00:02:26,048 --> 00:02:29,997 blockchain เป็นระบบกระจายศูนย์ ตอนปล่อยออกไปแล้วมันจะถูก 36 00:02:29,997 --> 00:02:34,652 freeze ไว้ bytes จะถูกคัดลอกไปทั่วเครือข่ายเครื่องจักรอิสระทั่วโลก 37 00:02:34,652 --> 00:02:38,953 ดังนั้นจึงไม่มี host ให้ใครมากดดัน ไม่มีปุ่มลบให้กดใช่ไหมครับ 38 00:02:38,953 --> 00:02:42,550 GitHub repo ก็เคยถูกลบออกตามคำขอจากผมเชื่อว่ารัฐบาล 39 00:02:42,550 --> 00:02:46,499 หรือแน่นอนว่าบริษัทเอกชน ถ้าเขียนไว้บน Solana blockchain 40 00:02:46,499 --> 00:02:51,365 มันจะเป็นระบบกระจายศูนย์อย่างสมบูรณ์และอยู่นอกเหนือการควบคุมของพวกเขา 41 00:02:51,365 --> 00:02:55,385 ข้อสองคือจะมี wallet ติดอยู่กับทุกแพ็กเกจ ทุกแพ็กเกจจะถูก 42 00:02:55,385 --> 00:03:01,026 mint โดย Solana wallet ดังนั้นคุณจะมี identity ในตัวและมีวิธีสนับสนุนนักพัฒนาแบบ 43 00:03:01,026 --> 00:03:04,341 built-in แล้วผมคิดว่าสิ่งนี้จะถูกพัฒนาเพิ่มขึ้น 44 00:03:04,341 --> 00:03:07,937 ใน road map ของผม ผมมีแผนสำหรับ cryptographic proof 45 00:03:07,937 --> 00:03:12,803 ว่าใครเป็นคน publish มัน ซึ่งผมมีแผนที่ค่อนข้างชัดเจนสำหรับเรื่องนั้น 46 00:03:12,803 --> 00:03:16,259 แล้วในที่สุดผมคิดว่าน่าจะมีทางทำ payment gate ได้ 47 00:03:16,259 --> 00:03:20,420 แต่ผมยังคงศึกษาเรื่องนั้นในอนาคตอยู่ครับ และเหตุผลข้อที่สาม 48 00:03:20,420 --> 00:03:24,228 ซึ่งอาจจะเป็นเหตุผลหลัก ก็คือ ผมไม่รู้สิ ผมว่ามันเท่ดี 49 00:03:24,228 --> 00:03:28,459 ซึ่งจริงๆ แล้วเป็นเหตุผลเดียวที่ผมต้องการจะลองทำอะไรซักอย่าง 50 00:03:28,459 --> 00:03:32,831 มันอาจจะโง่ อาจจะไม่มีค่า แต่ผมไม่รู้สิ ผมว่าการเอาโค้ดไปไว้บน 51 00:03:32,831 --> 00:03:37,697 blockchain มันเท่ดีนะ ผมเลยตัดสินใจลองทำดูครับ ก็เคยมีความพยายามอื่นๆ 52 00:03:37,697 --> 00:03:42,210 ในเรื่องนี้มาก่อน และบางโปรเจกต์ก็ค่อนข้างประสบความสำเร็จพอสมควร 53 00:03:42,210 --> 00:03:46,019 ผมจะไม่พูดถึงทั้งหมดนะครับ แต่ protocol หลายตัวก็ค่อยๆ 54 00:03:46,019 --> 00:03:50,673 ตายลงไปด้วยเหตุผลอะไรบางอย่าง และบางตัวก็มีสถาปัตยกรรมที่ต่างออกไป 55 00:03:50,673 --> 00:03:56,174 คือมันไปชี้ไปที่ไฟล์หรือเซิร์ฟเวอร์นอก chain ซึ่งไม่ใช่สิ่งที่ผมต้องการทำเป๊ะๆ 56 00:03:56,174 --> 00:03:59,488 แต่ก็มีกรณีที่พิสูจน์แล้วว่าทำได้ เช่น Ordinals 57 00:03:59,488 --> 00:04:02,944 บน Bitcoin repo เหล่านี้ถูก inscribe ลงบน Bitcoin 58 00:04:02,944 --> 00:04:06,611 จริงๆ และ Olas น่าจะเป็นตัวที่ใกล้เคียงที่สุด พวกเขา 59 00:04:06,611 --> 00:04:09,996 mint agent เป็น NFT แต่ตัวโค้ดเองนั้นอยู่บน IPFS 60 00:04:09,996 --> 00:04:16,201 ซึ่งเป็น off-chain และอาจจะมีตัวอย่างอื่นๆ อีก แต่ผมไม่เห็นใครทำเป๊ะกับสิ่งที่ผมอยากทำบน 61 00:04:16,201 --> 00:04:19,516 Solana mainnet เลย ผมสร้างโปรเจกต์นี้โดยใช้ทั้ง 62 00:04:19,516 --> 00:04:22,971 Claude Code ร่วมกับ Fable และ Hermes agent โดยใช้ 63 00:04:22,971 --> 00:04:26,638 GPT-5.6 Sol แน่นอนครับ และนี่คือกฎห้าข้อที่เราวางไว้ 64 00:04:26,638 --> 00:04:32,421 ข้อแรกคือไอเดียไม่ใช่การสร้าง Git ใหม่ GitHub ก็ใช้ได้อยู่แล้วสำหรับสิ่งที่มันเป็น 65 00:04:32,421 --> 00:04:35,877 แต่จงขายในสิ่งที่ GitHub ทำไม่ได้ นั่นคือความถาวร 66 00:04:35,877 --> 00:04:39,262 การตรวจสอบที่มา และการชำระเงิน ข้อสอง การอ่านฟรี 67 00:04:39,262 --> 00:04:43,140 การ publish เสียเงิน ค่า mint จะเป็นตัวกรองสแปมเพราะการ 68 00:04:43,140 --> 00:04:47,442 mint NFT พวกนี้ก็ต้องเสียเงินจริงๆ ข้อสามเป็นส่วนที่ยังอยู่ใน 69 00:04:47,442 --> 00:04:51,391 road map คือต้องแสดงให้เห็นว่าใครเป็นคน sign ไม่ใช่แค่มี 70 00:04:51,391 --> 00:04:57,456 badge ยืนยันอย่างเดียว คุณต้องมี identity ที่ชัดเจนว่าใครเป็นคนสร้างสิ่งนี้ขึ้นมาจริงๆ 71 00:04:57,456 --> 00:05:02,957 ข้อสี่ NFT คือการกระจาย ไม่ใช่ของที่ระลึก มันไม่ใช่ของสะสมหรืออะไรแบบนั้นจริงๆ 72 00:05:02,957 --> 00:05:09,727 และข้อห้า unit ต้องมีขนาดเล็ก repo ทั้งหมดยังใส่ไม่ไหวในเชิงเศรษฐกิจในตอนนี้กับเทคโนโลยีที่เรามี 73 00:05:09,727 --> 00:05:13,464 ผมเลยโฟกัสไปที่ agent skills เป็นหลัก ซึ่งค่อนข้างเบา 74 00:05:13,464 --> 00:05:17,272 ปกติแล้วมีขนาดไม่กี่กิโลไบต์ ส่วนใหญ่เป็นไฟล์ markdown 75 00:05:17,272 --> 00:05:20,939 หรืออาจจะเป็นสคริปต์ Python เล็กๆ แต่ไม่ใช่ codebase 76 00:05:20,939 --> 00:05:24,606 ขนาดมหึมาในกรณีส่วนใหญ่นะครับ ก็มีการเคลื่อนไหวไปทาง 77 00:05:24,606 --> 00:05:27,991 agent และ on-chain identity อยู่พอสมควร Ethereum 78 00:05:27,991 --> 00:05:31,941 มีระบบของตัวเอง Solana Foundation ก็เปิดตัวในเดือนมีนาคม 79 00:05:31,941 --> 00:05:35,396 สร้าง identity reputation validation สำหรับ agent 80 00:05:35,396 --> 00:05:39,204 แต่สิ่งที่เราพบก็คือยังไม่มี agent skill ทั้งตัวอยู่บน 81 00:05:39,204 --> 00:05:42,660 chain บน Solana mainnet ที่สามารถ resolve ได้ด้วย 82 00:05:42,660 --> 00:05:47,526 address เพียงอย่างเดียว เราเลยสร้างมันขึ้นมา และนี่คือสถาปัตยกรรมครับ 83 00:05:47,526 --> 00:05:50,911 ผมรู้ว่าหลายคนอาจจะไม่ค่อยคุ้นเคยกับ Solana หรือ 84 00:05:50,911 --> 00:05:54,366 blockchain ผมเลยขออธิบายสั้นๆ นะครับ หนึ่ง มันคือ 85 00:05:54,366 --> 00:05:58,597 global ledger ตัวเดียว คือบันทึกที่ใช้ร่วมกันซึ่งถูกซิงค์โดย 86 00:05:58,597 --> 00:06:02,617 validator อิสระหลายร้อยตัวทั่วโลก รวมเป็น node หลายพันตัว 87 00:06:02,617 --> 00:06:06,848 ดังนั้นจึงไม่มีเซิร์ฟเวอร์เครื่องเดียวที่เป็นศูนย์กลางนะครับ 88 00:06:06,848 --> 00:06:10,163 สอง ข้อมูลอยู่ในสิ่งที่เรียกว่า account มันเป็น 89 00:06:10,163 --> 00:06:13,830 container ไบต์เล็กๆ ที่ validator ทุกตัวเก็บสำเนาไว้ 90 00:06:13,830 --> 00:06:17,638 address ก็เปรียบเหมือนหมายเลขกล่องนั่นเอง สาม การเขียน 91 00:06:17,638 --> 00:06:21,093 bytes ต้องจ่ายเงินมัดจำเรียกว่า rent และมันคืนได้ 92 00:06:21,093 --> 00:06:24,902 แต่การอ่าน account ใดๆ นั้นฟรีทั้งหมด ทันที และไม่ต้อง 93 00:06:24,902 --> 00:06:28,569 login คุณแค่ต้องการ address ก็พอ และสำหรับ NFT ก็คือ 94 00:06:28,569 --> 00:06:33,364 account ที่มี identity นี่ไม่ใช่ NFT ในความหมายดั้งเดิมแบบรูปภาพหรือ 95 00:06:33,364 --> 00:06:37,807 PFP หรอกครับ มันเป็นแค่ non-fungible token มันมีอยู่แค่ตัวเดียว 96 00:06:37,807 --> 00:06:41,262 และมี identity ติดมาด้วย เราจะใช้มาตรฐาน Metaplex 97 00:06:41,262 --> 00:06:45,000 Core ซึ่งผมจะพูดถึงอีกเล็กน้อยในภายหลัง แล้ว Metaplex 98 00:06:45,000 --> 00:06:50,077 Core คืออะไร? การจะสร้าง NFT ซึ่งก็คือ entity ที่ไม่ซ้ำใครและมีเจ้าของบน 99 00:06:50,077 --> 00:06:54,097 chain คุณต้องทำตามมาตรฐานหนึ่ง นั่นคือรูปแบบที่ตกลงกันว่า 100 00:06:54,097 --> 00:06:57,764 asset จะมีหน้าตาแบบไหนบน chain Metaplex เป็น toolkit 101 00:06:57,764 --> 00:07:01,220 ที่อยู่เบื้องหลัง NFT บน Solana ส่วนใหญ่ และ Core 102 00:07:01,220 --> 00:07:04,605 คือเวอร์ชันล่าสุดที่ทันสมัยที่สุด ส่วนที่ดีก็คือ 103 00:07:04,605 --> 00:07:08,272 Core asset เป็น account เดียวที่ lean มันมีแค่ name, 104 00:07:08,272 --> 00:07:11,727 owner, และ update key ซึ่งต่างจากดีไซน์เก่าที่เอา 105 00:07:11,727 --> 00:07:15,535 account หลายตัวมาต่อกัน ความสามารถใหม่ที่ยิ่งใหญ่ก็คือ 106 00:07:15,535 --> 00:07:19,696 plugin ตัวนี้แหละครับ และมันสำคัญมากสำหรับสถาปัตยกรรมของเรา 107 00:07:19,696 --> 00:07:25,408 คุณสามารถ attach plugin เข้ากับ asset เพื่อให้มันมีข้อมูลหรือพฤติกรรมเพิ่มเติมได้ 108 00:07:25,408 --> 00:07:30,204 ให้คิดว่ามันเหมือนการลงแอปบนมือถือคุณนะครับ แล้วเราจะใช้สองตัวที่นี่ 109 00:07:30,204 --> 00:07:33,659 ตัวหนึ่งเก็บ manifest ขนาดเล็กมาก อีกตัวเก็บ code 110 00:07:33,659 --> 00:07:37,467 payload ทั้งหมด ตัวที่สองนี่แหละคือเทคนิคที่สำคัญจริงๆ 111 00:07:37,467 --> 00:07:40,782 manifest อยู่ใน attributes ส่วนตัวโค้ดเองอยู่ใน 112 00:07:40,782 --> 00:07:44,096 app data app data คืออะไร? app data เป็น plugin 113 00:07:44,096 --> 00:07:47,552 อย่างที่บอก และมัน attach raw bytes โดยตรงเข้ากับ 114 00:07:47,552 --> 00:07:51,148 account ของ asset และถูกเก็บบน chain ภายในตัว asset 115 00:07:51,148 --> 00:07:54,815 เอง ความสามารถเดียวนั้นแหละคือสิ่งที่เปลี่ยน "โค้ดบน 116 00:07:54,815 --> 00:07:59,470 blockchain" จากการพูดเปรียบเปรยให้กลายเป็นเรื่องจริงตามตัวอักษรเลย 117 00:07:59,470 --> 00:08:02,855 อย่างที่บอก NFT ปกติจะมี account มีลิงก์บางอย่าง 118 00:08:02,855 --> 00:08:06,945 แล้วก็ไฟล์บนเซิร์ฟเวอร์ Arweave เป็นที่นิยมมากที่สุดสำหรับ 119 00:08:06,945 --> 00:08:10,753 PFP NFT พวกนี้ใช่ไหมครับ แต่กับ app data ไม่มีลิงก์เลย 120 00:08:10,753 --> 00:08:14,420 bytes ก็คือตัว account เอง ดังนั้นจึงไม่มีอะไรให้ชี้ 121 00:08:14,420 --> 00:08:17,734 ไม่มีอะไรให้สูญหาย validator ทุกตัวเก็บสำเนาไว้ 122 00:08:17,734 --> 00:08:21,119 และอย่างที่บอก attributes plugin เก็บ label text 123 00:08:21,119 --> 00:08:25,069 ขนาดเล็ก ซึ่งก็คือที่ที่เราใส่ manifest, ชื่อ, เวอร์ชัน, 124 00:08:25,069 --> 00:08:29,088 และ fingerprint พอเอาทั้งหมดมารวมกัน นี่คือแพ็กเกจทั้งหมด 125 00:08:29,088 --> 00:08:32,755 มันเป็นแค่ account เดียวนะครับ แต่มีขนาด 3,297 bytes 126 00:08:32,755 --> 00:08:36,070 บน mainnet และนั่นคือทุกอย่างสำหรับ agent skill 127 00:08:36,070 --> 00:08:39,455 ที่ผมสร้างขึ้น และในเดโมนี้ ผมจะใช้ skill ที่สอน 128 00:08:39,455 --> 00:08:44,250 agent วิธีการดึง skill เหล่านี้จาก on chain มาดูกันสักเล็กน้อยนะครับ 129 00:08:44,250 --> 00:08:47,847 ที่ด้านบนมี identity ประกอบด้วย name, owner, update 130 00:08:47,847 --> 00:08:51,373 key, update authority ซึ่งปกติจะเป็นคนที่ mint NFT 131 00:08:51,373 --> 00:08:55,675 นั้น แล้วก็อย่างที่บอก attributes คือ manifest มันแสดงมาตรฐาน 132 00:08:55,675 --> 00:08:59,060 เวอร์ชัน entry point แล้วก็ตรงนี้ content SHA256 133 00:08:59,060 --> 00:09:03,009 นี่คือ fingerprint ที่ใครก็สามารถตรวจสอบซ้ำได้ แล้วก็ตัว 134 00:09:03,009 --> 00:09:06,605 code เอง ซึ่งอยู่ในรูป compressed archive ซึ่งจริงๆ 135 00:09:06,605 --> 00:09:10,202 แล้วก็คือ skill หนึ่งตัวแล้วก็สคริปต์เล็กๆ หนึ่งตัว 136 00:09:10,202 --> 00:09:14,010 และมีเรื่องหนึ่งที่สำคัญ คือมี deterministic packaging 137 00:09:14,010 --> 00:09:18,030 ดังนั้น source file เดียวกันจะให้ archive ที่เหมือนกันทุก 138 00:09:18,030 --> 00:09:23,812 byte บนเครื่องไหนก็ตาม fingerprint นี้จึงไม่ใช่เรื่องที่คุณต้องเชื่อผมแค่ฝ่ายเดียว 139 00:09:23,812 --> 00:09:28,326 ใครก็สามารถ rebuild จาก source แล้วยืนยันได้ แต่ก็มีข้อจำกัดอยู่ 140 00:09:28,326 --> 00:09:31,711 และมันเป็นข้อจำกัดที่ค่อนข้างใหญ่ด้วย คือ Solana 141 00:09:31,711 --> 00:09:35,237 transaction เดียวปัจจุบันรับได้ประมาณ 1.2 กิโลไบต์ 142 00:09:35,237 --> 00:09:41,301 ซึ่งแน่นอนว่าเล็กกว่าแพ็กเกจส่วนใหญ่ แล้วเราจะเอาไฟล์ที่ใหญ่กว่านั้นเข้าไปได้ยังไงล่ะ? 143 00:09:41,301 --> 00:09:44,616 มีสามขั้นตอนครับ ขั้นแรก stage คุณเขียน archive 144 00:09:44,616 --> 00:09:48,283 ทีละ chunk เข้าไปใน temporary buffer account จากนั้น 145 00:09:48,283 --> 00:09:54,277 copy ซึ่งเป็น instruction เดียวที่ดูด buffer ทั้งหมดเข้าไปในแพ็กเกจของคุณในครั้งเดียว 146 00:09:54,277 --> 00:09:59,002 แล้วสุดท้าย reclaim คุณลบ buffer ทิ้ง และเงินมัดจำก็คืนมาหาคุณทันที 147 00:09:59,002 --> 00:10:02,669 แล้วมันเสียเงินเท่าไหร่จริงๆ? นี่คือตัวเลขจริงจากการ 148 00:10:02,669 --> 00:10:06,336 launch ที่เราทำ การ publish บน mainnet ทั้งหมดของเรา 149 00:10:06,336 --> 00:10:09,792 ทั้งแพ็กเกจและ frozen snapshot รวมเป็นประมาณ 0.05 150 00:10:09,792 --> 00:10:14,517 SOL หรือราวๆ 4 ดอลลาร์ตามราคา SOL ปัจจุบัน และนี่คืนได้ถ้าคุณปิดมัน 151 00:10:14,517 --> 00:10:18,607 และมันน่าจะถูกลงไปอีก ตามที่เข้าใจ ยังไม่ได้ตัดสินใจขาดลอย 152 00:10:18,607 --> 00:10:22,556 แต่มี Solana proposal ที่จะลดค่ามัดจำพื้นที่เก็บข้อมูลลง 153 00:10:22,556 --> 00:10:27,916 10 เท่า และมันจะค่อยๆ ออกมาเป็นขั้นตอน โดยขั้นแรกตั้งเป้าไว้กลางเดือนสิงหาคม 154 00:10:27,916 --> 00:10:31,583 ซึ่ง timing ก็ค่อนข้างดีทีเดียว สิ่งที่ GitHub มีคือ 155 00:10:31,583 --> 00:10:35,391 versioning ใช่ไหมครับ ผมก็เลยอยากเพิ่มองค์ประกอบนั้นใน 156 00:10:35,391 --> 00:10:39,834 Gitlana ของผม แต่มันอาจจะแพง อย่างที่เพิ่งเห็น เพราะทุกครั้งที่ 157 00:10:39,834 --> 00:10:43,783 publish มันจะต้องเสียเงิน ดังนั้นเวลาที่คุณอัปเดตโค้ดเอง 158 00:10:43,783 --> 00:10:47,168 เวอร์ชันใหม่จะเข้าไปแทนที่ payload ในตำแหน่งเดิม 159 00:10:47,168 --> 00:10:52,527 เหมือนกับ Git push โดย address ไม่เปลี่ยน ทุกคนที่ถืออยู่ก็จะได้รับการอัปเดต 160 00:10:52,527 --> 00:10:55,842 และมันแทบจะไม่ต้องเสียเงินเลย แล้วก็มี releases 161 00:10:55,842 --> 00:10:59,579 ซึ่งเป็นประวัติศาสตร์มากกว่า release หมายถึง snapshot 162 00:10:59,579 --> 00:11:03,528 แยกต่างหาก และมันจะทำลาย update key ของตัวเอง มันจึงเป็น 163 00:11:03,528 --> 00:11:06,984 immutable และ snapshot เหล่านั้นจะเชื่อมกลับไปยัง 164 00:11:06,984 --> 00:11:10,722 parent ของมัน และมีประวัติเวอร์ชันแบบเต็มที่เดินได้บน 165 00:11:10,722 --> 00:11:14,600 chain ทั้งหมด คุณอาจจะไม่จำเป็นต้องเอาทุก push ไปทำเป็น 166 00:11:14,600 --> 00:11:18,549 release แยก แต่ release ใหญ่ๆ คุณสามารถ freeze แบบนี้ได้ 167 00:11:18,549 --> 00:11:22,569 คุณก็จะเห็นประวัติศาสตร์ได้ และผมก็ได้ทดสอบเรื่องนี้จริงๆ 168 00:11:22,569 --> 00:11:27,364 ครับ immutability ถูกบังคับโดยเครือข่าย ไม่ใช่สัญญาของใครคนใดคนหนึ่ง 169 00:11:27,364 --> 00:11:30,961 ผมลองทดสอบแล้ว เราพยายามจะ override frozen snapshot 170 00:11:30,961 --> 00:11:34,416 ของตัวเอง ด้วย wallet ที่สร้างมันขึ้นมาเลยด้วยซ้ำ 171 00:11:34,416 --> 00:11:37,731 แต่มันถูกปฏิเสธครับ ดังนั้น frozen ก็คือ frozen 172 00:11:37,731 --> 00:11:41,892 มันเป็น immutable สำหรับทุกคน รวมถึงคนที่เขียนมันขึ้นมาด้วย 173 00:11:41,892 --> 00:11:45,982 แล้วจะเข้าถึงยังไง? มันง่ายมากครับ ก็แค่เลข มันคือการเรียก 174 00:11:45,982 --> 00:11:49,437 API ฟรีหนึ่งครั้ง เรียกว่า get account info ไปยัง 175 00:11:49,437 --> 00:11:53,316 node ใดก็ได้ ไม่ต้อง login หรืออะไร เครื่องจักรทำได้เลย 176 00:11:53,316 --> 00:11:56,701 คุณสามารถอ่าน manifest และ bytes ได้ แล้วก็คำนวณ 177 00:11:56,701 --> 00:12:00,086 fingerprint ใหม่ ถ้ามันไม่ตรงกับ manifest ก็หยุด 178 00:12:00,086 --> 00:12:04,317 แล้วก็ unpack อย่างปลอดภัย แสดงไฟล์และสิทธิ์ แล้วให้คนยืนยัน 179 00:12:04,317 --> 00:12:08,055 แล้วก็ติดตั้ง ดังนั้น address นี้จึงพิสูจน์ integrity 180 00:12:08,055 --> 00:12:11,440 ของมัน bytes ที่คุณได้มาคือ bytes ที่ถูก publish 181 00:12:11,440 --> 00:12:16,094 จริงๆ และการตรวจสอบ fingerprint ทำให้การแก้ไขตรวจจับได้โดยใครก็ตาม 182 00:12:16,094 --> 00:12:19,973 สิ่งที่ยังทำไม่ได้ตอนนี้คือเรื่อง authorship ใช่ไหมครับ 183 00:12:19,973 --> 00:12:24,909 ตอนนี้ใครก็สามารถ mint สำเนาของโค้ดใครก็ได้ แต่ผมกำลังทำเรื่องนั้นอยู่ 184 00:12:24,909 --> 00:12:29,493 ผมมีแผนที่ค่อนข้างชัดเจนสำหรับ phase two ที่จะพิสูจน์ว่าใครเป็นคน 185 00:12:29,493 --> 00:12:36,263 publish โดยการพิสูจน์ว่าใครเป็นคน publish มัน ผมจะมาอัปเดตให้คุณฟังเรื่องนั้นเมื่อมันเสร็จนะครับ 186 00:12:36,263 --> 00:12:41,270 แต่จากการวิจัยและแผนที่ผมได้พัฒนาขึ้น มันดูเหมือนจะเป็นไปได้ค่อนข้างสูง 187 00:12:41,270 --> 00:12:45,713 โอเค คุณคงเบื่อสไลด์แล้วใช่ไหมครับ มาดูของจริงกันสักหน่อยดีกว่า 188 00:12:45,713 --> 00:12:49,098 และถ้าคุณใช้ Hermes Agent อยู่แล้วและอยากเข้าถึง 189 00:12:49,098 --> 00:12:52,694 LM wiki ที่ผมเองใช้ทำวิจัยและสร้างวิดีโอพวกนี้จริงๆ 190 00:12:52,694 --> 00:12:56,150 ลองแวะดูโปรเจกต์ของผมที่ agentwikis.com ได้นะครับ 191 00:12:56,150 --> 00:12:59,605 ผมให้ wiki ทั้งหมดนี้ฟรีในหัวข้อต่างๆ ที่หลากหลาย 192 00:12:59,605 --> 00:13:03,978 และคุณก็สามารถสมัคร pro account ในราคา 9.99 ดอลลาร์ต่อเดือนได้ 193 00:13:03,978 --> 00:13:10,536 ซึ่งจะให้สิทธิ์เข้าถึง wiki ขนาดใหญ่พิเศษ มีจำนวนหน้ามากกว่าและรายละเอียดมากกว่าในแต่ละหัวข้อ 194 00:13:10,536 --> 00:13:14,979 กลับเข้าเรื่องวิดีโอกันต่อนะครับ นี่คือตอนที่ผมกำลังทำงานอยู่ใน 195 00:13:14,979 --> 00:13:18,505 Fable หรือทำงานใน Claude Code กับ Fable ผมเริ่มจาก 196 00:13:18,505 --> 00:13:21,819 brainstorm file นั้น ซึ่งเป็นความคิดสุ่มๆ ของผม 197 00:13:21,819 --> 00:13:26,474 ผมให้มันรัน sub-agent หลายตัวเพื่อตรวจสอบความเป็นไปได้ของเรื่องนี้ 198 00:13:26,474 --> 00:13:29,788 และมันเป็นเรื่องค่อนข้าง... พองานวิจัยจาก Fable 199 00:13:29,788 --> 00:13:36,065 เสร็จ มันก็ค่อนข้างง่ายเลย มันหาวิธีทำได้แล้ว และนี่ก็เป็นวิธีเดียวกับที่เราทำอยู่เป๊ะเลย 200 00:13:36,065 --> 00:13:40,014 แล้วเราก็คุยกันว่ามันเหมาะกับ Git push และอะไรพวกนั้นไหม 201 00:13:40,014 --> 00:13:45,726 และเราคุยกันถึงตัวเลือกต่างๆ แต่สุดท้ายเราก็เลือกวิธีที่ผมเพิ่งแนะนำไปก่อนหน้านี้ 202 00:13:45,726 --> 00:13:50,803 ผมถามคำถามต่างๆ มากมายเกี่ยวกับเรื่องนี้ รวมถึงความเสี่ยงด้านความปลอดภัย 203 00:13:50,803 --> 00:13:55,669 ไม่มีอะไรน่ากังวลมากนัก ตราบใดที่คุณไม่เอา key ของคุณไปเผยแพร่สาธารณะ 204 00:13:55,669 --> 00:13:59,548 ส่วนที่น่าห่วงที่สุดก็คงจะเป็นขั้นตอนต่อไป ถ้าคุณเชื่อม 205 00:13:59,548 --> 00:14:03,144 wallet ของคุณกับ identity สาธารณะ ถึงอย่างนั้นก็ตาม 206 00:14:03,144 --> 00:14:08,363 มีหลายวิธีที่คนทำแบบนั้นอยู่แล้ว แต่นั่นก็จะเป็นส่วนที่เลือกได้ด้วยเช่นกัน 207 00:14:08,363 --> 00:14:12,312 จากนั้นเราก็ทำ devnet test ของเรื่องนี้ ผลปรากฏว่าสำเร็จ 208 00:14:12,312 --> 00:14:16,191 แล้วเราก็ทำ mainnet test และ mainnet test ก็ผ่านเช่นกัน 209 00:14:16,191 --> 00:14:19,505 นี่คือ mutable head ซึ่งเป็น address หลักของมัน 210 00:14:19,505 --> 00:14:23,807 ถ้าผมตรวจสอบ address นี้บน Solscan มันจะออกมาหน้าตาแบบนี้ครับ 211 00:14:23,807 --> 00:14:27,827 นี่คือสิ่งที่มันดูเหมือน ผมจะใส่ address นี้ในคำอธิบายไว้ 212 00:14:27,827 --> 00:14:31,212 ถ้าคุณต้องการตรวจสอบเอง คุณจะเห็นมันได้ที่นี่เลย 213 00:14:31,212 --> 00:14:35,302 และ owner นี้คือ wallet address ของผมที่ใช้สำหรับเรื่องนี้ 214 00:14:35,302 --> 00:14:39,815 คุณจะเห็นว่า owner program คือ Metaplex Core และมันจะแสดงชื่อว่า 215 00:14:39,815 --> 00:14:43,412 on-chain skill resolver ซึ่งเป็นชื่อของ agent skill 216 00:14:43,412 --> 00:14:47,008 ตัวนี้ คุณจะเห็น metadata ตรงนี้ mint แล้วก็ update 217 00:14:47,008 --> 00:14:51,098 authority ส่วน Solscan เองจะไม่แสดงส่วนนี้ ผมต้องไปดูใน... 218 00:14:51,098 --> 00:14:55,471 นี่คือ core.metaplex.com explorer ของพวกเขา นี่คือสิ่งที่เขามี 219 00:14:55,471 --> 00:14:58,785 ซึ่งมีรายละเอียดมากกว่า on-chain skill resolver 220 00:14:58,785 --> 00:15:02,593 ก็คืออันเดียวกันเลย owner คือ address ของผม ซึ่งก็เป็น 221 00:15:02,593 --> 00:15:05,908 update authority ด้วย คุณเห็น attributes ตรงนี้ 222 00:15:05,908 --> 00:15:09,786 นี่คือ manifest ที่ผมพูดถึง มันมี content SHA ซึ่งก็คือ 223 00:15:09,786 --> 00:15:13,312 fingerprint และก็มี name, version และข้อมูลทั้งหมด 224 00:15:13,312 --> 00:15:17,050 แล้วถ้าคุณดูตรงนี้ นี่คือ app data และนี่ก็คือ plugin 225 00:15:17,050 --> 00:15:21,704 ด้วย นี่คือข้อมูลที่ถูกเก็บไว้ ตัวเลขพวกนี้อาจจะดูเหมือนตัวเลขสุ่ม 226 00:15:21,704 --> 00:15:25,372 แต่มันก็คือตัวเลขสุ่มจริงๆ มันคือ raw bytes ในรูปแบบ 227 00:15:25,372 --> 00:15:29,039 hexadecimal ของ agent skill นั่นเอง ถ้าผม copy มันมา 228 00:15:29,039 --> 00:15:33,270 แล้วผมจะเอามาใส่ตรงนี้ คุณไม่จำเป็นต้องทำแบบนี้ด้วยมือนะครับ 229 00:15:33,270 --> 00:15:36,584 agent ในแบบที่มันถูกออกแบบมา agent จะอ่านมันเอง 230 00:15:36,584 --> 00:15:40,251 แต่เพื่อจะแสดงให้คุณเห็น นี่คือเครื่องมือที่เรียกว่า 231 00:15:40,251 --> 00:15:44,130 CyberChef มันมีหลายวิธีในการอ่าน binary และ hexadecimal 232 00:15:44,130 --> 00:15:48,009 ต่างกันไป นี่คือ input ซึ่งก็คือสิ่งที่คุณเห็น แล้วผมกด 233 00:15:48,009 --> 00:15:51,817 bake และนี่คือ output พบไฟล์สามไฟล์จากการนี้ คุณจะเห็น 234 00:15:51,817 --> 00:15:55,131 skill MD, scripts directory แล้วก็ fetch script 235 00:15:55,131 --> 00:15:58,587 ซึ่งก็แค่ helper สำหรับดึงข้อมูลแบบง่ายๆ skill MD 236 00:15:58,587 --> 00:16:02,465 คือไฟล์หลัก และคุณจะเห็นว่ามันหน้าตาเหมือนไฟล์ markdown 237 00:16:02,465 --> 00:16:06,273 ปกติเลยใช่ไหมครับ on-chain skill resolver ใช้เมื่อไหร่ 238 00:16:06,273 --> 00:16:10,011 วิธีการเก็บ on-chain skills กระบวนการดึงข้อมูล มันบอก 239 00:16:10,011 --> 00:16:14,172 agent ว่าต้องทำยังไง security rules, publisher attestation, 240 00:16:14,172 --> 00:16:18,121 ตัวอย่าง ใช่ครับ failure modes ทุกอย่างที่คุณจะได้ในไฟล์ 241 00:16:18,121 --> 00:16:21,506 skill ปกติเลย และทั้งหมดนี้อยู่บน chain ในรูปแบบ 242 00:16:21,506 --> 00:16:24,961 hexadecimal อยู่บน Metaplex Core plugin ตัวนี้คือ 243 00:16:24,961 --> 00:16:28,558 app data plugin ทั้งหมดนี้อยู่บน chain อย่างสมบูรณ์ 244 00:16:28,558 --> 00:16:32,013 และคุณสามารถตรวจสอบได้บน explorer.solana.com ด้วย 245 00:16:32,013 --> 00:16:35,469 ดังนั้นมันคือ Metaplex compressed NFT ในทางเทคนิค 246 00:16:35,469 --> 00:16:39,348 และมันมี raw data อยู่ raw data ถ้าคุณ copy มันอีกครั้ง 247 00:16:39,348 --> 00:16:43,579 มันก็คือสิ่งเดียวกับที่ผมเพิ่งแสดงให้คุณเห็น ก็มีเท่านี้ครับ 248 00:16:43,579 --> 00:16:46,893 เราเอามันขึ้น Solana mainnet แล้ว มันเป็น skill 249 00:16:46,893 --> 00:16:50,208 จริง และตอนนี้เราจะให้ agent ตัวใหม่ที่สด fresh 250 00:16:50,208 --> 00:16:53,945 ตัวที่ไม่มี memory หรือความรู้เกี่ยวกับโปรเจกต์นี้เลย 251 00:16:53,945 --> 00:16:57,895 ลองดึงมันมา และเป็นครั้งเดียวที่ผมจะให้ prompt นี้กับมัน 252 00:16:57,895 --> 00:17:04,382 เพราะมันไม่รู้อะไรเลย นี่คือ prompt ที่ผมจะให้ และผมก็ไม่รู้เหมือนกันว่ามันจะทำงานได้จริงไหม 253 00:17:04,382 --> 00:17:07,767 ผมยังไม่ได้ทดสอบมันเลย แต่นี่คือ prompt ที่จะใช้ 254 00:17:07,767 --> 00:17:11,082 มี software package หนึ่งที่ถูกเก็บไว้ใน Solana 255 00:17:11,082 --> 00:17:14,608 account นี้ ผมจะให้ address กับมัน ให้ดึงมันมาด้วย 256 00:17:14,608 --> 00:17:17,993 get account info call ครั้งเดียว หา manifest และ 257 00:17:17,993 --> 00:17:21,378 gzip archive ใน bytes ตรวจสอบ fingerprint แล้วก็ 258 00:17:21,378 --> 00:17:24,904 unpack มันและอ่าน skill MD ก่อนเป็นอันดับแรก skill 259 00:17:24,904 --> 00:17:30,264 ที่มันดึงมาได้จะเป็น instructions ที่เหมือนกับที่ผมเพิ่งแสดงให้คุณเห็นสำหรับ 260 00:17:30,264 --> 00:17:33,860 on-chain skill resolver มาลองทำกันเลยครับ ใน Hermes 261 00:17:33,860 --> 00:17:37,668 agent ไปกันเลย ตอนนี้เราอยู่ใน Hermes chat ใช้ GPT-5.6 262 00:17:37,668 --> 00:17:41,124 Sol แน่นอนครับ ผมให้ prompt ที่คุณเพิ่งเห็นกับมัน 263 00:17:41,124 --> 00:17:44,932 แล้วมาดูกันว่ามันจะสามารถดึงมันมาได้จริงไหมจาก address 264 00:17:44,932 --> 00:17:48,317 เดียวนี้ มันไม่มี skill พิเศษอื่น ไม่มี MCP อื่น 265 00:17:48,317 --> 00:17:51,702 ไม่มี plugin นี่เป็น agent ตัวใหม่เอี่ยมเลย โอเค 266 00:17:51,702 --> 00:17:55,016 มันกำลังทำงานอยู่ และมันทำได้แล้ว ใช้เวลาไปราวๆ 267 00:17:55,016 --> 00:17:58,683 4 นาที เกือบ 4 นาทีเลย ดึง ตรวจสอบ และ unpack สำเร็จ 268 00:17:58,683 --> 00:18:02,491 account owner มันได้ skill มาแล้ว มันตรวจสอบ integrity 269 00:18:02,491 --> 00:18:06,300 จริงๆ ด้วย คุณจะเห็นว่า fingerprint ตรงกันอย่างถูกต้อง 270 00:18:06,300 --> 00:18:09,826 มันสามารถดึง skill และสคริปต์มาได้ และคุณจะเห็นว่า 271 00:18:09,826 --> 00:18:13,563 skill MD ถูก extract ออกมา โดยอธิบายว่าเป็น read-only 272 00:18:13,563 --> 00:18:17,160 resolver สำหรับการดึงและตรวจสอบ Hermes-style skills 273 00:18:17,160 --> 00:18:21,038 ที่เก็บอยู่ใน Metaplex Core account state นี่คือสิ่งที่ 274 00:18:21,038 --> 00:18:24,917 skill ทำเป๊ะเลย ตอนนี้ผมก็สามารถติดตั้ง skill ตรงนี้ได้ 275 00:18:24,917 --> 00:18:28,655 โอเค ติดตั้งเรียบร้อยแล้ว คุณจะเห็นตรงนี้เลยใน Hermes 276 00:18:28,655 --> 00:18:32,040 skill ของผม ในหมวด software development on-chain 277 00:18:32,040 --> 00:18:35,707 skill resolver นั่นคือกระบวนการทั้งหมดตั้งแต่ต้นจนจบ 278 00:18:35,707 --> 00:18:39,092 การ mint NFT นี้แล้วให้ agent ดึง skill มาตรงจาก 279 00:18:39,092 --> 00:18:42,406 blockchain ได้เลย แล้วเราจะไปต่อยังไงจากตรงนี้? 280 00:18:42,406 --> 00:18:46,426 Phase one ส่งมอบไปได้ค่อนข้างดีเลย ผมพอใจกับผลลัพธ์นี้มาก 281 00:18:46,426 --> 00:18:49,952 Phase two คือเรื่อง provenance และอย่างที่บอก ผมมี 282 00:18:49,952 --> 00:18:55,100 road map ที่ค่อนข้างชัดเจนว่าจะทำยังไง มันจะใช้เทคโนโลยีที่อยู่เบื้องหลัง 283 00:18:55,100 --> 00:18:59,049 NPM provenance ซึ่งผมคิดว่าสามารถนำมา reuse ในกรณีนี้ได้ 284 00:18:59,049 --> 00:19:02,575 เพื่อเชื่อมต่อ wallet กับผู้เขียนตั้งต้นของ GitHub 285 00:19:02,575 --> 00:19:07,723 repo หรือ NPM package จริงๆ แล้ว phase three คือเรื่องที่ผมกำลังศึกษาอยู่ 286 00:19:07,723 --> 00:19:11,320 ผมยังล็อกไว้ไม่แน่นเท่า phase two แต่ก็คงจะเป็นระบบ 287 00:19:11,320 --> 00:19:15,057 machine payments บางรูปแบบ ไม่ว่าจะใช้ Tempos machine 288 00:19:15,057 --> 00:19:19,147 payments protocol ซึ่งมี Stripe และ Paradigm เป็นแบ็กเอนด์ 289 00:19:19,147 --> 00:19:22,885 หรือ X402 บน Solana เพื่อทำ payment gate ให้กับโค้ดบน 290 00:19:22,885 --> 00:19:27,892 chain โดยที่ wallet ของผู้เขียนสามารถรับเงินจากโค้ดที่เขาเขียนได้โดยตรง 291 00:19:27,892 --> 00:19:32,053 แน่นอนว่ามีหลายวิธีที่จะทำแบบนี้แบบ off-chain แต่ผมไม่รู้สิ 292 00:19:32,053 --> 00:19:38,047 ผมว่าการลองทำแบบนี้ทั้งหมดบน chain มันเท่ดีนะ และถ้าคุณอยากตรวจสอบเรื่องนี้ด้วยตัวเอง 293 00:19:38,047 --> 00:19:41,502 รวมถึงบน GitHub แบบเก่าๆ ผมได้ publish มันไว้แล้ว 294 00:19:41,502 --> 00:19:45,169 ตอนนี้เป็น public นะครับ ที่ Gitlana ใน Tomb Studios 295 00:19:45,169 --> 00:19:48,978 / Gitlana คุณสามารถเข้าไปดูได้เลย agent skill packages 296 00:19:48,978 --> 00:19:52,292 จริงๆ มันเป็นโค้ดอะไรก็ได้ แต่ผมแค่คิดว่า agent 297 00:19:52,292 --> 00:19:58,145 skills เหมาะสมที่สุดกับเรื่องนี้ และ repo นี้จะให้ข้อมูลทุกอย่างที่คุณจำเป็นต้องรู้ 298 00:19:58,145 --> 00:20:02,094 ทั้งการ mint package เอง หรือให้ agent ของคุณชี้ไปที่มัน 299 00:20:02,094 --> 00:20:05,620 และจริงๆ มันเป็น CLI ที่คุณสามารถติดตั้งได้ โดยใช้ 300 00:20:05,620 --> 00:20:09,852 git clone แล้วก็ npm install เพื่อให้คุณสามารถใช้คำสั่งง่ายๆ 301 00:20:09,852 --> 00:20:14,153 เหล่านี้ได้ แทนที่จะต้องคุยกับ agent โดยตรง คุณก็แค่ใช้คำสั่ง 302 00:20:14,153 --> 00:20:19,866 CLI ที่ผมสร้างขึ้นเพื่อให้มันง่ายขึ้นนิดหน่อย แต่มันมีข้อมูลทุกอย่างเกี่ยวกับวิธี 303 00:20:19,866 --> 00:20:24,097 publish skill บน chain รวมถึง formatting และอย่างอื่นทั้งหมด 304 00:20:24,097 --> 00:20:27,693 และการอัปเดตใดๆ ของ road map ที่ผมพูดถึงเรื่องอื่นๆ 305 00:20:27,693 --> 00:20:33,476 ก็จะอยู่ที่ repo นี้ทั้งหมด ก็มีเท่านี้ครับ ทุกเรื่องที่พูดถึงในวิดีโอนี้มีอยู่ที่ 306 00:20:33,476 --> 00:20:36,861 address นี้บน Solana mainnet มัน live อยู่ตอนนี้ 307 00:20:36,861 --> 00:20:41,092 ผมจะใส่ address ไว้ในคำอธิบายเพื่อให้คุณตรวจสอบได้ด้วยตัวเอง 308 00:20:41,092 --> 00:20:45,324 สิ่งที่เริ่มจากคำถามสุ่มๆ กับ agent ของผม กลายเป็นโค้ดจริงบน 309 00:20:45,324 --> 00:20:48,779 chain ไปแล้ว ก็คงจะมีเท่านี้สำหรับวิดีโอนี้นะครับ 310 00:20:48,779 --> 00:20:54,632 รบกวนแสดงความคิดเห็นด้วยนะว่าคิดอย่างไร ผมรู้ว่าเรื่องนี้อาจจะดูโง่สำหรับคนส่วนใหญ่ 311 00:20:54,632 --> 00:20:58,511 แต่ผมว่ามันเป็นไอเดียที่เท่ดี และมันอยู่บนจุดตัดระหว่าง 312 00:20:58,511 --> 00:21:04,011 blockchain และ AI ซึ่งเป็นขอบเขตที่ผมสนใจ ถึงแม้ว่าผมจะยังไม่ได้ทำงานในพื้นที่ 313 00:21:04,011 --> 00:21:08,877 on-chain AI garage ที่เรียกว่าเร็วๆ นี้ก็ตาม แต่ผมก็มีไอเดียนี้ขึ้นมา 314 00:21:08,877 --> 00:21:12,615 ถ้าคุณชอบวิดีโอนี้ ฝากกด like ด้วยนะครับ กด subscribe 315 00:21:12,615 --> 00:21:16,000 ด้วย แล้วเจอกันใหม่วิดีโอหน้า ขอบคุณที่รับชมครับ