Weft
TH
บล็อก

AI agent ของฉันทำอะไรไปบ้าง? สี่คำถามที่ต้องตอบได้พร้อมหลักฐาน

ทุก task ของ AI agent คุณควรเห็นว่าใครทำ อะไรเปลี่ยน อะไรถูกข้าม และเพราะอะไร พร้อมหลักฐานที่ตรวจได้ แทนคอมเมนต์ที่บอกแค่ว่าเสร็จแล้ว

Weft คือเครื่องมือจัดการงานด้วย AI สำหรับผู้ก่อตั้งเดี่ยวและทีมเล็ก

บทความทั้งหมด

โดย Andrei Finogeev ·

ถ้าอยากรู้ว่า AI agent ทำอะไรไปบ้าง อย่าเริ่มจากสรุปของมัน ให้ตรวจสี่เรื่อง: การเชื่อมต่อไหนเป็นผู้ทำงาน อะไรเปลี่ยน (แสดงด้วยสิ่งที่คุณเปิดดูเองได้) อะไรยังไม่ได้ทำ และตัดสินใจอะไรไปพร้อมเหตุผล ถ้าข้อใดในสี่ข้อนี้พึ่งแค่คำพูดของ agent สิ่งที่คุณมีคือคำเล่า ไม่ใช่บันทึก

เราเป็นผู้สร้าง Weft ข้อมูลเกี่ยวกับผลิตภัณฑ์อื่นมาจากหน้าทางการของผลิตภัณฑ์นั้น ตรวจสอบเมื่อวันที่ 27 ตุลาคม 2026

ทำไมคอมเมนต์ที่บอกว่า "เสร็จแล้ว" ถึงไม่พอ?

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

บทความของ Hypertask เรื่องการระบุว่าใครทำงาน AI มีประเด็นที่ยุติธรรม: งานของ agent ควรอยู่บนบอร์ดเดียวกับงานของคน ไม่ใช่อยู่ใน log ของ terminal ที่ไม่มีใครอ่าน Hypertask ยังให้ agent มีตัวตนของตัวเองเป็น service account การเขียนจึงถูกระบุว่าเป็นของ agent แทนที่จะเป็นของคุณ และมี task evidence กับ lease แม้เอกสารของเขาจะบอกว่าสิ่งเหล่านี้เป็น REST endpoint เท่านั้น ไม่ใช่ MCP tool โดยตั้งใจ จุดที่เราต่างคือบันทึกควรมีอะไร thread คอมเมนต์ที่มี output ของ agent คือ log ของสิ่งที่ agent พูด เราอยากให้บันทึกเก็บหลักฐาน

คู่มือนี้ไม่มีตัวเลขจากผลสำรวจ คุณทดสอบสี่คำถามนี้บนบอร์ดของคุณเองได้ภายในบ่ายนี้ และนั่นบอกอะไรคุณได้มากกว่าค่าเฉลี่ยของอุตสาหกรรม

สี่คำถามมีอะไรบ้าง?

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

  1. ใครทำ? client ไหน บนการเชื่อมต่อไหน ที่ claim และปิด task
  2. อะไรเปลี่ยน? outcome บวก artifacts ที่ตรวจได้โดยไม่ต้องเชื่อ agent: commit hash, URL, ไฟล์, message id
  3. อะไรไม่ได้ทำ? ส่วนที่มันข้ามไป และเรื่องที่มันไม่แน่ใจ
  4. ตัดสินใจอะไรไป และเพราะอะไร? ทุกการเลือกที่ทำระหว่างทาง พร้อมตัวเลือกที่ชั่งน้ำหนัก และทุกครั้งที่คุณส่งงานกลับไปแก้
