YouMind
ลงชื่อเข้าใช้

วิธีเชื่อมต่อ Jev เข้ากับ Grok Bot: Agent ที่ดีที่สุดที่ผมเคยสร้าง

@0x_rody
อังกฤษ20 ต.ค. 2569
153K
250
22
27
854

TL;DR

คู่มือนี้สาธิตวิธีการรวมโมเดล Jev ของ TypeSafe เข้ากับ Grok Bot เพื่อสร้าง Decision Router ที่ช่วยป้องกันการทำงานซ้ำซ้อนของ AI เช่น การ Retry ที่ไม่จำเป็น หรือการค้นคว้าข้อมูลซ้ำ ซึ่งจะช่วยเพิ่มประสิทธิภาพและลดต้นทุน

Grok Bot มอบคอมพิวเตอร์คลาวด์ให้ผู้ใช้ทุกคนคนละเครื่อง และปล่อยให้บอตรัน shell บนนั้นได้ คนส่วนใหญ่แค่สั่งงานมันแล้วนั่งดูมันพยายามทำซ้ำในความล้มเหลวเดิมๆ

คุณเพิ่มทักษะ router เข้าไปหนึ่งตัว ปล่อยให้มันเก็บ log ไว้สักสัปดาห์ก่อนจะให้มันลงมือทำอะไรจริง และต้องมีปุ่ม kill switch เตรียมไว้เสมอ

ถ้าต่อสายถูกทาง การพยายามทำซ้ำจะหยุดลงก่อนที่คุณจะต้องเสียอะไรไป

นี่คือวิธีตั้งค่าทั้งหมด 👇

ก่อนจะเริ่ม ผมเผยแพร่คู่มือฉบับเต็มไว้บน Substack ของผม: https://zodchiii.substack.com/ 🧠

rody - inline image

Jev ส่งอะไรกลับมาเป็นคำตอบ

Jev คือโมเดล System One ของ TypeSafe มันตอบกลับด้วยค่าที่มี type ชัดเจนแทนที่จะเป็นข้อความยาวๆ และมาพร้อมกับ primitive สามตัว:

  • Choice เลือกหนึ่งตัวเลือกจากรายการที่คุณกำหนด แล้วคืนค่า choice, probabilities และ confidence
  • Score ให้คะแนน state ตามเกณฑ์ (rubric) ที่ตั้งไว้
  • Noul ตอบว่าข้อความนั้นเป็นความจริงหรือไม่ โดยให้ตัวเลขตั้งแต่ 0 ถึง 1

เพราะคำตอบที่กลับมาเป็น "ค่า" คุณจึงเก็บ log ได้ นำการตัดสินใจสองสัปดาห์มา diff เปรียบเทียบกันได้ และรันย้อนหลังกับ traffic ของเมื่อวานได้

หน้าตาของการเรียกใช้จะเป็นแบบนี้:

text
1from typesafe_sdk import Choice, TypeSafeClient
2
3with TypeSafeClient(model="jev-latest") as client: # reads TYPESAFE_API_KEY
4 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 )
19
20print(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 ที่คุณเอาไปวางไว้ บอททุกตัวอ่านได้หมด

text
1ฉันต้องส่งข้อมูลยืนยันตัวตน API สำหรับ TypeSafe ให้คุณ ใช้ flow การขอ secret แบบปิดบัง ไม่ใช่ผ่านแชท ค่านี้ต้องไปอยู่ใน environment variable ชื่อ TYPESAFE_API_KEY บนคอมพิวเตอร์ของคุณ และห้ามปรากฏในไฟล์ log skill หรือ repo ใดก็ตามที่คุณสร้างขึ้น ยืนยันกลับมาแค่ว่าตั้งค่าตัวแปรแล้วและอ่านได้ ห้ามบอกค่าของมันเด็ดขาด

ขั้นตอนที่ 3: ติดตั้ง SDK และทดสอบเบื้องต้น

text
1บนคอมพิวเตอร์ของคุณ รันคำสั่ง: pip install typesafe-sdk
2
3จากนั้นเขียนไฟล์ /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, sales
4
5รันมันแล้วแสดง response object ดิบๆ ให้ฉันดู ทั้ง choice, probabilities และ confidence ถ้า TYPESAFE_API_KEY หายไป ให้หยุดแล้วบอกฉัน ห้าม hardcode อะไรลงไปเอง

สิ่งที่คุณต้องมองหาในผลลัพธ์มีสามอย่าง: ค่าที่มาจากรายการของคุณเอง, การกระจายตัวของ probability และตัวเลข confidence ถ้าขาดอย่างใดอย่างหนึ่งไป แปลว่า SDK กำลังคุยกับอย่างอื่นอยู่

ขั้นตอนที่ 4: สร้าง router

text
1สร้าง router module ไว้ที่ /work/jev/router.py โดยมีฟังก์ชันเดียว:
2
3 route(goal: str, task_type: str, last_error: str, repeats: int) -> dict
4
5มันจะส่งฟิลด์ทั้งสี่นี้ไปให้ Jev เป็น state พร้อมคำถาม Choice หนึ่งข้อชื่อ "action" และมีเกณฑ์ดังนี้:
6
7 proceed ไม่มีอะไรบ่งชี้ว่าขั้นตอนต่อไปจะล้มเหลว
8 reuse_cache มี artifact ใหม่สำหรับเรื่องนี้อยู่แล้ว
9 stop_retry วิธีเดิมล้มเหลวในรูปแบบเดิม
10 research_capped เก็บแหล่งข้อมูลมาพอแล้ว
11 ask_human ขั้นตอนนี้เป็นการส่ง เผยแพร่ จ่ายเงิน หรือลบข้อมูล
12
13คืนค่า choice, confidence และ probabilities กลับมา บันทึกทุกการเรียกใช้ลง /work/jev/decisions.jsonl พร้อม timestamp, อินพุตทั้งสี่ และ response ทั้งหมด อ่านพฤติกรรมจาก /work/jev/config.json ที่มีคีย์สองตัวคือ "enabled" และ "mode" ("shadow" หรือ "active") ค่าเริ่มต้นคือ enabled เป็น false
14
15ห้ามมีข้อความ prompt อื่นใดใน state นอกเหนือจากสี่ฟิลด์นี้ แสดงไฟล์ให้ฉันดูก่อนรัน
rody - inline image

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

rody - inline image

ขั้นตอนที่ 5: เพิ่ม skill

text
1สร้าง skill ชื่อ jev-usage-router
2
3ทริกเกอร์: ก่อนเปิดเซสชันเบราว์เซอร์ทุกครั้ง, ก่อนค้นคว้าทุกรอบ, ก่อนลองทำซ้ำในขั้นตอนที่ล้มเหลว และก่อนจะสร้างบอทเพิ่ม
4
5ขั้นตอน: เรียก route() จาก /work/jev/router.py โดยใช้ goal ปัจจุบัน, ประเภทงาน, ข้อความ error ล่าสุด และจำนวนครั้งที่มันเกิดซ้ำ จากนั้นทำตาม action ที่ได้:
6
7 proceed ทำตามแผนต่อไป
8 reuse_cache ใช้ artifact ที่มีอยู่แล้ว ข้ามขั้นตอนนี้ไป
9 stop_retry เลิกใช้วิธีนี้แล้วรายงานเหตุผล
10 research_capped หยุดที่ 5 แหล่งข้อมูลแล้วสรุปสิ่งที่มี
11 ask_human หยุดแล้วถามฉัน ห้ามทำต่อเอง
12
13ขอบเขตการอนุมัติ: ask_human ห้ามถูกข้ามเด็ดขาด ไม่ว่า confidence จะสูงแค่ไหนก็ตาม
14ผลลัพธ์: บรรทัดเดียวต่อการตัดสินใจหนึ่งครั้งใน run report

เก็บสำเนาหลักของ skill นั้นไว้ใน source control ของคุณเอง Grok Bot เก็บประวัติการรันล่าสุดแค่ 20 รายการต่อ routine ดังนั้นอะไรที่สำคัญให้ push เข้าที่เก็บข้อมูลของคุณทันทีที่เกิด

ขั้นตอนที่ 6: รันในโหมด shadow สักหนึ่งสัปดาห์

text
1ตั้งค่า /work/jev/config.json เป็น {"enabled": true, "mode": "shadow"}
2
3ในโหมด shadow ให้เรียก router ทุกครั้งที่เกิดทริกเกอร์และบันทึกการตัดสินใจไว้ จากนั้นเพิกเฉยต่อมันแล้วทำสิ่งที่คุณจะทำตามปกติ ห้ามเปลี่ยนวิธีการทำงานของคุณเลย
4
5ท้ายวันแต่ละวัน ให้เพิ่มข้อมูลลงใน /work/jev/report.md: จำนวนการเรียกใช้, สัดส่วน action, ค่าเฉลี่ย confidence และทุกกรณีที่ action ที่บันทึกไว้ไม่ตรงกับสิ่งที่คุณทำจริง

โหมด shadow มีไว้เพราะผู้ตัดสินราคาถูกก็พลาดได้ ลองอ่าน log ตรงจุดที่ไม่ตรงกันดู ถ้า stop_retry ทำงานกับวิธีที่น่าจะได้ผลในรอบที่สี่ คุณต้องรู้เรื่องนี้ก่อนจะปล่อยมันให้ลงมือทำจริง

traffic จริงๆ หนึ่งสัปดาห์ถือว่าพออ่านได้แล้ว ถ้าน้อยกว่านั้น กลุ่มตัวอย่างจะเล็กเกินกว่าจะบอกอะไรคุณได้

rody - inline image

ขั้นตอนที่ 7: เปิดใช้งานจริง แต่ต้องเก็บ kill switch ไว้

text
1ตั้งค่า mode เป็น "active" จากนี้ไปให้ทำตาม action แทนที่จะแค่บันทึกไว้
2
3kill switch สองตัวนี้จะพร้อมให้ฉันใช้ได้ตลอดเวลา:
4 1. พิมพ์ "bypass jev" ในข้อความใดก็ได้ เพื่อข้าม router สำหรับการรันรอบนั้น
5 2. ตั้ง {"enabled": false} ใน config.json เพื่อปิดการทำงานทั้งหมด
6
7ask_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/

บันทึกในคลิกเดียว

อ่านบทความไวรัลเชิงลึกด้วย AI ใน YouMind

บันทึกแหล่งที่มา ถามคำถามที่ตรงประเด็น สรุปข้อโต้แย้ง และเปลี่ยนบทความไวรัลให้เป็นโน้ตที่นำกลับมาใช้ได้ใน AI เวิร์กสเปซเดียว

สำรวจ YouMind
สำหรับครีเอเตอร์

เปลี่ยน Markdown ของคุณให้เป็นบทความ 𝕏 ที่สะอาดตา

เวลาคุณเผยแพร่งานเขียนยาวของตัวเอง การจัดรูปแบบรูปภาพ ตาราง และบล็อกโค้ดให้เข้ากับ 𝕏 นั้นน่าปวดหัว YouMind เปลี่ยนร่าง Markdown ทั้งฉบับให้เป็นบทความ 𝕏 ที่สะอาดตาและพร้อมโพสต์ทันที

ลอง Markdown เป็น 𝕏

แพตเทิร์นให้ถอดรหัสเพิ่มเติม

บทความไวรัลล่าสุด

สำรวจบทความไวรัลเพิ่มเติม