Semble - การค้นหาโค้ดสำหรับเอเจนต์ที่ใช้โทเคนน้อยกว่า grep ถึง 98%
(github.com/MinishLab)- Semble เป็นไลบรารีค้นหาโค้ดที่สร้างมาเพื่อให้เอเจนต์ค้นหาเฉพาะชิ้นส่วนโค้ดที่ต้องการได้ทันทีด้วยคำค้นแบบภาษาธรรมชาติและโค้ด
- เมื่อเทียบกับ
grep+readจะใช้โทเคน น้อยลงประมาณ 98% และส่งคืนเฉพาะชังก์ที่เกี่ยวข้องแทนการอ่านทั้งไฟล์ - ทำดัชนีรีโพซิทอรีขนาดเฉลี่ยได้ใน ประมาณ 250ms และตอบคำค้นได้ในราว 1.5ms โดยทำงานบน CPU ได้โดยไม่ต้องใช้ API key, GPU หรือบริการภายนอก
- เบนช์มาร์กดำเนินการด้วยคำค้นราว 1,250 รายการบน 63 รีโพซิทอรีใน 19 ภาษา และระบุว่า Semble ทำคุณภาพได้ 99% ของ
CodeRankEmbedHybrid ขณะที่การทำดัชนีเร็วกว่า 218 เท่า - ในเบนช์มาร์กด้านประสิทธิภาพโทเคน Semble ใช้โทเคนน้อยลงเฉลี่ย 98% และไปถึง recall 94% ได้ด้วยเพียง 2k โทเคน ส่วน
grep+readไปถึง recall 85% ด้วย context window ขนาด 100k - ใช้งานผ่าน MCP server ได้กับ Claude Code, Cursor, Codex, OpenCode และเอเจนต์ที่รองรับ MCP โดยรีโพซิทอรีจะถูก clone และทำดัชนีเมื่อจำเป็น และแคชดัชนีไว้ตลอดเซสชัน
- รองรับการใช้งานแบบ Bash ด้วย จึงสามารถใส่เวิร์กโฟลว์
semble searchและsemble find-relatedลงในAGENTS.mdหรือCLAUDE.mdได้ และวิธีนี้จำเป็นสำหรับซับเอเจนต์ของ Claude Code และ Codex CLI - CLI รองรับทั้งพาธในเครื่องและ Git URL แบบ
https://และหากละpathไว้ จะใช้ไดเรกทอรีปัจจุบันเป็นค่าเริ่มต้น - ใช้เป็นไลบรารี Python ได้เช่นกัน โดยสามารถผนวกการค้นหาเข้ากับเครื่องมือแบบกำหนดเองผ่าน
SembleIndex.from_path,SembleIndex.from_git,search,find_related - ภายในใช้ tree-sitter แบ่งไฟล์ออกเป็นชังก์ที่เข้าใจโค้ด จากนั้นผสาน embedding
potion-code-16MของModel2VecกับBM25แล้วรวมคะแนนด้วย Reciprocal Rank Fusion - การจัดอันดับใช้การถ่วงน้ำหนักเชิงคำศัพท์สำหรับคำค้นแบบสัญลักษณ์, การบูสต์ชังก์ที่เป็นนิยาม, การจับคู่รากคำของ identifier, ความเกี่ยวข้องภายในไฟล์เดียวกัน และการลดน้ำหนักให้กับ test, legacy, example และ
.d.ts - เนื่องจากใช้โมเดล embedding แบบสถิต จึงไม่มี transformer forward pass ตอน query ทำให้ค้นหาได้ในระดับมิลลิวินาทีบน CPU
semble savingsจะประเมินโทเคนที่ประหยัดได้โดยเปรียบเทียบจำนวนอักขระทั้งไฟล์ของไฟล์เฉพาะที่ชังก์ที่ส่งคืนสังกัดอยู่ กับจำนวนอักขระของ snippet ที่ส่งคืนในแต่ละครั้งที่ค้นหา และสถิติจะถูกเก็บไว้ใน~/.semble/savings.jsonl- ติดตั้งแพ็กเกจได้จาก PyPI ชื่อ
sembleและเมื่อใช้งาน MCP ให้ใช้รูปแบบuvx --from "semble[mcp]" semble - ไลเซนส์เป็น MIT
1 ความคิดเห็น
ความเห็นจาก Hacker News
พอได้ลองใช้เครื่องมือแบบนี้แล้ว ผมเห็นว่าเมื่อโค้ดเดอร์พึ่งพาเครื่องมือ AI มากเกินไปจนฉลาดน้อยลง ตัว AI เองก็ฉลาดน้อยลงด้วย
AI แบบเอเจนต์ทุกวันนี้ฉลาดพอจะหาเส้นทางที่ค่อนข้างเหมาะสมในการสำรวจหรือค้นหาโค้ดได้อยู่แล้ว แต่พอเอาเครื่องมือแบบนี้มาต่อเข้าไป มันมักมีแนวโน้มจะเดินเกมแบบหักโหมเกินไป เพราะผลการค้นหาแทบจะให้มาแค่ตัวชี้ ไม่ใช่รายละเอียดทั้งหมด
ผมลองให้ Pi ติดตามเส้นทางการเก็บข้อมูลและค้นหาแบบครบทั้งกระบวนการในโปรเจ็กต์ที่ซับซ้อนพอสมควร ผลคือ
codebase-memory-mcpใช้โทเค็นขาเข้า/ขาออก 85k/4.4k, ค่าตั้งปกติของผมใช้ 67k/3.2k, และถ้าไม่มีเครื่องมืออะไรเลยใช้ 80k/3.2kคุณภาพของผลลัพธ์กับปริมาณข้อมูลเท่ากัน และเครื่องมือนี้ไม่ได้แค่ไม่ดีขึ้น แต่แย่ลงเล็กน้อยด้วย
ค่าตั้งปกติของผมคือใส่บรรทัดเดียวใน
AGENTS.mdและCLAUDE.mdว่า “ให้อ่านPROJECT.mdก่อน”ใน
PROJECT.mdผมใส่แค่คำอธิบายโปรเจ็กต์ 2-3 บรรทัด, รายชื่อไฟล์ที่เกี่ยวข้องพร้อมคำอธิบายหนึ่งบรรทัด, ข้อควรระวัง, และข้อความสำหรับ LLM ว่า “ถ้าการเปลี่ยนแปลงนั้นคุ้มค่า ให้แก้ไฟล์นี้ด้วย จุดประสงค์ของไฟล์นี้คือทำให้เห็นภาพรวมคร่าวๆ ของโปรเจ็กต์ และถ้าจำเป็นค่อยไปสำรวจต่อจากตรงนั้น”ที่ทำงานผมเคยใช้ Augment Code มาก่อน ซึ่งมี Context Engine คล้าย MCP ที่ตอบคำถามภาษาธรรมชาติกับโค้ดที่ทำดัชนีไว้ล่วงหน้า
หลังจากนั้นย้ายมาใช้ Claude Code แต่แปลกตรงที่ทั้งที่มีเครื่องมืออ่านเป็นช่วงอยู่แล้ว มันกลับพยายามใช้
sedอ่านไฟล์จากช่วงบรรทัดที่มันจำได้เองผมไม่แน่ใจว่านั่นจะเรียกว่าเป็นเส้นทางที่ปรับเหมาะอย่างมากจริงหรือเปล่า
codebase-memory-mcpกับsembleไม่ได้เหมือนกันเป๊ะ แต่เป็นการเปรียบเทียบที่น่าสนใจ เลยจะเพิ่มไว้ในรายการงานที่ต้องตรวจสอบ และถ้าได้จะลองเพิ่มลงในเบนช์มาร์กด้วยถ้ามีโอกาสลองเทียบแบบเดียวกันกับ
sembleได้ น่าจะเป็นฟีดแบ็กที่มีประโยชน์มาก เพราะสถานการณ์ “ของจริง” แบบนี้เอาไปทำเบนช์มาร์กหรือทำซ้ำค่อนข้างยากน่าสนใจดี ผมก็ทำงานในด้านนี้อยู่เหมือนกัน แต่ใช้แนวทางต่างออกไป
แทนที่จะสร้างดัชนี ผมทำ grep ที่ฉลาดกว่าเดิม โดยเพิ่มการจัดอันดับและการรับรู้โครงสร้างโค้ดให้ทั้งกับ codebase และข้อความทั่วไป และเพราะใช้เวลาส่วนใหญ่ไปกับการแก้ปัญหาเรื่องประสิทธิภาพ มันเลยทำงานได้เร็วมาก
ควรเอาไปเพิ่มเป็นตัวเทียบกับ https://github.com/boyter/cs แล้วดูว่า LLM ชอบอะไรกับคำถามแบบที่ผมถาม
มันก็มี MCP เหมือนกัน แต่ไม่ได้สร้างดัชนีสำหรับการค้นหา และเพราะใช้การดัดแปลงเชิงความหมายของโค้ดแทน BM25 ปกติ เลยอยากรู้ว่าการจัดอันดับจะออกมาอย่างไร
เครื่องมือนี้ดูจะเหมาะกับคำถามอย่าง “การยืนยันตัวตนทำงานอย่างไร” มากกว่า ส่วน
csจะทำauthenticate --only-declarationsแล้วให้น้ำหนักผลลัพธ์ตามเนื้อหาไฟล์ คือพิจารณาว่าจุดที่แมตช์เป็นโค้ดหรือคอมเมนต์ และตามความซับซ้อนโดยรวมของไฟล์กดดาวไว้แล้ว เดี๋ยวจะติดตามต่อ
ผมรู้ว่าเครื่องมือนี้ทำมาเพื่อ AI แต่กลับสนใจจะเอามาใช้เองมากกว่า เวลาต้องสำรวจ codebase ใหม่หรือของตัวเอง
มันดูมีประโยชน์เวลาจะรีแฟกเตอร์อะไรสักอย่างแล้วอยากเห็น ภาพรวมทั้งหมด ว่าต้องไปแก้ตรงไหนบ้าง
LSP ก็ช่วยทำเรื่องแบบนี้ได้ แต่เครื่องมือนี้ดูเหมือนจะไปได้ไกลกว่าอีกขั้น
ผมลองประเมินอยู่บ้างกับ Pi และ GPT 5.5
ทดสอบทั้ง RTK เปิด / headroom เปิด / เปิดทั้งคู่ / ปิดทั้งคู่ โดยทุกกรณีใช้ system instruction มาตรฐานของ Pi และไม่มี
AGENTS.mdจำไม่ได้แล้วว่าทดสอบอะไรเป๊ะๆ แต่เป็นชุดประเมินเอเจนต์มาตรฐานที่คนใช้กัน มีทั้ง Python ซึ่งเป็นภาษาที่ผมใช้ และ TypeScript อีกหนึ่งชุด
ผมไม่ได้อ้างว่านี่เป็นการทดสอบที่เข้มงวดหรือดีมากนะ ถ้าใช้เวลาสักวันปรับ
AGENTS.mdกับ system prompt และ tool instruction ของ Pi ก็น่าจะได้ผลลัพธ์ที่ดีกว่านี้ สิ่งหนึ่งที่ผมเรียนรู้จากการรันประเมินคือรายละเอียดเล็กๆ แบบนี้เปลี่ยนผลลัพธ์ได้มากแต่กรณีที่ ปิดทั้งคู่ กลับดีกว่าอย่างชัดเจน จนผมหยุดทดสอบหลังจบ 3 รอบได้เลย
ปัญหาคือแม้บางครั้งการใช้คอนเท็กซ์จะลดลง แต่จำนวนเทิร์นจนจบงานเพิ่มขึ้น ทำให้ต้นทุนรวมของบทสนทนาสูงกว่าเดิม
มันทำให้ผมตระหนักมากขึ้นว่าคนแชร์เครื่องมือแบบนี้กันเยอะมาก แต่กลับไม่มีการประเมินเลย หรือไม่ก็ยากจนน่าสงสัยว่าจะทำซ้ำได้ หรืออย่างในกรณีนี้คือทำเบนช์มาร์กเยอะมากแต่กลับ วัดผิดอย่าง
เครื่องมือนี้อาจใช้โทเค็นน้อยกว่า
grepจริง และเบนช์มาร์กก็พิสูจน์เรื่องนั้น แต่ประเด็นสำคัญไม่ใช่ตรงนั้น ประเด็นคือเอเจนต์ใช้เครื่องมือนี้แล้วทำงานคุณภาพเท่าเดิมได้เร็วขึ้นและถูกลงหรือไม่ไม่ใช่แค่ปัญหาของเครื่องมือนี้ แต่เป็นปัญหาของทุกอย่างที่เอา AI ไปต่อกับ codebase หรือ workflow การพัฒนา
ก่อนมี AI เองก็ไม่มีเทสต์สำหรับวัดว่า “สิ่งนี้ทำให้พัฒนาได้เร็วและดีขึ้นแค่ไหน” อยู่แล้ว และตอนนี้ก็ยังไม่ได้เพิ่มเข้าไป
ผมอยากเห็น agent benchmark ของจริง เช่น เอา
grepออกจาก Claude Code หรือ Copilot CLI แล้วใส่เครื่องมือนี้แทนผมดู RTK กับ LSP หลายตัวมาแล้ว และโมเดลมันถูก reinforcement กับ
grepแรงเกินไป จนไม่ไว้ใจผลลัพธ์ในรูปแบบอื่น แล้วชอบลองใหม่หรืออ่านซ้ำเพราะโมเดลไม่เชื่อผลจากเครื่องมืออื่น การประหยัดโทเค็นเลยหายไปหมด
CLAUDE.mdแบบ global (~/.Claude) ให้ใช้ LSP แทนgrepแล้วหลังจากนั้นปัญหานี้ก็หายไปแต่สิ่งที่น่ารำคาญคือเวลามันไม่รองรับ CLI flag บางอย่างของ
findมันจะขึ้นข้อความผิดพลาดแทนที่จะส่งผลลัพธ์เต็มของคำสั่งกลับมาพอเป็นแบบนั้นเอเจนต์ก็เสียโทเค็นไปกับการลองใหม่ หรือแย่กว่านั้นคือโดนพรอมป์ต์ขู่จนกลัวว่าไม่ควรรันคำสั่งถ้าไม่มี RTK แล้วก็ไม่ลองเลย
แม้จะเป็นเพียงหลักฐานเชิงประสบการณ์ แต่เราก็ใช้เครื่องมือนี้เองด้วย และจนถึงตอนนี้มันทำงานได้ค่อนข้างดี
โมเดลของ Anthropic ดูเหมือนจะเรียกใช้เครื่องมือนี้และเชื่อผลลัพธ์ที่ได้
อย่าวัดแค่เอาต์พุตจากการค้นหา ต้องวัด ลูปของเอเจนต์ทั้งระบบ
grepมักช้าเกินไป ให้ใช้rgแทน แต่พอเพิ่ม RTK เข้าไป มันกลับใช้grepผ่าน RTK ซึ่งน่าหงุดหงิดอยู่บ้างไอเดียดูดี เลยลองเล่นนิดหน่อย
ผมทดสอบบนรีโพ
browsercode(https://github.com/browser-use/browsercode) และใช้พรอมป์ต์ว่า “ให้ใช้เฉพาะsembleCLI แล้วตอบว่า Browsercode มีเครื่องมืออะไรให้เอเจนต์นอกเหนือจากเครื่องมือ OpenCode พื้นฐาน อธิบาย schema ของ input/output ของเครื่องมือให้ถูกต้อง และสรุปสั้นๆ ว่ามันทำอะไรและทำงานอย่างไร”ผมแปะชิ้นส่วน
AGENTS.mdจาก https://github.com/MinishLab/semble#bash-integration ลงไปด้วยสำหรับการทดสอบที่ไม่ใช้ Semble ผมเปลี่ยนคำถามให้ใช้แค่
rgกับfdCLIทั้งสองกรณีใช้ Pi กับ gpt-5.4 medium และตั้งค่าอื่นๆ แบบน้อยที่สุด ผมยังเช็กด้วยว่าเคสหนึ่งใช้แค่
rgกับfdส่วนอีกเคสใช้แค่sembleจริงๆถ้าไม่ใช้ Semble โมเดลใช้คอนเท็กซ์ 10.9% และใช้ API credit $0.144 ส่วนตอนใช้ Semble ใช้ 9.8% และ $0.172
คำตอบที่ได้ก็แทบจะเหมือนกัน ถือว่าใกล้มาก
ผมทดสอบอีกรอบกับรีโพ OpenCode โดยคำถามคือ “ติดตามเส้นทางตั้งแต่จุดที่ตัวแปรแวดล้อม
OPENCODE_EXPERIMENTAL_EXAถูกตั้งเป็น 1 ไปจนถึงผลที่ปรากฏใน system prompt หรือเครื่องมือที่มอบให้กับ OpenCode agent”ผมใส่คำสั่งและเอกสารแบบเดียวกับด้านบน
เวอร์ชันที่ไม่ใช้ Semble ละเอียดกว่านิดหน่อย และยังพูดถึงด้วยว่าเส้นทางเรียกเครื่องมือจะไปเรียก Exa หรือไม่ ขึ้นอยู่กับว่าเปิด Exa หรือ Parallel เป็น web search provider หรือเปล่า แต่คำตอบต่อคำถามจริงนั้นทั้งสองเวอร์ชันถูกต้อง
เวอร์ชัน Semble ใช้คอนเท็กซ์ 14.7% / ค่า API $0.282 ส่วนเวอร์ชันไม่ใช้ Semble ใช้ 19.0% / $0.352
ในแง่ประสิทธิภาพของคอนเท็กซ์ Semble ชนะชัดเจน แต่ก็น่าสังเกตว่าเวอร์ชันไม่ใช้ Semble จบเร็วกว่าเกือบสองเท่า
แน่นอนว่านี่เป็นแค่การลองเล่นของผมเอง ผลลัพธ์อาจต่างออกไปได้
คำกล่าวที่ว่า “ใช้โทเค็นน้อยกว่า
grep98%” นี่หมายถึงให้เชื่อว่าgrepสิ้นเปลืองมากจนโมเดลต้องอ่านขยะไร้ประโยชน์ 98% ทุกครั้งเลยหรือ?ผมรู้สึกว่าคำอ้างนี้อาจไม่เป็นตัวแทนของภาพรวม หรือไม่ก็มีอย่างอื่นที่หายไประหว่างทางเวลาคัดทิ้งคอนเท็กซ์ส่วนใหญ่ก่อนจะส่งให้โมเดล
grepแต่เทียบกับ ลูป grep+readเวลาเอเจนต์เจอ codebase ที่ไม่คุ้น มันมักจะเริ่มจาก
cat fileหรืออ่านไฟล์ทั้งไฟล์ อย่างน้อยในประสบการณ์ของผมก็เป็นแบบนั้นถ้าคุณทำให้เอเจนต์ใช้แค่
grep -C Nแล้วหยุดได้อย่างสม่ำเสมอ ผมอยากรู้การตั้งค่ามาก เพราะผมคิดว่าคุณภาพของผลลัพธ์จากแบบนั้นต่ำเกินกว่าจะใช้เป็นคอนเท็กซ์ที่มีประโยชน์node_modulesripgrepช่วยได้ ดังนั้นการเพิ่มบรรทัดหนึ่งในไฟล์ความจำให้มันใช้ก็ดูสมเหตุสมผลgrepจะแสดงทุกบรรทัดที่แมตช์ถ้า LLM ค้นหาอะไรสักอย่าง มันอาจมีสัญญาณรบกวนเยอะ และอาจต้องค้นหาแบบนั้นเพราะยังระบุสิ่งที่ต้องการให้เฉพาะเจาะจงไม่ได้
การค้นหาแบบมุ่งเป้าไปที่เป้าหมาย สามารถลดจำนวนโทเค็นได้
แต่การเปรียบเทียบนี้ดูเหมือนจะเทียบระหว่างการได้เฉพาะส่วนที่จำเป็นกับการอ่านทั้ง codebase
ขอให้ฟีดแบ็กหน่อยว่า codex-cli ค้างเวลามันเรียกตัวนี้ผ่าน MCP
โปรเซส
sembleเองก็ค้างเป็นซอมบี้อยู่แบบนั้นไม่จบ ไม่รู้เพราะอะไร และในล็อกก็ไม่มีอะไรเลยถ้าเรียกผ่านสกิลแบบ CLI, GPT 5.5 จะพยายามยิงคำค้นหาไปที่
ripgrepเยอะมาก เหมือนมันคุ้นกับripgrepอยู่แล้วผมไม่แน่ใจว่าวิธีนี้มีประสิทธิภาพแค่ไหน และจากเอกสารสั้นๆ บน GitHub กับคำสั่งสำหรับเอเจนต์ก็ยังไม่ชัดว่าอะไรคือแนวทางที่ดีที่สุด
อีกอย่าง ตอนติดตั้งสำหรับ bash ผมก็เจอข้อผิดพลาดเกี่ยวกับการเชื่อมต่อภายนอก GitHub อยู่หลายครั้ง ไม่รู้ว่าเกี่ยวกับอาการค้างหรือเปล่า
เพิ่มเติมคือเอเจนต์ของผมยังพยายามใช้
ripgrepต่อด้วย เลยดูซ้ำซ้อน เหมือนมันมีปัญหาเรื่องความเชื่อใจถ้ามี คำอธิบายสกิลสำหรับเอเจนต์ ที่ละเอียดขึ้น ก็น่าจะช่วยชี้นำเอเจนต์ให้ใช้ได้ถูกทาง
เรื่องบั๊ก ถ้าช่วยเปิด issue พร้อมรายละเอียดการตั้งค่าได้จะดีมาก เราอยากสืบและแก้เรื่องนี้แน่นอน
ปัญหาการยิงหลายคำค้นหาก็เป็นฟีดแบ็กที่ดีมากเช่นกัน เราจะลองอัปเดตพรอมป์ต์กับคำสั่ง และเพิ่มเทสต์ที่เกี่ยวข้องเพื่อไม่ให้เกิดแบบนี้
ส่วนข้อผิดพลาดการเชื่อมต่อภายนอกระหว่างติดตั้ง น่าจะมาจาก
uvไปดึง dependency จาก PyPI และคงไม่ใช่สาเหตุของอาการค้างไอเดียดูดี
ขอเสริมปัญหาที่เกี่ยวข้องอีกอย่างคือ ใน codebase เล็กๆ Claude บางครั้งสามารถใส่ทั้ง codebase เข้าไปในคอนเท็กซ์ทีเดียวแล้วจัดการได้ด้วยโทเค็นน้อยมากอยู่แล้ว แต่กลับใช้เวลาเยอะไปกับการค้นหาสิ่งต่างๆ
วิธีเลี่ยงที่ใช้ได้ดีคือใส่ทั้งไดเรกทอรีเข้าไปในคอนเท็กซ์ตั้งแต่ start hook
แบบนั้น Claude จะข้ามช่วง “คลำทางในความมืด” ทุกครั้งที่เริ่มงานไปได้
ผมเคยเห็นโปรเจ็กต์ดีๆ ตัวหนึ่งที่ให้ภาพรวมแบบมีสตับสำหรับรีโพขนาดใหญ่กับโมเดลด้วย แต่จำชื่อไม่ได้แล้ว
แต่ถ้าเป็น codebase เล็ก สิ่งที่อยากหาก็มักจะหาได้ง่ายด้วย ดังนั้นการค้นหาก็ยังช่วยลดต้นทุนได้อยู่
ปัญหาที่ใหญ่กว่าของวิธีแก้แบบนี้คือ AI ส่วนใหญ่ทุกวันนี้ใช้
grepและการค้นหาได้เก่งมากอยู่แล้วเพราะผ่านการฝึกมาถ้าคุณยื่นเครื่องมือใหม่ให้ AI เครื่องมือนั้นจะไปดึงเอา ความสามารถในการรับรู้ ของ AI ออกไปบางส่วน
มนุษย์มักจะ “เรียนรู้” วิธีใช้เครื่องมือแบบนั้นได้ แต่การเรียนรู้ของ LLM ถูกตรึงไว้แล้ว และมันมีความชำนาญลึกมากกับเครื่องมือเดิมอย่าง
grepอยู่ก่อนแล้วตัวอย่างเช่น AI รู้วิธีใช้คำสั่ง Linux อย่าง
treeเพื่อสำรวจ codebase อยู่แล้ว และมันก็ถูกฝึกกับสิ่งนี้มาดีพอปัญหาอีกอย่างคือ การสร้างตัวอย่างที่แสดงให้เห็นว่าเครื่องมือแบบนี้มีประโยชน์ทำได้ง่าย แต่การพิสูจน์จริงๆ ว่าการเสียความสามารถเชิงรับรู้ที่เครื่องมือเหล่านี้ก่อขึ้นจะถูกชดเชยด้วยประโยชน์ในงานระยะยาวนั้นทำได้ยาก
สัญชาตญาณแรกของผมคือ ในงานระยะยาว สติปัญญาที่นำไปใช้งานได้จริง น่าจะลดลงสุทธิ ทำให้เอเจนต์แย่กว่าตอนใช้เครื่องมือเดิม
การพิสูจน์ว่าเป็นตรงกันข้ามไม่ใช่เรื่องง่าย แต่ก็อาจเป็นโจทย์ที่น่าลองอยู่เหมือนกัน