คำถามคำตอบที่อ่อน: คอมเมนต์ว่า "เสร็จแล้ว"คำตอบที่แข็งแรง: หลักฐานที่ตรวจได้
ใครทำ?"Agent" หรือชื่อคุณเองบนทุกการเปลี่ยนแปลง เพราะทุก tool ใช้ key เดียวกันการเชื่อมต่อที่ claim และปิด task ด้วยชื่อที่ client ลงทะเบียนไว้ โดยทุกเหตุการณ์ใน journal ระบุว่าเป็นคนหรือ MCP พร้อม client id
อะไรเปลี่ยน?"Refactor โมดูล auth แล้ว test ผ่าน"commit hash, URL ของ PR หรือหน้าเว็บ, ไฟล์พร้อม sha256, message id: สิ่งที่คุณเปิดดูเองได้
อะไรไม่ได้ทำ?ไม่ได้บอกอะไร คุณจึงคิดว่าไม่มีอะไรถูกข้ามรายการ notDone ("ไม่ได้รัน migration บน staging") และรายการ unknowns ("ไม่แน่ใจว่า endpoint เก่าไม่มีที่อื่นเรียกใช้")
ตัดสินใจอะไรไป และเพราะอะไร?จมอยู่ในแชตที่เลื่อนผ่านไปแล้วบันทึกการตัดสินใจพร้อมตัวเลือกที่ชั่งน้ำหนักและเงื่อนไขที่ควรทบทวน บวกประวัติการตัดสินใจของ task รวมถึงเหตุผลที่ถูกส่งกลับ

จะรู้ได้อย่างไรว่า agent ตัวไหนทำ?

Weft เชื่อมต่อกับ AI client ผ่าน Model Context Protocol ที่ endpoint เดียวคือ https://letsweft.com/api/mcp OAuth client และ personal access token แต่ละตัวเป็น actor ของตัวเอง task บันทึกว่า client ไหนสร้างมัน และบอร์ดแสดงชื่อที่ client นั้นลงทะเบียนไว้ตอน sign in พร้อมไอคอน ทุกเหตุการณ์ใน journal ของ task เก็บว่ามาจากคนหรือผ่าน MCP และ client ไหนเป็นผู้ส่ง

journal ฉบับเต็ม (get_task_history ในโหมด full) แสดง client id ดิบของแต่ละเหตุการณ์: OAuth client id หรือ mcp-token ตามด้วย id ของ token มันไม่ใช่ชื่อที่อ่านง่าย แต่แม่นยำ และแยกการเชื่อมต่อสองตัวออกจากกันได้แม้มาจากผลิตภัณฑ์เดียวกัน

ความเป็นเจ้าของระหว่างทำงานก็ชัดเจนด้วย agent เรียก start_task ซึ่ง claim task ด้วย lease 20 นาทีและย้ายไป Doing report_progress ต่ออายุ lease agent ตัวที่สองที่พยายามรับ task เดียวกันจะได้ already_claimed และ lease ที่หมดอายุจะปลด task ให้คนอื่น คู่มือ claim loop อธิบายทีละขั้น และการรันหลาย agent บนบอร์ดเดียวครอบคลุมกรณีหลาย client

กฎหนึ่งข้อในทางปฏิบัติ: ให้ทุก tool มีการเชื่อมต่อของตัวเอง ถ้าสอง client ใช้ access token เดียวกัน บอร์ดจะเห็นเป็น actor เดียว และคำถามว่าใครทำก็ไม่มีคำตอบ

อะไรเปลี่ยน และตรวจได้โดยไม่ต้องถาม agent ไหม?

เมื่อ agent ทำเสร็จ มันจะเรียก complete_task ต้องมีแค่ task id นอกนั้นเป็นทางเลือกทั้งหมด และการเรียกไม่เคยล้มเหลวเพราะขาดหลักฐาน นั่นตั้งใจ: การเสียงานที่เสร็จแล้วแย่กว่าการบันทึกไว้แบบยังไม่ได้ยืนยัน ใบรับงานมีได้:

  • outcome: ไม่เกิน 1,000 ตัวอักษร ว่าทำอะไรไปและผลลัพธ์อยู่ที่ไหน
  • artifacts: ไม่เกิน 20 รายการ แต่ละรายการมีชนิด (url, file, message, commit และอื่น ๆ) ตำแหน่ง และ sha256 digest ถ้ามี
  • claims: สิ่งที่ agent อ้างว่าทำ เก็บไว้เป็นคำกล่าวอ้าง ไม่ใช่ข้อเท็จจริงที่ยืนยันแล้ว
  • notDone และ unknowns: อธิบายในหัวข้อถัดไป
  • nextStep: สิ่งที่ agent จะทำต่อถ้าคุณ accept
