Grok Bot มอบคอมพิวเตอร์คลาวด์ให้ผู้ใช้ทุกคนคนละเครื่อง และปล่อยให้บอตรัน shell บนนั้นได้ คนส่วนใหญ่แค่สั่งงานมันแล้วนั่งดูมันพยายามทำซ้ำในความล้มเหลวเดิมๆ
คุณเพิ่มทักษะ router เข้าไปหนึ่งตัว ปล่อยให้มันเก็บ log ไว้สักสัปดาห์ก่อนจะให้มันลงมือทำอะไรจริง และต้องมีปุ่ม kill switch เตรียมไว้เสมอ
ถ้าต่อสายถูกทาง การพยายามทำซ้ำจะหยุดลงก่อนที่คุณจะต้องเสียอะไรไป
นี่คือวิธีตั้งค่าทั้งหมด 👇
ก่อนจะเริ่ม ผมเผยแพร่คู่มือฉบับเต็มไว้บน Substack ของผม: https://zodchiii.substack.com/ 🧠

Jev ส่งอะไรกลับมาเป็นคำตอบ
Jev คือโมเดล System One ของ TypeSafe มันตอบกลับด้วยค่าที่มี type ชัดเจนแทนที่จะเป็นข้อความยาวๆ และมาพร้อมกับ primitive สามตัว:
- Choice เลือกหนึ่งตัวเลือกจากรายการที่คุณกำหนด แล้วคืนค่า choice, probabilities และ confidence
- Score ให้คะแนน state ตามเกณฑ์ (rubric) ที่ตั้งไว้
- Noul ตอบว่าข้อความนั้นเป็นความจริงหรือไม่ โดยให้ตัวเลขตั้งแต่ 0 ถึง 1
เพราะคำตอบที่กลับมาเป็น "ค่า" คุณจึงเก็บ log ได้ นำการตัดสินใจสองสัปดาห์มา diff เปรียบเทียบกันได้ และรันย้อนหลังกับ traffic ของเมื่อวานได้
หน้าตาของการเรียกใช้จะเป็นแบบนี้:
1from typesafe_sdk import Choice, TypeSafeClient23with TypeSafeClient(model="jev-latest") as client: # reads TYPESAFE_API_KEY4 r = client.system_one(5 state=f"goal: {goal}\ntask: {task_type}\nlast error: {err} x{repeats}",6 questions={7 "action": Choice(8 instructions="What should the agent do next",9 criteria={10 "proceed": "Nothing suggests the next step will fail",11 "reuse_cache": "A fresh artifact for this already exists",12 "stop_retry": "The same approach failed the same way",13 "research_capped": "Enough sources are already gathered",14 "ask_human": "The step sends, publishes, pays or deletes",15 },16 )17 },18 )1920print(r.choices["action"].choice, r.choices["action"].confidence)
Router จะเลือกหนึ่งในห้าตัวนี้ และไม่มีทางตอบอย่างอื่นได้เลย
ขั้นตอนที่ 1: ขอ API key
เปิด dashboard ของ TypeSafe แล้วสร้าง API key ขึ้นมา อย่าเอามันไปใส่ในแชท ใน repo หรือใน skill ไหนที่คุณคิดจะแชร์ให้คนอื่น
ขั้นตอนที่ 2: นำ key ไปใส่ในคอมพิวเตอร์
ใช้ flow การขอ secret แบบปิดบัง (masked secret request flow) ตัว key จะไม่ผ่านแชทเลย
สิ่งหนึ่งที่ควรรู้ก่อนเพิ่มเข้าไป: คอมพิวเตอร์คลาวด์ของ Grok Bot มีเครื่องเดียวต่อบัญชี และทุกบอทที่คุณรันบนนั้นจะเห็นไฟล์ เซสชัน และการล็อกอินเดียวกันหมด key ที่คุณเอาไปวางไว้ บอททุกตัวอ่านได้หมด
1ฉันต้องส่งข้อมูลยืนยันตัวตน API สำหรับ TypeSafe ให้คุณ ใช้ flow การขอ secret แบบปิดบัง ไม่ใช่ผ่านแชท ค่านี้ต้องไปอยู่ใน environment variable ชื่อ TYPESAFE_API_KEY บนคอมพิวเตอร์ของคุณ และห้ามปรากฏในไฟล์ log skill หรือ repo ใดก็ตามที่คุณสร้างขึ้น ยืนยันกลับมาแค่ว่าตั้งค่าตัวแปรแล้วและอ่านได้ ห้ามบอกค่าของมันเด็ดขาด
ขั้นตอนที่ 3: ติดตั้ง SDK และทดสอบเบื้องต้น
1บนคอมพิวเตอร์ของคุณ รันคำสั่ง: pip install typesafe-sdk23จากนั้นเขียนไฟล์ /work/jev/smoke.py ที่เปิด TypeSafeClient(model="jev-latest") และส่ง system_one call หนึ่งครั้งพร้อมคำถาม Choice เดียว กำหนด state เป็น: "goal: file a support ticket. task: routing. last error: none x0" เกณฑ์: billing, technical, sales45รันมันแล้วแสดง response object ดิบๆ ให้ฉันดู ทั้ง choice, probabilities และ confidence ถ้า TYPESAFE_API_KEY หายไป ให้หยุดแล้วบอกฉัน ห้าม hardcode อะไรลงไปเอง
สิ่งที่คุณต้องมองหาในผลลัพธ์มีสามอย่าง: ค่าที่มาจากรายการของคุณเอง, การกระจายตัวของ probability และตัวเลข confidence ถ้าขาดอย่างใดอย่างหนึ่งไป แปลว่า SDK กำลังคุยกับอย่างอื่นอยู่
ขั้นตอนที่ 4: สร้าง router
1สร้าง router module ไว้ที่ /work/jev/router.py โดยมีฟังก์ชันเดียว:23 route(goal: str, task_type: str, last_error: str, repeats: int) -> dict45มันจะส่งฟิลด์ทั้งสี่นี้ไปให้ Jev เป็น state พร้อมคำถาม Choice หนึ่งข้อชื่อ "action" และมีเกณฑ์ดังนี้:67 proceed ไม่มีอะไรบ่งชี้ว่าขั้นตอนต่อไปจะล้มเหลว8 reuse_cache มี artifact ใหม่สำหรับเรื่องนี้อยู่แล้ว9 stop_retry วิธีเดิมล้มเหลวในรูปแบบเดิม10 research_capped เก็บแหล่งข้อมูลมาพอแล้ว11 ask_human ขั้นตอนนี้เป็นการส่ง เผยแพร่ จ่ายเงิน หรือลบข้อมูล1213คืนค่า choice, confidence และ probabilities กลับมา บันทึกทุกการเรียกใช้ลง /work/jev/decisions.jsonl พร้อม timestamp, อินพุตทั้งสี่ และ response ทั้งหมด อ่านพฤติกรรมจาก /work/jev/config.json ที่มีคีย์สองตัวคือ "enabled" และ "mode" ("shadow" หรือ "active") ค่าเริ่มต้นคือ enabled เป็น false1415ห้ามมีข้อความ prompt อื่นใดใน state นอกเหนือจากสี่ฟิลด์นี้ แสดงไฟล์ให้ฉันดูก่อนรัน

