Tokenectomy Razor
ทางการเซิร์ฟเวอร์ MCP ที่ใช้ Rust ซึ่งรวดเร็วและมีน้ำหนักเบา ออกแบบมาเพื่อปรับแต่งเพย์โหลดของพรอมป์ต์และลดค่าใช้จ่ายของโทเค็นสำหรับ LLM
คุณทำอะไรได้บ้างด้วย Tokenectomy Razor MCP?
- ทำความสะอาดบันทึกข้อผิดพลาด — ขอให้ลบสัญญาณรบกวนจากเฟรมเวิร์กและปกปิดข้อมูลรับรองจากสแตกเทรซด้วย
get_error_contextโดยส่งคืนเฉพาะซอร์สโค้ดท้องถิ่นที่เกี่ยวข้องเท่านั้น - ค้นหาวิธีแก้ไขที่รู้จัก — ให้ผู้ช่วยสอบถาม Stack Exchange ผ่าน
search_stack_overflowโดยใช้ลายเซ็นข้อผิดพลาดที่ทำความสะอาดแล้วเพื่อค้นหาวิธีแก้ไขที่เกี่ยวข้อง - ใช้แพตช์โค้ดที่ตรวจสอบแล้ว — ขอให้แก้ไขไฟล์แบบอะตอมมิกด้วย
apply_code_patchซึ่งจะรันการตรวจสอบไวยากรณ์และย้อนกลับโดยอัตโนมัติเมื่อเกิดความล้มเหลว - ตรวจจับข้อบกพร่องของโค้ด — ใช้
analyze_codeสำหรับการวิเคราะห์ AST แบบคงที่เพื่อค้นหาการรั่วไหลของทรัพยากร ปัญหาความปลอดภัย และบั๊กด้วยพิกัด LSP ที่แม่นยำ - รันพร็อกซีการปกปิดข้อมูลในเครื่อง — กำหนดค่าโหมด
--proxyเพื่อสกัดกั้นและทำความสะอาดทราฟฟิก API ของ LLM บน localhost ก่อนส่งต่อต้นทาง
เอกสาร
Tokenectomy Razor
การผ่าตัดล็อกและปกปิดความลับที่รวดเร็วและกำหนดผลลัพธ์ได้แน่นอนสำหรับเอเจนต์เขียนโค้ด AI — ลดสัญญาณรบกวนจากเฟรมเวิร์กได้ 90%+ ปกปิดข้อมูลรับรองด้วยภูมิคุ้มกัน ReDoS แบบ O(N) เวลาแฝงต่ำกว่า 1 มิลลิวินาที เขียนด้วยภาษา Rust ที่ปลอดภัย
Tokenectomy (คำนาม): token + -ectomy (การผ่าตัดเอาออก) — การตัดทอนโทเค็นที่สิ้นเปลืองออกจากบริบทของ LLM อย่างแม่นยำ
เอนจินผ่าตัดล็อกประสิทธิภาพสูงและการปกปิดความลับสำหรับเอเจนต์เขียนโค้ด AI
- ทะเบียน MCP อย่างเป็นทางการ:
mcp-name: io.github.Tokenectomy-Labs/razor
📋 สารบัญ
- มันทำอะไร
- คุณสมบัติหลัก
- เกณฑ์วัดประสิทธิภาพ
- การติดตั้ง
- การผสานรวม MCP
- การใช้งานตามกรณี
- คุณสมบัติขั้นสูง
- การเปรียบเทียบ
- คำถามที่พบบ่อย
- โรดแมป
- ความปลอดภัย
- การมีส่วนร่วม
มันทำอะไร
Tokenectomy Razor เป็นเซิร์ฟเวอร์ Model Context Protocol (MCP) แบบอัตโนมัติแบบเครื่องต่อเครื่อง (M2M) และเอนจินประมวลผลสตรีมที่เขียนด้วยภาษา Rust ที่ปลอดภัย มันสกัดกั้นล็อกข้อผิดพลาดจากเอเจนต์ AI ลดสัญญาณรบกวนจากเฟรมเวิร์กได้ 90%+ ปกปิดความลับโดยอัตโนมัติ (JWT, คีย์ API, ข้อมูลรับรองฐานข้อมูล) และแคชบริบทที่ผ่านการทำความสะอาดแล้วด้วย TTL 24 ชั่วโมง—ทั้งหมดโดยไม่ส่งข้อมูลดิบไปยังบริการภายนอก
ใน 30 วินาที
ปัญหา:
- เอเจนต์ AI สิ้นเปลืองโทเค็นกับสัญญาณรบกวนจากเฟรมเวิร์ก (
node_modules,site-packages,.cargo/registry) - ข้อมูลรับรองที่ละเอียดอ่อนรั่วไหลเข้าไปในล็อก LLM โดยไม่ตั้งใจ (คีย์ AWS, URL ฐานข้อมูล, โทเค็น API)
- ข้อผิดพลาดซ้ำๆ ที่เหมือนกันทำให้เสียเงินทุกครั้งที่ลองใหม่
วิธีแก้ไข:
Raw Error Log (38K tokens + secrets)
↓
[Redact secrets locally] → [Filter framework frames] → [Extract user code]
↓
Sanitized Context (2K tokens, no secrets) → Safe to send to LLM
ตัวอย่างจริง
ก่อน:
$ cat error.log | head -20
Error in /home/user/.cargo/registry/src-xxx/tokio-1.35/src/runtime/mod.rs:12345
at /home/user/.cargo/registry/src-yyy/serde/src/lib.rs:456
Database connection failed: postgresql://admin:secretpass@db.example.com:5432/mydb
JWT Auth token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0...
[... 500+ more framework frames ...]
หลัง:
$ cat error.log | razor --scrub
Error in /home/user/src/main.rs:42
at /home/user/src/utils.rs:18
Database connection failed: [CONNECTION_STRING_REDACTED]
JWT Auth token: [JWT_REDACTED]
ประโยชน์:
- ✅ บริบทเล็กลง 95% (2K เทียบกับ 38K โทเค็น) → ประหยัดเงินค่าเรียก API ของ LLM
- ✅ ไม่มีความลับในล็อก → นอนหลับสบายขึ้น
- ✅ ข้อผิดพลาดที่เหมือนกันถูกแคช → การลองครั้งที่สองเสียค่าใช้จ่าย $0
จุดเด่นทางเทคนิค
┌──────────────────────────────────────────────┐
Agent Error │ TOKENECTOMY RAZOR │ Sanitized Context
Dump (38K toks) │ - Polyglot Stack Frame Filter │ ──► (2K toks) ──► LLM
────────────────►│ - Deterministic Secret Redactor (O(N)) │
│ - SHA-256 Idempotency Cache (24h TTL) │
└──────────────────────────────────────────────┘
- การผ่าตัดร่องรอยหลายภาษาเชิงลึก: การแยกวิเคราะห์ในหน่วยความจำครอบคลุม Rust, Python, TypeScript/JavaScript, Go, Java/Kotlin (Spring Boot 3, Tomcat, Hibernate, Netty, Undertow, HikariCP), C/C++ (AddressSanitizer, GDB, glibc) และ PHP กรองรายละเอียดภายในเฟรมเวิร์กและส่วนประกอบรันไทม์ที่ก่อให้เกิดสัญญาณรบกวนอย่างแม่นยำ พร้อมแยกเฟรมโค้ดแอปพลิเคชันจริงของผู้ใช้
- เอนจินวิเคราะห์โค้ด AST แบบคงที่ (
analyze_code): การวิเคราะห์ AST แบบคงที่ปริมาณงานสูงเพื่อตรวจจับแฮนเดิลที่ไม่ปิด การรั่วไหลของทรัพยากร และช่องโหว่ด้านความปลอดภัย ด้วยขีดจำกัดการทำงานที่กำหนด (โหนด AST 50K, ขีดจำกัดไฟล์ 10 MB) และพิกัด LSP UTF-16 ที่แม่นยำ - การปฏิบัติตาม TDQS ระดับ A ของ Glama: คะแนนคุณภาพนิยามเครื่องมือ 100% พร้อมขอบเขตสคีมาที่ชัดเจน เงื่อนไขก่อนรันไทม์ และการเปิดเผยข้อมูลครบถ้วนในเครื่องมือ MCP ทั้งหมด
- พร็อกซีรีเวิร์สเกตเวย์ AI (
--proxy): สกัดกั้นสตรีมพรอมต์แบบโปร่งใสบน127.0.0.1:8080ทำการตัดทอนโทเค็นและปกปิดข้อมูลรับรองแบบเรียลไทม์ก่อนส่งต่อต้นทางไปยัง OpenAI, Anthropic หรือ Ollama - การปกปิดความลับแบบ Zero-Knowledge: เอนจิน regex แบบกำหนดผลลัพธ์ได้เชิงเส้นเวลาจะลบ JWT, โทเค็น API, คีย์เข้าถึงคลาวด์, สตริงการเชื่อมต่อ และคีย์ส่วนตัวก่อนส่งผ่านเครือข่าย การประมวลผลทั้งหมดเกิดขึ้นในเครื่อง
- แคช Idempotency SHA-256: จัดเก็บผลลัพธ์ที่กำหนดได้ด้วย TTL 24 ชั่วโมง ความล้มเหลวซ้ำๆ ใน CI/CD หรือลูปเอเจนต์จะไม่ก่อให้เกิดค่าใช้จ่าย API ต้นทางใดๆ
- การจำกัดการข้ามเส้นทาง: การเข้าถึงระบบไฟล์ MCP ทั้งหมดถูกทำให้เป็นรูปแบบมาตรฐานและล็อกไว้ที่ขอบเขตโฟลเดอร์รากของเวิร์กสเปซ (
CWD) ไม่มีการหลบหนี../หรือการเจาะผ่าน symlink - การปฏิบัติตามโปรโตคอล M2M: เซิร์ฟเวอร์ stdio JSON-RPC 2.0 ดั้งเดิมที่ปฏิบัติตามข้อกำหนดโปรโตคอล Model Context Protocol อย่างเป็นทางการ
เกณฑ์วัดประสิทธิภาพที่ตรวจสอบได้
ตัวชี้วัดประสิทธิภาพอ้างอิงจากฮาร์ดแวร์จริงและสามารถทำซ้ำได้ผ่านชุดเกณฑ์วัดแบบสแตนด์อโลน:
| เป้าหมายเกณฑ์วัด | ภาระงานที่ทดสอบ | การวัดที่ตรวจสอบแล้ว | ผลลัพธ์ |
|---|---|---|---|
| การปกปิดล็อกปริมาณสูง | 250,000 บรรทัด (24.44 MB) ดัมป์ระดับองค์กรที่มีคีย์ API และ URI การเชื่อมต่อ | 333.49 มิลลิวินาที (73.3 MB/วินาที, 749,652 บรรทัด/วินาที) | ผ่าน |
| ความต้านทาน ReDoS | สตริงการย้อนรอยทางพยาธิวิทยา 50,000 ตัวอักษร | 1.44 มิลลิวินาที (การประเมินเชิงเส้น $O(N)$) | ผ่าน |
| การทำงานพร้อมกันของเธรด | 100 เธรด OS พร้อมกันทำงานปกปิดและแยกข้อมูลพร้อมกัน | 100/100 เสร็จใน 27.35 มิลลิวินาที (7,312 การดำเนินการ/วินาที) | ผ่าน |
| รอยเท้าหน่วยความจำเคอร์เนล | หน่วยความจำสูงสุดระหว่างการทดสอบความเครียดต่อเนื่อง 250,000 บรรทัด | 76.24 MB VmRSS ผ่าน /proc/self/status | ผ่าน |
ทำความเข้าใจเกณฑ์วัด
| ตัวชี้วัด | ทำไมจึงสำคัญ | สิ่งที่คาดหวัง |
|---|---|---|
| ปริมาณงานปกปิด 73.3 MB/วินาที | ล็อกส่วนใหญ่มีขนาด <5MB; คุณจะปกปิดได้ในหน่วยมิลลิวินาที | <10 มิลลิวินาทีสำหรับล็อก CI ทั่วไป |
| ภูมิคุ้มกัน ReDoS 1.44 มิลลิวินาที | ป้องกันเพย์โหลดล็อกที่เป็นอันตรายจากการโจมตี DoS ระบบของคุณ | ปลอดภัยสำหรับการใช้งานในโปรดักชันกับอินพุตที่ไม่น่าเชื่อถือ |
| หน่วยความจำสูงสุด 76.24 MB | เหมาะสำหรับรันเนอร์ CI/CD ที่มีข้อจำกัด (GitHub Actions, GitLab) | อยู่ในขีดจำกัด 256MB ได้อย่างสบาย |
| 7,312 การดำเนินการ/วินาทีพร้อมกัน | เอเจนต์ AI หลายตัวสอบถามพร้อมกัน | จัดการคำขอพร้อมกัน 100 รายการได้อย่างปลอดภัย |
ทำซ้ำในเครื่อง:
cargo test --release --test stress_benchmark -- --nocapture
การติดตั้ง
วิธีที่ 1: ทันทีผ่าน npx (แนะนำสำหรับไคลเอนต์ MCP)
ไม่ต้องใช้ชุดเครื่องมือ Rust การคอมไพล์แบบเนทีฟ หรือการตั้งค่าเส้นทางด้วยตนเอง:
npx -y tokenectomy-razor --mcp
หรือติดตั้งแบบโกลบอลผ่าน npm:
npm install -g tokenectomy-razor
วิธีที่ 2: Cargo (crates.io)
cargo install tokenectomy
วิธีที่ 3: ไบนารีเนทีฟที่คอมไพล์ล่วงหน้า (GitHub Releases)
ดาวน์โหลดไบนารีสแตนด์อโลนที่คอมไพล์ล่วงหน้าแบบไม่พึ่งพาใดๆ ได้โดยตรงจาก GitHub Releases:
- Linux:
tokenectomy-linux-x86_64(glibc),tokenectomy-linux-x86_64-musl,tokenectomy-linux-aarch64 - macOS:
tokenectomy-darwin-arm64(Apple Silicon M1/M2/M3/M4),tokenectomy-darwin-x86_64(Intel) - Windows:
tokenectomy-windows-x86_64.exe
วิธีที่ 4: สร้างจากซอร์ส
git clone https://github.com/Tokenectomy-Labs/Tokenectomy.git
cd Tokenectomy
cargo build --release
sudo cp target/release/razor /usr/local/bin/razor
วิธีที่ 5: คอนเทนเนอร์หลายสถาปัตยกรรม (GHCR)
docker pull ghcr.io/tokenectomy-labs/razor:latest
docker run -it ghcr.io/tokenectomy-labs/razor:latest --help
การผสานรวม Model Context Protocol (MCP)
กำหนดค่า Tokenectomy Razor เป็นเซิร์ฟเวอร์เบื้องหลังอัตโนมัติในสภาพแวดล้อมเอเจนต์ AI หลัก:
Claude Desktop
เพิ่มใน ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) หรือ %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"tokenectomy": {
"command": "npx",
"args": ["-y", "tokenectomy-razor", "--mcp"]
}
}
}
Cursor
เพิ่มใน .cursor/mcp.json ในโฟลเดอร์รากของโปรเจกต์ของคุณ:
{
"mcpServers": {
"tokenectomy": {
"command": "npx",
"args": ["-y", "tokenectomy-razor", "--mcp"]
}
}
}
VS Code (MCP ดั้งเดิม / GitHub Copilot Agent / Continue)
สำหรับ VS Code ที่รองรับ MCP ดั้งเดิม ให้สร้างหรือแก้ไข .vscode/mcp.json ในเวิร์กสเปซของคุณ:
{
"mcpServers": {
"tokenectomy": {
"command": "npx",
"args": ["-y", "tokenectomy-razor", "--mcp"]
}
}
}
หรือใช้ไบนารีเนทีฟเวลาแฝงต่ำพิเศษ (หากติดตั้งผ่าน cargo install tokenectomy):
{
"mcpServers": {
"tokenectomy": {
"command": "razor",
"args": ["--mcp"]
}
}
}
VS Code + Cline
เปิดการตั้งค่า Cline ใน VS Code (หรือแก้ไข cline_mcp_settings.json):
- macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
{
"mcpServers": {
"tokenectomy": {
"command": "npx",
"args": ["-y", "tokenectomy-razor", "--mcp"],
"disabled": false,
"autoApprove": [
"get_error_context",
"search_stack_overflow",
"analyze_code"
]
}
}
}
VS Code + Roo Code
ในการตั้งค่า Roo Code (หรือแก้ไข cline_mcp_settings.json ในพื้นที่จัดเก็บ Roo):
- Linux:
~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json - macOS:
~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
{
"mcpServers": {
"tokenectomy": {
"command": "npx",
"args": ["-y", "tokenectomy-razor", "--mcp"],
"disabled": false,
"autoApprove": ["get_error_context", "analyze_code"]
}
}
}
Windsurf (Codeium)
เพิ่มใน ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"tokenectomy": {
"command": "npx",
"args": ["-y", "tokenectomy-razor", "--mcp"]
}
}
}
Google Antigravity CLI
agy mcp add tokenectomy-razor -- npx -y tokenectomy-razor --mcp
เครื่องมือ MCP ที่เปิดเผย
| ชื่อเครื่องมือ | คำอธิบายความสามารถ |
|---|---|
get_error_context | ดำเนินการผ่าตัดร่องรอยบนดัมป์ข้อผิดพลาด ลบสัญญาณรบกวนจากเฟรมเวิร์ก ปกปิดข้อมูลรับรอง และแยกบริบทซอร์สในเครื่องที่เกี่ยวข้องซึ่งจำกัดอยู่ในเวิร์กสเปซ |
search_stack_overflow | สอบถาม Stack Exchange API สำหรับลายเซ็นข้อผิดพลาดที่เกี่ยวข้องโดยใช้คำค้นหาที่ผ่านการทำความสะอาด |
apply_code_patch | ใช้การแก้ไขไฟล์แบบอะตอมมิกพร้อมการตรวจสอบไวยากรณ์ภาษาหลังการเขียน (cargo check, py_compile, node --check) และการย้อนกลับอัตโนมัติเมื่อการตรวจสอบล้มเหลว |
analyze_code | ดำเนินการวิเคราะห์โค้ด AST แบบคงที่เพื่อตรวจจับการรั่วไหลของทรัพยากร ช่องโหว่ด้านความปลอดภัย และข้อบกพร่องของโค้ด ด้วยขีดจำกัดการทำงานที่กำหนดและพิกัด LSP UTF-16 ที่แม่นยำ |
เริ่มต้นใช้งานอย่างรวดเร็ว
ฉันใช้ Claude Desktop
# 1. Add to claude_desktop_config.json (see MCP Integration section above)
# 2. When Claude encounters errors, it automatically uses "get_error_context" tool
# 3. Errors stay sanitized without any additional setup
ฉันใช้ GitHub Actions
# Add to your workflow (.github/workflows/build.yml)
- name: Sanitize Build Failure Log
if: failure()
uses: daffa2555/tokenectomy-action@v1
with:
log-file: 'build.log'
output-file: 'sanitized.log'
# Now you can safely share sanitized.log without leak concerns
พารามิเตอร์:
| พารามิเตอร์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
log-file | String | '' | เส้นทางไปยังไฟล์ล็อกข้อผิดพลาดดิบที่จะประมวลผล |
log-content | String | '' | เนื้อหาสตริงโดยตรงหากไม่ได้ระบุไฟล์ |
output-file | String | tokenectomy-sanitized.log | เส้นทางสำหรับไฟล์เอาต์พุตที่ผ่านการทำความสะอาด |
version | String | v1.2.1 | เวอร์ชันเป้าหมายของรีลีสไบนารี |
ฉันต้องการความเป็นส่วนตัวสูงสุด (สภาพแวดล้อมแบบตัดขาดจากเครือข่าย)
# All redaction happens locally—no network calls except to your LLM
cargo install tokenectomy
# Process logs without any cloud services
echo $ERROR_LOG | razor --scrub --local-only
# Or from a file:
razor --scrub --file /var/log/app/error.log > sanitized.log
การใช้งานขั้นสูง
CLI แบบสแตนด์อโลน
นอกเหนือจากโหมดเอเจนต์ M2M แล้ว Razor ยังมีคำสั่ง CLI สำหรับการไพพ์เทอร์มินัลและการเขียนสคริปต์เชลล์ในเครื่อง:
# Scrub framework frames and output clean log
npm test 2>&1 | razor --scrub > sanitized.log
# Sanitize a specific log file
razor --scrub --file /var/log/app/error.log > sanitized.log
# CLI diagnosis with specific AI provider
razor --file error.log --provider openai
razor --file error.log --provider anthropic
razor --file error.log --local-only
โหมดพร็อกซีรีเวิร์สเกตเวย์ AI
Tokenectomy Razor สามารถทำงานเป็นพร็อกซีรีเวิร์ส HTTP ในเครื่องแบบโปร่งใส มันอยู่ระหว่างแอปพลิเคชันไคลเอนต์และผู้ให้บริการ LLM ต้นทาง (OpenAI, Anthropic, Ollama, OpenRouter) ดำเนินการตัดทอนโทเค็นและปกปิดข้อมูลรับรองแบบเรียลไทม์ก่อนส่งต่อต้นทาง
การพัฒนาท้องถิ่น (Loopback เริ่มต้น):
# Forward to OpenAI
razor --proxy --proxy-bind 127.0.0.1:8080 --upstream-url https://api.openai.com/v1
# Forward to local Ollama instance
razor --proxy --proxy-bind 127.0.0.1:8080 --upstream-url http://127.0.0.1:11434/v1
ชี้ไคลเอนต์ SDK หรือ IDE มาตรฐานใดๆ ไปที่พร็อกซีในเครื่อง:
export OPENAI_BASE_URL="http://127.0.0.1:8080/v1"
# Now all API calls are automatically sanitized
การเสริมความแข็งแกร่งของพร็อกซีในโปรดักชัน
การผูกกับอินเทอร์เฟซภายนอก (0.0.0.0) ต้องได้รับอนุญาตโทเค็นอย่างชัดเจน:
razor --proxy --proxy-bind 0.0.0.0:8080 --upstream-url https://api.openai.com/v1 --allow-remote --proxy-token "YOUR_SECURE_TOKEN"
ขีดจำกัดทรัพยากรที่บังคับใช้: MAX_HEADER_SIZE (64 KB), MAX_BODY_SIZE (10 MB), ไทม์เอาต์ไคลเอนต์/ต้นทาง (30 วินาที / 60 วินาที) และขีดจำกัดการทำงานพร้อมกัน 128 การเชื่อมต่อ
การกำหนดค่า
ค่ากำหนดสามารถตั้งค่าได้ผ่าน ~/.tokenectomy.toml:
default_provider = "openai" # openai | anthropic | ollama | mock
openai_api_key = "sk-..."
anthropic_api_key = "sk-ant-..."
ollama_base_url = "http://localhost:11434"
context_lines = 10
max_context_chars = 10000
ระบบนิเวศที่รองรับ
| ภาษา | เฟรมเวิร์กหลัก | เส้นทางเฟรมเวิร์กที่แยกออก |
|---|---|---|
| Rust | Tokio, Actix-web, Axum | .cargo/registry, .rustup, target/debug/build |
| Python | Django, FastAPI, Flask, PyTorch | site-packages, dist-packages, venv, __pycache__ |
| TypeScript / JavaScript | Next.js, Express, NestJS, Vite | node_modules, .next, dist, รายละเอียดภายใน webpack |
| Golang | Gin, Fiber, panic จาก stdlib | go/src (stdlib), go/pkg/mod, vendor |
| Java / Kotlin | Spring Boot, Quarkus, Gradle | .m2/repository, .gradle/caches, รายละเอียดภายในเฟรมเวิร์ก |
| C / C++ | GDB Backtraces, AddressSanitizer | /usr/include, /usr/lib, vcpkg_installed |
| PHP | Laravel, Symfony | vendor/composer, vendor/symfony, vendor/laravel |
หมายเหตุ: ปัจจุบันมาพร้อมตัวแยกข้อมูลที่แข็งแกร่งสำหรับ Rust, Python, TypeScript/JavaScript และ Go การรองรับ Java/Kotlin, C/C++ และ PHP จะมาใน v1.2 ดู #1 สำหรับการติดตามความคืบหน้า
การเปรียบเทียบ Tokenectomy
| คุณสมบัติ | Tokenectomy | Splunk Log Obfuscation | Datadog Logs | git-secrets |
|---|---|---|---|---|
| ติดตั้งทันที (ไม่ต้องติดตั้งเอเจนต์) | ✅ | ❌ | ❌ | ✅ |
| ทำงานกับเอเจนต์ AI (MCP) | ✅ | ❌ | ❌ | ❌ |
| ประมวลผลในเครื่องเท่านั้น | ✅ | ❌ | ❌ | ✅ |
| ร่องรอยสแตกหลายภาษา | ✅ | ✅ | ✅ | ❌ |
| แคชการปกปิด (ประหยัดค่าใช้จ่าย) | ✅ | ❌ | ✅ | ❌ |
| โอเพนซอร์ส (MIT) | ✅ | ❌ | ❌ | ✅ |
| ราคา | ฟรี OSS | $$$ /เดือน | $$$ /เดือน | ฟรี |
เมื่อใดควรใช้ Tokenectomy:
- ✅ คุณใช้เอเจนต์เขียนโค้ด AI (Claude, Cursor, Cline ฯลฯ)
- ✅ คุณใส่ใจความเป็นส่วนตัวและการประมวลผลแบบท้องถิ่นเป็นหลัก
- ✅ คุณต้องการลดต้นทุนโทเค็น LLM
- ✅ คุณกังวลเกี่ยวกับการรั่วไหลของความลับในล็อก เมื่อใดควรใช้เครื่องมืออื่น:
- ❌ คุณต้องการเพียงการสแกนความลับแบบคงที่ → ใช้
truffleHog,detect-secrets - ❌ คุณต้องการแดชบอร์ดตรวจสอบแบบเรียลไทม์ → ใช้
Datadog,New Relic,Splunk - ❌ บันทึกข้อผิดพลาดของคุณมีขนาดเล็กกว่า 100 โทเค็นโดยธรรมชาติ → ค่าใช้จ่ายแฝงไม่คุ้มค่า
- ❌ ระบบของคุณถูกตัดขาดจากเครือข่ายโดยสิ้นเชิง → จริงๆ แล้ว Tokenectomy เหมาะสมที่สุด! (ประมวลผลในเครื่อง 100%)
คำถามที่พบบ่อย
ถาม: Tokenectomy ส่งบันทึกของฉันไปยังเซิร์ฟเวอร์ภายนอกหรือไม่?
ตอบ: ไม่ การแก้ไข การแยกวิเคราะห์ และการกรองทั้งหมดเกิดขึ้นในเครื่องของคุณ การเรียกเครือข่ายเพียงอย่างเดียวคือการเรียกไปยัง LLM ที่คุณเลือก (OpenAI, Anthropic, Ollama) หลังจาก การทำความสะอาดเสร็จสมบูรณ์ ดู SECURITY.md สำหรับการรับประกันแบบ zero-knowledge
ถาม: Tokenectomy แก้ไขความลับประเภทใดบ้าง?
ตอบ: GitHub PAT, คีย์ AWS, คีย์ API ของ OpenAI/Anthropic, JWT, สตริงการเชื่อมต่อฐานข้อมูล (PostgreSQL, MySQL, MongoDB, Redis), คีย์ SSH ส่วนตัว, webhook ของ Slack/Discord และอื่นๆ อีกมากมาย รายการทั้งหมดอยู่ใน src/redact.rs
ถาม: จะเกิดอะไรขึ้นหากความลับของฉันไม่ตรงกับรูปแบบการแก้ไข?
ตอบ: แจ้งปัญหา (issue) พร้อมตัวอย่าง (ที่ทำความสะอาดแล้ว) เราจะเพิ่มรูปแบบนั้น สำหรับตอนนี้ คุณสามารถเพิ่มรูปแบบที่กำหนดเองได้ใน ~/.tokenectomy.toml (ฟีเจอร์จะมาใน v1.3)
ถาม: Tokenectomy ปลอดภัยสำหรับการใช้งานในโปรดักชันหรือไม่?
ตอบ: ปลอดภัย เขียนด้วย Rust ที่ปลอดภัย (ไม่มีโค้ด unsafe ในเส้นทางความปลอดภัย), ทนทานต่อ ReDoS และ ผ่านการตรวจสอบด้วย RustSec ดู SECURITY.md สำหรับรายละเอียดทั้งหมด
ถาม: ฉันสามารถใช้ Tokenectomy แบบออฟไลน์ได้หรือไม่?
ตอบ: ได้—ยกเว้นการค้นหา Stack Overflow ใช้แฟล็ก --local-only เพื่อปิดการเข้าถึงเครือข่ายทั้งหมด (ยกเว้น LLM ของคุณ)
ถาม: ฉันจะถอนการติดตั้ง Tokenectomy ได้อย่างไร?
ตอบ: เพียงถอนการติดตั้ง:
npm uninstall -g tokenectomy-razor
# OR
cargo uninstall tokenectomy
ไม่จำเป็นต้องทำความสะอาดการกำหนดค่าใดๆ—ไม่มีไฟล์หลงเหลืออยู่
ถาม: ฉันสามารถใช้ Tokenectomy ในไปป์ไลน์ CI/CD ของฉันได้หรือไม่?
ตอบ: ได้! ใช้ GitHub Marketplace action (ดูส่วน Quick Start) หรือคอนเทนเนอร์ Docker ใช้งานได้กับ GitHub Actions, GitLab CI, Jenkins และอื่นๆ
ถาม: ความแตกต่างระหว่าง Razor (OSS) และ Sentinel (เชิงพาณิชย์) คืออะไร?
ตอบ: Razor เป็นเวอร์ชันชุมชนฟรีที่มีฟีเจอร์จำเป็นทั้งหมด Sentinel เพิ่มความสามารถขั้นสูง เช่น tree-sitter AST healing, เกราะป้องกันการหลอน (anti-hallucination guards) และ time-machine undo ดู การเปรียบเทียบรุ่น ด้านล่าง
การเปรียบเทียบรุ่น
| ความสามารถ | Razor (Community OSS) | Sentinel (Commercial Tier) |
|---|---|---|
| การกรองบันทึกเฟรมเวิร์ก | ใช่ | ใช่ |
| การแยก trace หลายภาษา (4 ภาษา) | ใช่ | ใช่ (7 ภาษา) |
AI Reverse Proxy Gateway (--proxy) | ใช่ | ใช่ |
| การรวม Stack Overflow | ใช่ | ใช่ |
| แคช idempotency SHA-256 | ใช่ | ใช่ |
| การแก้ไขความลับที่ปลอดภัยจาก ReDoS | ใช่ | ใช่ |
| เซิร์ฟเวอร์โปรโตคอล MCP (JSON-RPC) | ใช่ | ใช่ |
| ทักษะเอเจนต์แบบรวม | 2 ทักษะ (Spec TDD & Fuzzer) | ชุดทักษะครบ 4 ทักษะ |
| Tree-sitter AST Syntax Healing | ไม่ | ใช่ |
| เกราะป้องกันขอบเขตการหลอน | ไม่ | ใช่ |
| วงจรย้อนกลับการทดสอบอัตโนมัติ | ไม่ | ใช่ |
| ธุรกรรมอะตอมหลายไฟล์ | ไม่ | ใช่ |
เอ็นจิน Time Machine Undo (--undo) | ไม่ | ใช่ |
| เอ็นจิน True Ectomy Deep Surgery | ไม่ | ใช่ |
| การวินิจฉัย Live DB Port และ Docker | ไม่ | ใช่ |
สนใจ Sentinel หรือไม่? ดูราคาและฟีเจอร์
แผนงาน
| เหตุการณ์สำคัญ / ความสามารถ | สถานะ | เวอร์ชันเป้าหมาย |
|---|---|---|
| การผ่าตัดบันทึกหลายภาษาแกนหลักและการแก้ไขความลับที่ทนทานต่อ ReDoS แบบ $O(N)$ | ✅ เสร็จสมบูรณ์ | v1.0.0 |
AI Gateway Reverse Proxy (--proxy) และแคช idempotency SHA-256 | ✅ เสร็จสมบูรณ์ | v1.1.0 |
| Docker หลายสถาปัตยกรรม (GHCR) และ GitHub Actions Marketplace Action | ✅ เสร็จสมบูรณ์ | v1.1.3 |
เอ็นจินวิเคราะห์โค้ด AST แบบคงที่ (analyze_code) และออฟเซ็ต LSP แบบ UTF-16 | ✅ เสร็จสมบูรณ์ | v1.1.5 |
| คะแนนคุณภาพคำจำกัดความเครื่องมือ Glama.ai (TDQS Grade A) | ✅ เสร็จสมบูรณ์ | v1.1.5 |
| ไบนารีที่คอมไพล์ล่วงหน้าแบบหลายสถาปัตยกรรมแบบสแตนด์อโลน (Linux, macOS, Windows) | ✅ เสร็จสมบูรณ์ | v1.1.6 |
การลงทะเบียนใน MCP Registry อย่างเป็นทางการของ Anthropic (io.github.Tokenectomy-Labs/razor) | ✅ เสร็จสมบูรณ์ | v1.1.7 |
การซิงโครไนซ์ไดเรกทอรีอย่างเป็นทางการของ mcpservers.org และป้ายกำกับ | ✅ เสร็จสมบูรณ์ | v1.1.7 |
| ตัวแยก trace สแตกเฟรมเวิร์ก Java / Kotlin (Spring Boot 3, Gradle) | ✅ เสร็จสมบูรณ์ | v1.2.0 |
| ตัวทำความสะอาด backtrace C / C++ (AddressSanitizer และ GDB/LLDB) | ✅ เสร็จสมบูรณ์ | v1.2.0 |
| ฮิวริสติกการบีบอัด panic และ dump ของ goroutine ใน Go | ✅ เสร็จสมบูรณ์ | v1.2.0 |
รายการในแคตตาล็อกไดเรกทอรีชุมชน awesome-mcp-servers | 🔄 กำลังดำเนินการ | v1.2.0 |
รูปแบบการแก้ไขความลับที่ผู้ใช้กำหนดเองผ่าน ~/.tokenectomy.toml | 📋 วางแผนแล้ว | v1.3.0 |
| เกณฑ์เสียงรบกวนที่กำหนดค่าได้และรูปแบบการยกเว้นที่กำหนดเอง | 📋 วางแผนแล้ว | v1.3.0 |
| แดชบอร์ดเมตริกการประหยัดโทเค็นและต้นทุนของเอเจนต์ในเครื่อง | 📋 วางแผนแล้ว | v1.3.0 |
| ส่วนขยายคู่หู VS Code และ JetBrains ดั้งเดิม | 📋 วางแผนแล้ว | v1.4.0 |
| การขนส่ง MCP ระยะไกลแบบ Server-Sent Events (SSE) | 📋 วางแผนแล้ว | v1.4.0 |
| Tree-sitter AST syntax healing และการซ่อมแซม | ✅ Sentinel (ชำระเงิน) | พร้อมใช้งานแล้ว |
ธุรกรรมอะตอมหลายไฟล์และการย้อนกลับ Time-machine (--undo) | ✅ Sentinel (ชำระเงิน) | พร้อมใช้งานแล้ว |
หลักประกันด้านความปลอดภัยและความน่าเชื่อถือ
- การประมวลผลแบบ Zero-Knowledge: การสแกนและการแก้ไขทั้งหมดเกิดขึ้นบนฮาร์ดแวร์ในเครื่องก่อนที่ข้อมูลจะออกจากขอบเขตระบบ
- ภูมิคุ้มกันต่อ ReDoS: ตัวจับคู่รูปแบบทั้งหมดใช้การประเมินออโตมาตาจำกัดพร้อมการรับประกันเวลาเชิงเส้น ตรวจสอบแล้วในเกณฑ์มาตรฐาน
- การแยกการข้ามเส้นทาง: การดำเนินการไฟล์ถูกล็อกอย่างเคร่งครัดภายในขอบเขตพื้นที่ทำงานผ่านโมดูลความปลอดภัย
WorkspaceBoundary - ความปลอดภัยของหน่วยความจำ: นำไปใช้ใน Rust ที่ปลอดภัยพร้อมตัวอ่านสตรีมแบบจำกัดขอบเขต (
.take()) ป้องกันการโจมตีแบบทรัพยากรหมด - การตรวจสอบการตรวจสอบ: การตรวจสอบการพึ่งพาอย่างต่อเนื่องผ่านฐานข้อมูลคำแนะนำ RustSec
การเปิดเผยช่องโหว่: ดู SECURITY.md สำหรับขั้นตอนการเปิดเผยอย่างรับผิดชอบ
การมีส่วนร่วม
พบข้อบกพร่อง? มีคำขอฟีเจอร์? ต้องการเพิ่มการสนับสนุนภาษาใหม่?
- ปัญหา (Issues): github.com/Tokenectomy-Labs/Tokenectomy/issues
- Pull Requests: Fork, สร้างสาขาฟีเจอร์ และส่ง PR พร้อมการทดสอบ
- ความปลอดภัย: ดู SECURITY.md สำหรับการเปิดเผยช่องโหว่ส่วนตัว
ดู CONTRIBUTING.md สำหรับแนวทางการมีส่วนร่วมโดยละเอียด
ทรัพยากร
- 📖 เอกสารประกอบ — คู่มือฉบับเต็ม, การอ้างอิง API และบทช่วยสอนการรวมระบบ
- 📋 บันทึกการเปลี่ยนแปลง — ประวัติการเผยแพร่และการเปลี่ยนแปลงที่สำคัญ
- 🤝 การมีส่วนร่วม — วิธีมีส่วนร่วม, ขั้นตอนการพัฒนางาน และการทดสอบ
- 🔒 นโยบายความปลอดภัย — รายละเอียดการเปิดเผยช่องโหว่และการตรวจสอบ
- 🏗️ สถาปัตยกรรม — การออกแบบภายในและสถาปัตยกรรมระบบ
สัญญาอนุญาต
สัญญาอนุญาต MIT ดู LICENSE สำหรับข้อกำหนดฉบับเต็ม
สร้างด้วย ❤️ โดย @daffa2555
มีคำถาม? เปิดปัญหา (issue) หรือเริ่มการสนทนาบน GitHub