complete_task({
  "id": "<task id>",
  "runId": "<from start_task>",
  "leaseToken": "<from start_task>",
  "outcome": "Rate limiting added to /login; PR open, not merged.",
  "artifacts": [
    { "kind": "commit", "uri": "<repo>/commit/<hash>" },
    { "kind": "url", "uri": "<repo>/pull/<number>" }
  ],
  "notDone": ["Did not change the signup endpoint"],
  "unknowns": ["Limit of 5 per minute is a guess; no traffic data"],
  "nextStep": "Merge the PR to main"
})

บรรทัด outcome ยังเป็นคำเล่า artifacts คือส่วนที่คุณตรวจได้ commit hash มีอยู่ใน repository ของคุณหรือไม่มี URL โหลดได้หรือไม่ได้ sha256 ของไฟล์ตรงกันหรือไม่ตรง ถ้าใบรับงานมี outcome แต่ไม่มี artifacts ให้ถือว่าเป็นงานที่ agent รายงานเอง เพราะมันเป็นแบบนั้นจริง ๆ บนเว็บ การ์ด Done แสดงว่า task เป็น Verified หรือ Agent-reported

agent ไม่ได้ทำอะไรบ้าง?

นี่คือคำถามที่บันทึกส่วนใหญ่ข้ามไป และเป็นข้อที่ย้อนมากัดคุณสองสัปดาห์ต่อมา complete_task มีสองรายการสำหรับเรื่องนี้ แต่ละรายการได้ไม่เกิน 20 ข้อ ข้อละ 500 ตัวอักษร: notDone สำหรับสิ่งที่ agent ตั้งใจไม่ทำ และ unknowns สำหรับสิ่งที่มันไม่แน่ใจ คำอธิบายของ tool เองขอให้ agent บอกออกมาชัด ๆ ว่าไม่ได้ทำอะไร นั่นคือสิ่งที่แยกผลลัพธ์ที่เชื่อถือได้ ออกจากผลลัพธ์ที่คุณต้องหาคำตอบใหม่เอง

อ่านรายการเหล่านี้ก่อน "ไม่ได้รัน test กับฐานข้อมูล staging" เปลี่ยนสิ่งที่คุณจะทำต่อไป ใบรับงานของ task ใหญ่ที่ไม่มี notDone เลยสักข้อ ก็เป็นเรื่องที่ควรถามแล้ว

ตัดสินใจอะไรไป และเพราะอะไร?

การตัดสินใจที่ทำในแชตหายไปเมื่อแชตเลื่อนผ่าน record_decision เก็บมันไว้สองแบบ:

  • บันทึกการตัดสินใจแบบเดี่ยว: ชื่อ outcome บริบท ตัวเลือกที่ชั่งน้ำหนักจริง consequences และเงื่อนไขที่ควรทบทวน บันทึกแก้ไขไม่ได้ การเปลี่ยนหมายถึงการบันทึกการตัดสินใจใหม่ที่ supersede อันเดิม และอันเดิมยังอยู่ โดยถูกทำเครื่องหมายว่า superseded
  • การส่งต่อคำตัดสิน: เมื่อคุณบอก agent ในบทสนทนาว่า "accept", "ทำใหม่ด้วย X", "ตัดทิ้ง" หรือ "ยังไม่ใช่ตอนนี้" มันจะบันทึกคำตัดสินนั้นบน task พร้อมโน้ตของคุณ

get_task_history อ่านกลับมาได้สามโหมด: summary (การ์ด ใบรับงานล่าสุด และจำนวนต่าง ๆ), decisions (ทุกการตัดสินใจเกี่ยวกับ task รวมถึงเหตุผลที่ถูกส่งกลับ ซึ่งยังอยู่แม้จะ accept ภายหลัง) และ full (journal ดิบ จำกัด 100 เหตุการณ์) get_context ส่งการตัดสินใจที่ยังมีผลให้ agent ตัวถัดไปภายในงบ token การรันครั้งถัดไปจึงเริ่มจากสิ่งที่ตัดสินแล้ว ไม่ใช่เริ่มจากศูนย์ อ่านเพิ่มในทำไมการตัดสินใจในแชต AI ถึงหายไป