สี่ฟิลด์นั้นคือ state ทั้งหมดที่ Jev จะเห็น มันจะไม่ได้รับ prompt, repo หรือบทสนทนาของคุณเลย ดังนั้นการเรียกใช้จึงเล็กกะทัดรัดและ log ก็อ่านง่าย

ขั้นตอนที่ 5: เพิ่ม skill
1สร้าง skill ชื่อ jev-usage-router23ทริกเกอร์: ก่อนเปิดเซสชันเบราว์เซอร์ทุกครั้ง, ก่อนค้นคว้าทุกรอบ, ก่อนลองทำซ้ำในขั้นตอนที่ล้มเหลว และก่อนจะสร้างบอทเพิ่ม45ขั้นตอน: เรียก route() จาก /work/jev/router.py โดยใช้ goal ปัจจุบัน, ประเภทงาน, ข้อความ error ล่าสุด และจำนวนครั้งที่มันเกิดซ้ำ จากนั้นทำตาม action ที่ได้:67 proceed ทำตามแผนต่อไป8 reuse_cache ใช้ artifact ที่มีอยู่แล้ว ข้ามขั้นตอนนี้ไป9 stop_retry เลิกใช้วิธีนี้แล้วรายงานเหตุผล10 research_capped หยุดที่ 5 แหล่งข้อมูลแล้วสรุปสิ่งที่มี11 ask_human หยุดแล้วถามฉัน ห้ามทำต่อเอง1213ขอบเขตการอนุมัติ: ask_human ห้ามถูกข้ามเด็ดขาด ไม่ว่า confidence จะสูงแค่ไหนก็ตาม14ผลลัพธ์: บรรทัดเดียวต่อการตัดสินใจหนึ่งครั้งใน run report
เก็บสำเนาหลักของ skill นั้นไว้ใน source control ของคุณเอง Grok Bot เก็บประวัติการรันล่าสุดแค่ 20 รายการต่อ routine ดังนั้นอะไรที่สำคัญให้ push เข้าที่เก็บข้อมูลของคุณทันทีที่เกิด
ขั้นตอนที่ 6: รันในโหมด shadow สักหนึ่งสัปดาห์
1ตั้งค่า /work/jev/config.json เป็น {"enabled": true, "mode": "shadow"}23ในโหมด shadow ให้เรียก router ทุกครั้งที่เกิดทริกเกอร์และบันทึกการตัดสินใจไว้ จากนั้นเพิกเฉยต่อมันแล้วทำสิ่งที่คุณจะทำตามปกติ ห้ามเปลี่ยนวิธีการทำงานของคุณเลย45ท้ายวันแต่ละวัน ให้เพิ่มข้อมูลลงใน /work/jev/report.md: จำนวนการเรียกใช้, สัดส่วน action, ค่าเฉลี่ย confidence และทุกกรณีที่ action ที่บันทึกไว้ไม่ตรงกับสิ่งที่คุณทำจริง
โหมด shadow มีไว้เพราะผู้ตัดสินราคาถูกก็พลาดได้ ลองอ่าน log ตรงจุดที่ไม่ตรงกันดู ถ้า stop_retry ทำงานกับวิธีที่น่าจะได้ผลในรอบที่สี่ คุณต้องรู้เรื่องนี้ก่อนจะปล่อยมันให้ลงมือทำจริง
traffic จริงๆ หนึ่งสัปดาห์ถือว่าพออ่านได้แล้ว ถ้าน้อยกว่านั้น กลุ่มตัวอย่างจะเล็กเกินกว่าจะบอกอะไรคุณได้