review ที่ไหน และต้องกดอะไร?

ค่าเริ่มต้นคือ task ที่เสร็จจะไปที่ Done ทันที มันจะหยุดใน Inbox เมื่อ task ต้อง review หรือเมื่อการตรวจสอบไม่ผ่าน ตรงนั้นคุณจะเห็นใบรับงานและปุ่มสี่ปุ่ม: Accept, Rework, Later และ Drop โดย Rework จะขอโน้ต และโน้ตนั้นจะส่งกลับไปที่ agent

ถ้า agent ส่ง nextStep มา มันจะแสดงเหนือปุ่ม Accept และการ accept คือการอนุมัติขั้นนั้นขั้นเดียว การอนุมัติมีผล 72 ชั่วโมง และกลับไปถึง agent ผ่าน get_my_work หรือ start_task เป็นขั้นเดียวที่ต้องทำต่อ คำถามที่ agent ถามด้วย request_input เข้า Inbox เดียวกัน ทั้งบนเว็บและในแอป iOS และ Android พร้อม push บนมือถือ

Inbox มีขีดจำกัดโดยตั้งใจ: รายการที่รอ 5 รายการสำหรับ workspace คนเดียว 10 สำหรับทีม หรือเวลา review โดยประมาณ 45 นาที แล้วแต่อย่างไหนถึงก่อน เมื่อเต็ม start_task จะปฏิเสธด้วย attention_queue_full agent จึงต้องปิดงานหรือทำให้งานชัดเจน แทนที่จะกองงานให้คุณตรวจเพิ่ม

ควรขอหลักฐานแบบไหนตามประเภทของ task?

เขียนสิ่งเหล่านี้ไว้ในคำอธิบาย task เพื่อให้ agent รู้ว่าคุณคาดหวังหลักฐานแบบไหน:

  • โค้ด: commit hash และ URL ของ PR เป็น artifacts ส่วน notDone ควรระบุ test ที่ไม่ได้รัน migration ที่ไม่ได้ apply และไฟล์ที่ตั้งใจไม่แตะ
  • คอนเทนต์: URL ที่เผยแพร่แล้ว หรือไฟล์ฉบับร่างพร้อม sha256 ถ้ายังไม่ขึ้นจริง ส่วน unknowns ควรระบุข้อเท็จจริงที่ agent ยืนยันไม่ได้
  • งานค้นคว้า: URL แหล่งที่มาของแต่ละข้อกล่าวอ้างสำคัญ และไฟล์โน้ต ส่วน unknowns ควรแยกสิ่งที่แหล่งที่มาบอก ออกจากสิ่งที่ agent อนุมานเอง
  • การติดต่อออกไป: message id ของแต่ละข้อความที่ส่ง และรายชื่อผู้รับเป็นไฟล์ ส่วน notDone ควรระบุว่าใครไม่ได้ถูกติดต่อและเพราะอะไร

ควบคุมสิ่งที่ agent ทำได้ตั้งแต่แรกอย่างไร?

การระบุว่าใครทำหลังเกิดเรื่องจะได้ผลดีที่สุดเมื่อมีขีดจำกัดก่อนหน้านั้น ใน Weft การเชื่อมต่อ OAuth แต่ละครั้งมีระดับสิทธิ์หนึ่งในสามระดับ ตั้งได้ในหน้ายินยอม หรือภายหลังใน Settings, Connected AI clients:

  • full (ค่าเริ่มต้น): ทั้ง 32 tool
  • write: ทุกอย่างยกเว้น tool ทำลายข้อมูลสามตัว (trash_task, archive_done_tasks, complete_sprint)
  • read: เฉพาะ tool อ่านอย่างเดียว 11 ตัว