ขั้นตอนที่ 7: เปิดใช้งานจริง แต่ต้องเก็บ kill switch ไว้
1ตั้งค่า mode เป็น "active" จากนี้ไปให้ทำตาม action แทนที่จะแค่บันทึกไว้23kill switch สองตัวนี้จะพร้อมให้ฉันใช้ได้ตลอดเวลา:4 1. พิมพ์ "bypass jev" ในข้อความใดก็ได้ เพื่อข้าม router สำหรับการรันรอบนั้น5 2. ตั้ง {"enabled": false} ใน config.json เพื่อปิดการทำงานทั้งหมด67ask_human ยังต้องหยุดรอฉันเหมือนเดิม เขียน decisions.jsonl ต่อไปเหมือนเดิมทุกอย่าง
ยังต้องเก็บ log ต่อแม้จะสลับโหมดแล้ว เพราะ log คือวิธีที่คุณจะแยกแยะได้ว่า router ตัวไหนช่วยประหยัดเงิน และตัวไหนแอบหยุดงานที่ควรทำให้เสร็จ
ควรเริ่ม route อะไรก่อน
เริ่มจาก routine ตัวที่พยายามทำซ้ำอยู่เรื่อยๆ เพียงตัวเดียว แล้วปล่อยส่วนที่เหลือของการตั้งค่าไว้แบบเดิม
routine ที่ควรนำมา route ก่อนจะมีจุดร่วมอยู่อย่างหนึ่ง: เอเจนต์ไม่รู้ว่าตัวเองรู้อะไรไปแล้ว มันเปิดเบราว์เซอร์ใหม่เพื่อหาไฟล์ที่มีอยู่ในดิสก์อยู่แล้ว อ่านแหล่งข้อมูลที่สิบสี่ทั้งๆ ที่ห้าแหล่งแรกตอบคำถามได้แล้ว หรือลองวิธีเดิมเป็นครั้งที่สามเพราะไม่มีอะไรบอกว่าครั้งที่สองล้มเหลวด้วยสาเหตุเดียวกัน
เลือกมาสักอัน รันในโหมด shadow แล้วอ่าน log ก่อนขยายไปทำอย่างอื่น
ค่าใช้จ่ายเท่าไหร่
การเรียก Jev หนึ่งครั้งใช้ฟิลด์สั้นๆ แค่สี่ฟิลด์ จึงกินทรัพยากรน้อย แต่ละครั้งคือการซื้อสิทธิ์ให้คุณข้ามขั้นตอนแพงๆ ได้ เช่น เซสชันเบราว์เซอร์ รอบการค้นคว้า บอทเสริม หรือการลองทำซ้ำ
วัดจาก traffic ของคุณเองดีกว่าไปเชื่อตัวเลขของใคร รวมถึงของผมด้วย บันทึกการตัดสินใจ บันทึกขั้นตอนที่คุณข้ามไป แล้วเปรียบเทียบสัปดาห์ที่เป็นโหมด shadow กับสัปดาห์ที่เปิดใช้งานจริง
ข้อจำกัดบางอย่างที่ต้องจำไว้
- หนึ่งบัญชีมีคอมพิวเตอร์ได้เครื่องเดียว บอททุกตัวที่คุณรันจะเห็นไฟล์และการล็อกอินเดียวกัน ดังนั้นอะไรที่คุณไม่อยากให้บอททุกตัวเข้าถึง ก็อย่านำไปวางไว้ในเครื่องนั้น
- เก็บประวัติการรันได้ 20 รายการต่อ routine อะไรที่สำคัญให้ push เข้าที่เก็บข้อมูลของคุณเอง
- การใช้งานยังไม่ใช่แบบไม่จำกัด Router ช่วยลดการกระทำที่สิ้นเปลือง แต่ไม่ได้ลบเพดานจำกัดออก
สรุปแล้วคุณจะได้อะไร?
Grok Bot เป็นคนคิดและลงมือทำ Jev ตอบกลับมาด้วยหนึ่งในห้า action และคุณยังคงเป็นคนตัดสินใจสุดท้ายในทุกเรื่องที่แก้คืนไม่ได้
เริ่มจาก routine ที่ล้มเหลวในรูปแบบเดิมๆ ซ้ำๆ รันในโหมด shadow สักสัปดาห์ แล้วค่อยสลับมาใช้จริง
ขอบคุณที่อ่านครับ!
คู่มือฉบับเต็มและบทความอื่นๆ ในซีรีส์นี้: https://zodchiii.substack.com/