การตรวจทำงานทุกครั้งที่เรียก Disconnect จะเพิกถอน refresh token ของการเชื่อมต่อ และปฏิเสธ token ใด ๆ ที่ออกก่อนการตัดในการเรียกครั้งถัดไป personal access token สำหรับ client ที่ไม่รองรับ OAuth ไม่มี scope: token เดียวเข้าถึงทั้ง 32 tool และการเพิกถอนมีผลในการเรียกครั้งถัดไป agent ย้าย task ไปถังขยะ 30 วันได้ แต่ลบถาวรไม่ได้ การกู้จากถังขยะเป็นฟีเจอร์ Pro

Weft ไม่ได้ทำอะไรในเรื่องนี้บ้าง?

  • ไม่มี integration กับ GitHub หรือ Slack Weft จึงไม่ได้ไปค้น commit หรือข้อความให้คุณ คุณต้องเปิด artifact เอง
  • ไม่มี public REST API, webhook หรือ CLI สำหรับส่งใบรับงานไปยังระบบอื่น มี export เป็น JSON และ Markdown
  • ไม่ได้ trace ขั้นตอนของโมเดล เครื่องมือที่ log prompt, token และ latency ในระดับโมเดลทำงานคนละแบบ และคุณอาจอยากมีด้วย
  • agent เขียนใบรับงานของตัวเอง Weft ทำให้ช่องว่างระหว่างคำกล่าวอ้างกับหลักฐานมองเห็นได้ แต่ทำให้ agent ซื่อสัตย์ไม่ได้

ถ้าคุณอยากให้ agent ถูกจัดการเป็น service account ผ่าน REST API, CLI สำหรับ script ใน CI หรือฟีเจอร์ AI ในตัวอย่างการเขียน task และ triage, Hypertask เหมาะกว่า หน้าทางเลือกแทน Hypertaskของเราเปรียบเทียบทั้งสองแบบเคียงข้างกัน

ประวัติ git ไม่พอให้รู้ว่า agent ทำอะไรหรือ?
git แสดงว่าโค้ดเปลี่ยนอะไร แต่ไม่ได้แสดงว่า agent ข้ามอะไร ไม่แน่ใจเรื่องไหน หรือเลือกอะไรระหว่างสองตัวเลือก ใช้ commit hash เป็น artifact บน task และเก็บที่เหลือไว้ในใบรับงานและบันทึกการตัดสินใจ
agent แต่ง artifact ขึ้นมาเองไม่ได้หรือ?
มันส่ง string อะไรก็ได้ แต่จุดของ artifact คือคุณเปิดมันได้: hash ที่ค้นได้ URL ที่โหลดได้ message id ที่หาเจอ ของที่แต่งขึ้นจะพังทันทีที่คุณตรวจ ซึ่งคอมเมนต์ไม่เคยพัง เมื่อ task มีการตรวจสอบและการตรวจแบบ blocking ไม่ผ่าน task จะไม่ไปที่ Done
task ที่เสร็จทุกชิ้นต้องรอให้ฉัน review ไหม?
ไม่ ค่าเริ่มต้นคือ task ที่เสร็จจะไปที่ Done มันจะรอใน Inbox ให้เลือก Accept, Rework, Later หรือ Drop เฉพาะเมื่อ task ต้อง review หรือการตรวจสอบไม่ผ่าน
AI client ตัวไหนเขียนใบรับงานลง Weft ได้บ้าง?
MCP client ตัวไหนก็ได้ ChatGPT มี Weft เป็น plugin ที่เผยแพร่แล้วในทุกแพ็กเกจรวมถึง Free Claude Code เชื่อมต่อด้วย claude mcp add --transport http weft https://letsweft.com/api/mcp Claude.ai และ Claude Desktop ใช้ custom connector มีหน้าตั้งค่าสำหรับ 33 client เช่น Claude Code, ChatGPT, Cursor และ Codex
ค่าใช้จ่ายเท่าไหร่?
Free ครอบคลุม 50 task และ AI call 200 ครั้งต่อเดือน Pro ราคา $7 ต่อที่นั่งต่อเดือน หรือ $60 ต่อที่นั่งต่อปี Weft ไม่มี AI credit: การคิดเกิดขึ้นใน AI client ของคุณเอง ดูราคา