หากคุณใช้ Claude Code, Codex หรือ Cursor กับอะไรก็ตามที่เชื่อมต่อกับ API จริง คุณจะมีปัญหา: agent ต้องการข้อมูลรับรองและโปรแกรมจัดการรหัสผ่านของคุณต้องการเก็บข้อมูลเหล่านั้นไว้ การแก้ปัญหาแบบทั่วไปนั้นไม่ดี การวาง API key ลงในแชททำให้มันอยู่ในหน้าต่างบริบทของโมเดลตลอดไป การทิ้งความลับลงในไฟล์ .env จะทำให้เครื่องมือ bash ของ agent cat มันและส่งไปยังที่อื่นได้อย่างง่ายดาย ทีมส่วนใหญ่ก็แค่ลดมาตรฐานลง
โปรเจกต์โอเพนซอร์สใหม่ของ Bitwarden ชื่อ Agent Access เป็นความพยายามอย่างจริงจังครั้งแรกในการแก้ไขปัญหานี้ มันเป็นโปรโตคอลการแบ่งปันข้อมูลรับรอง, CLI (aac), และ SDK ที่เขียนด้วย Rust + Python ซึ่งสร้างอุโมงค์ที่เข้ารหัสระหว่างโปรแกรมจัดการรหัสผ่านของคุณกับกระบวนการระยะไกล: agent, CI runner, สคริปต์ Agent จะได้รับความลับที่ต้องการ โดยจำกัดขอบเขตไว้ที่โดเมนเดียวหรือรายการใน vault โดยไม่ต้องเห็น vault ของคุณเลย
คู่มือนี้จะอธิบายถึงสิ่งที่ Agent Access จัดส่ง, วิธีการติดตั้ง, วิธีการใช้ aac connect และ aac run, วิธีการที่มันเข้ากันได้กับเวิร์กโฟลว์ของ Claude Code, Codex และ Cursor, และตำแหน่งที่มันอยู่ถัดจากรูปแบบการจัดการข้อมูลรับรองที่ครอบคลุมใน วิธีการรักษาความปลอดภัยข้อมูลรับรอง API ของ AI Agent
Agent Access คืออะไร (หนึ่งย่อหน้า)
Agent Access คือโปรโตคอลแบบเปิดพร้อมการใช้งานอ้างอิงที่สร้างโดย Bitwarden แต่ได้รับการออกแบบมาเพื่อให้โปรแกรมจัดการรหัสผ่านใดๆ สามารถนำไปใช้ได้ CLI (aac) สร้างอุโมงค์ที่เข้ารหัสแบบ end-to-end โดยใช้ โปรโตคอล Noise "ผู้ให้บริการ" จะรับฟังคำขอการเชื่อมต่อ; "ผู้บริโภค" (agent ของคุณ, สคริปต์ของคุณ, งาน CI ของคุณ) จะเชื่อมต่อกับผู้ให้บริการและขอข้อมูลรับรองตามโดเมนหรือ ID รายการใน vault ผู้ให้บริการจะตัดสินใจว่าจะส่งอะไรกลับไป ผู้บริโภคไม่เคยเห็น vault ทั้งหมด ผู้ให้บริการไม่เคยเห็นว่าผู้บริโภคทำอะไรกับข้อมูลรับรอง บันทึกการตรวจสอบจะอยู่ทั้งสองฝั่ง

ปัจจุบันอยู่ใน ช่วงทดลองใช้งานก่อนเปิดตัว README ของโปรเจกต์เตือนว่า "API และโปรโตคอลอาจมีการเปลี่ยนแปลง" และ "เราไม่แนะนำให้ป้อนข้อมูลรับรองที่ละเอียดอ่อนโดยตรงไปยัง LLMs หรือ AI agents" รูปแบบที่ Bitwarden แนะนำแทนคือจุดสนใจของคู่มือนี้ครึ่งหนึ่ง: การฉีดค่าสภาพแวดล้อมผ่าน aac run ซึ่งนำความลับเข้าสู่กระบวนการโดยไม่เปิดเผยให้หน้าต่างบริบทของ agent เห็น
ทำไมสิ่งนี้ถึงสำคัญในปี 2026
AI coding agents ได้เติบโตเกินกว่าแซนด์บ็อกซ์แล้ว Claude Code, Codex, Cursor และอื่นๆ ตอนนี้อ่าน repository ของคุณ, รันการทดสอบของคุณ, เชื่อมต่อกับ API ของคุณ, และปรับใช้โค้ดของคุณ ทุกขั้นตอนเหล่านั้นต้องการข้อมูลรับรอง เหตุการณ์ API keys ของ Postman ถูกเปิดเผย แสดงให้เห็นว่าการจัดการข้อมูลรับรองที่หละหลวมเมื่อมีแค่มนุษย์นั้นแย่ขนาดไหน; มนุษย์บวก agent นั้นแย่กว่า
คำตอบที่ถูกต้องไม่ใช่ "เชื่อใจ agent มากขึ้น"; แต่มันคือ "ให้ agent น้อยลง" Agent Access ทำเช่นนี้ในระดับโปรโตคอล: ข้อมูลรับรองที่จำกัดขอบเขต, เข้ารหัสระหว่างการส่ง, ดึงมาใช้งานเมื่อรันไทม์, และหายไปเมื่อกระบวนการสิ้นสุดลง เมื่อเทียบกับการปฏิบัติในปัจจุบัน (เครื่องมือจัดการ API Key ครอบคลุมส่วนที่เหลือ) Agent Access เป็นสิ่งแรกที่สร้างขึ้นโดยเฉพาะสำหรับกรณีของ agent
การติดตั้ง
เลือกแพลตฟอร์มของคุณ
macOS (Apple Silicon)
curl -L https://github.com/bitwarden/agent-access/releases/latest/download/aac-macos-aarch64.tar.gz | tar xz
sudo mv aac /usr/local/bin/
macOS (Intel)
curl -L https://github.com/bitwarden/agent-access/releases/latest/download/aac-macos-x86_64.tar.gz | tar xz
sudo mv aac /usr/local/bin/
Linux (x86_64)
curl -L https://github.com/bitwarden/agent-access/releases/latest/download/aac-linux-x86_64.tar.gz | tar xz
sudo mv aac /usr/local/bin/
Windows (x86_64)
ดาวน์โหลด aac-windows-x86_64.zip จาก หน้า releases ล่าสุด และแตกไฟล์ไปยังไดเรกทอรีใดก็ได้ใน PATH ของคุณ
ยืนยันการติดตั้งด้วย aac --help หาก Bitwarden CLI (bw) อยู่ใน PATH ของคุณด้วย aac จะใช้เป็นผู้ให้บริการข้อมูลรับรองเริ่มต้น มิฉะนั้นให้ส่ง --provider example เพื่อใช้ผู้ให้บริการสาธิตในตัวขณะที่คุณทดลอง
เริ่มต้นอย่างรวดเร็ว: จับคู่และดึงข้อมูลรับรอง
สองคำสั่ง รัน aac listen บนเครื่องที่มี vault ของคุณ ซึ่งโดยทั่วไปคือแล็ปท็อปของคุณ:
aac listen
ตัวฟังจะพิมพ์โทเค็นการจับคู่ บนฝั่งผู้บริโภค (เครื่องระยะไกล, CI runner, หรือเพียงแค่เชลล์อื่นบนโฮสต์เดียวกันขณะที่คุณทดสอบ) ให้จับคู่และดึงข้อมูลในครั้งเดียว:
aac connect --token <pairing-token> --domain github.com --output json
คุณจะได้ผลลัพธ์ประมาณนี้:
{
"credential": {
"notes": null,
"password": "alligator5",
"totp": null,
"uri": "https://github.com",
"username": "example"
},
"domain": "github.com",
"success": true
}
โครงสร้าง JSON ดังกล่าวคือข้อตกลงที่เสถียรของโปรโตคอล สคริปต์ของคุณสามารถแยกวิเคราะห์ได้ตามต้องการ หากต้องการดึงข้อมูลตาม ID รายการใน vault แทนโดเมน:
aac connect --id <vault-item-id> --output json
--id และ --domain ไม่สามารถใช้ร่วมกันได้; เลือกอย่างใดอย่างหนึ่ง รหัส TOTP จะไหลผ่านเพย์โหลดเดียวกันเมื่อรายการใน vault มีการกำหนดค่าไว้
คุณสมบัติเด่น: aac run สำหรับการฉีดค่าสภาพแวดล้อม
aac connect ใช้ได้ดีเมื่อสคริปต์ของคุณรู้วิธีจัดการ JSON รูปแบบที่ใหญ่กว่าคือ aac run: มันจะดึงข้อมูลรับรองและรันกระบวนการลูกของคุณโดยมีการฉีดความลับเป็นตัวแปรสภาพแวดล้อม ไม่เคยไปยัง stdout, ไม่เคยลงดิสก์, ไม่เคยปรากฏให้สิ่งที่เรียก aac เห็น
ฉีดฟิลด์ที่เฉพาะเจาะจง:
aac run --domain example.com --env DB_PASSWORD=password --env DB_USER=username -- psql
ฉีดทุกฟิลด์ด้วยคำนำหน้า AAC_:
aac run --domain example.com --env-all -- deploy.sh
รวมค่าเริ่มต้นกับการเขียนทับ:
aac run --domain example.com --env-all --env CUSTOM_PW=password -- deploy.sh
ฟิลด์ที่มีให้คือ username, password, totp, uri, notes, domain, และ credential_id
นี่คือรูปแบบที่ Bitwarden แนะนำอย่างจริงจังสำหรับการใช้งาน AI agent: คุณชี้ Claude Code หรือ Codex ไปยังสคริปต์ที่เรียก aac run และความลับจะไม่ปรากฏในบันทึกของ agent โมเดลจะเห็นคำสั่ง aac run --domain api.stripe.com --env-all -- ./deploy.sh ไม่ใช่รหัสผ่าน หาก agent ถามในภายหลังว่า "ค่าของ $STRIPE_API_KEY คืออะไร?" คำตอบคือ "ฉันไม่เห็นมัน" เพราะมันถูกจำกัดขอบเขตไว้ที่ subprocess ของ deploy.sh
นี่คือหลักการแยกส่วนแบบเดียวกับที่ครอบคลุมใน วิธีการรักษาความปลอดภัยข้อมูลรับรอง API ของ AI Agent ซึ่งทำได้อย่างเป็นรูปธรรมด้วยเครื่องมือจริง
Python และ Rust SDKs
หากการเรียกใช้ CLI ไม่เพียงพอ (เช่น คุณกำลังฝัง Agent Access ในแอปพลิเคชันของคุณเอง) ก็มีส่วนเชื่อมต่อชั้นหนึ่ง
Python
from agent_access import RemoteClient
client = RemoteClient("python-remote")
client.connect(token="ABC-DEF-GHI")
cred = client.request_credential("example.com")
print(cred.username, cred.password)
client.close()
โมดูล Python ใช้ PyO3 เป็นฐาน ดังนั้นงานหนักจะอยู่ใน Rust และคุณจะได้การใช้งานโปรโตคอล Noise แบบเดียวกันภายใต้เบื้องหลัง
Rust
Rust SDK เปิดเผยอินเทอร์เฟซ RemoteClient เดียวกันในฐานะไลบรารีชั้นหนึ่ง การใช้งานอ้างอิงอยู่ภายใต้ examples/rust-remote/ ใน repo ใช้เมื่อคุณกำลังเขียนผู้บริโภคใน Rust โดยตรง ซึ่งพบบ่อยในเครื่องมือ CLI, build runners และบริการใดๆ ที่ต้องการการแจกจ่ายแบบไบนารีที่คอมไพล์แล้ว
สำหรับทีมแอปพลิเคชันที่จัดส่งเครื่องมือ API อยู่แล้ว รูปแบบ SDK เข้ากันได้อย่างลงตัวถัดจาก HashiCorp Vault หรือ Azure Key Vault Agent Access ไม่ได้มาแทนที่สิ่งเหล่านั้นในระดับองค์กร แต่เหมาะกับกรณีการใช้งานบนแล็ปท็อปของนักพัฒนาและ CI-runner มากกว่า
การรวมเข้ากับ AI coding agents
Claude Code
เชื่อมต่อ aac run เข้ากับสคริปต์ที่ Claude Code เรียก ตัวอย่างสำหรับงาน deploy:
# deploy.sh
#!/usr/bin/env bash
aac run --domain prod.example.com --env-all -- ./run-deploy.sh
เพิ่มสคริปต์นี้ลงในโปรเจกต์ของคุณ ชี้เวิร์กโฟลว์ Claude Code ของคุณไปที่มัน และ agent จะเรียก ./deploy.sh โดยไม่มีข้อมูลรับรองใน prompt การรวม Claude Code GitHub Actions ขยายรูปแบบเดียวกันนี้ไปสู่ CI: ติดตั้ง aac ใน runner จับคู่กับ Bitwarden vault provider ที่รันอยู่บน control plane และ GitHub Actions ของคุณจะได้รับข้อมูลรับรองที่จำกัดขอบเขตในระหว่างทำงาน
OpenAI Codex
รูปแบบเดียวกันนี้ใช้งานได้กับ CLI ของ Codex เลเยอร์ tool-call ของ Codex จะแสดงคำสั่งแก่โมเดล; สคริปต์ที่โมเดลเรียกจะไปที่ aac run และความลับจะอยู่นอกบริบทของโมเดล โพสต์ล่าสุด Codex จากโทรศัพท์ของคุณ ครอบคลุมพื้นผิวที่กว้างขึ้นของ Codex; นี่คือมุมมองด้านข้อมูลรับรองที่จับคู่กับมัน
Cursor
สำหรับคำสั่งเทอร์มินัลและเวิร์กโฟลว์ Composer ของ Cursor สคริปต์ที่ห่อหุ้มด้วย aac run สามารถทำงานได้โดยไม่ต้องแก้ไข จุดแข็งของ Cursor คือการแก้ไขในเครื่อง ดังนั้นตัวฟังมักจะรันอยู่บนเครื่องเดียวกัน
OpenClaw (ทักษะในระบบนิเวศ Anthropic)
Agent Access มาพร้อมกับ ทักษะ OpenClaw อย่างเป็นทางการทันทีที่แกะกล่อง (ไฟล์ SKILL.md อยู่ใน repo) สำหรับทีมที่ใช้ทักษะแบบ OpenClaw นี่คือการรวมที่สมบูรณ์ที่สุดในปัจจุบัน: ทักษะนี้รู้รูปร่างของโปรโตคอล ดึงข้อมูลรับรอง และส่งมอบให้กับเครื่องมือปลายทางใดๆ ที่ทักษะนั้นเปิดเผยออกมา คู่มือ OpenClaw API keys ครอบคลุมเรื่องราวการจัดการข้อมูลรับรองที่กว้างขึ้นสำหรับระบบนิเวศนั้น
โมเดลความปลอดภัยในคำพูดธรรมดา
สามข้ออ้างที่ควรตรวจสอบ:
- การเข้ารหัสแบบ End-to-end ผ่าน Noise การรับส่งข้อมูลระหว่างผู้บริโภคและผู้ให้บริการถูกเข้ารหัสด้วย Noise protocol framework ซึ่งเป็นตระกูลแฮนด์เชคเดียวกันกับที่ WireGuard และ Signal ใช้ ชั้นการขนส่งไม่ใช่จุดอ่อนที่สุด
- ข้อมูลรับรองที่จำกัดขอบเขต ผู้บริโภคจะได้รับเฉพาะสิ่งที่ร้องขอเท่านั้น (โดเมนเดียวหรือ ID รายการใน vault เดียว) ไม่สามารถแจกแจง vault ได้
- ไม่มีความลับบนดิสก์ของผู้บริโภคโดยค่าเริ่มต้น
aac runส่งความลับผ่านตัวแปรสภาพแวดล้อมไปยังกระบวนการลูก ไม่มีอะไรถูกเขียนลงไฟล์ ไม่มีอะไรปรากฏใน stdout ไม่มีอะไรอยู่ในประวัติเชลล์
สิ่งที่ Agent Access ไม่ได้ป้องกัน:
- กระบวนการผู้บริโภคที่ถูกบุกรุก หาก agent เป็นอันตรายหรือถูกบุกรุก ข้อมูลรับรองที่จำกัดขอบเขตก็ยังรั่วไหล การป้องกันคือขอบเขต ไม่ใช่โปรโตคอล
- ผู้ให้บริการที่ถูกบุกรุก หาก Bitwarden vault ของคุณถูกบุกรุก ชั้นนี้จะไม่มีประโยชน์สำหรับคุณ
- การป้อนความลับลงในหน้าต่างบริบทของ LLM โดยตรง README ระบุไว้อย่างชัดเจนว่า: "เราไม่แนะนำให้ป้อนข้อมูลรับรองที่ละเอียดอ่อนโดยตรงไปยัง LLMs หรือ AI agents"
aac runคือทางแก้ปัญหา
รูปแบบทั่วไป: agent เรียก API, Apidog ทดสอบ
นี่คือวงจรที่ทีมส่วนใหญ่จะใช้:
- Agent เขียนโค้ด Claude Code, Codex หรือ Cursor เปิด PR ที่เกี่ยวข้องกับ endpoint
- CI รันการทดสอบ Test runner ของคุณเรียก
aac runเพื่อดึง API key รันชุดทดสอบกับ staging deployment - Apidog ตรวจสอบสัญญา Apidog รันการทดสอบสัญญา OpenAPI เป็นขั้นตอน CI แยกต่างหาก โดยใช้
aac runเช่นกัน โดยที่ agent ไม่เห็น key
ผลลัพธ์: agent จัดส่งโค้ด, สัญญายังคงอยู่, ความลับไม่เคยออกจาก vault เพลย์บุ๊กที่กว้างขึ้นเกี่ยวกับการทดสอบการเปลี่ยนแปลงที่ขับเคลื่อนด้วย AI อยู่ใน วิธีการทดสอบ AI agents ที่เรียก API ของคุณ
ข้อจำกัดและคำเตือน
- ช่วงทดลองใช้งานก่อนเปิดตัว API และโปรโตคอลอาจมีการเปลี่ยนแปลง อย่าตรึงเวิร์กโฟลว์การผลิตกับโปรโตคอล v0 โดยไม่มีงบประมาณสำหรับการเขียนโค้ดใหม่ในภายหลัง
- ต้องใช้ Bitwarden CLI โดยค่าเริ่มต้น ผู้ให้บริการเริ่มต้นคือ
bw; ติดตั้ง Bitwarden CLI ก่อน หรือส่ง--provider exampleสำหรับผู้ให้บริการสาธิตในขณะทดสอบ - ยังไม่มีไฟล์คอนฟิก Agent Access ปัจจุบันขับเคลื่อนด้วยแฟล็ก การเรียกใช้ซ้ำๆ ต้องมีสคริปต์มาจัดการ
- อย่าป้อนความลับลงใน LLM prompts แม้จะติดตั้ง Agent Access แล้ว หากคุณคัดลอกข้อมูลรับรองลงในหน้าต่างแชท จะไม่มีโปรโตคอลใดช่วยคุณได้
คำถามที่พบบ่อย
Agent Access ฟรีหรือไม่?
ใช่ CLI, SDKs และโปรโตคอลเป็นโอเพนซอร์สภายใต้องค์กร Bitwarden GitHub คุณยังคงต้องจ่ายเงินสำหรับ Bitwarden หากคุณใช้เป็น vault ของคุณ
ใช้งานได้กับโปรแกรมจัดการรหัสผ่านอื่นที่ไม่ใช่ Bitwarden หรือไม่?
โปรโตคอลได้รับการออกแบบมาให้เป็นกลางต่อผู้จำหน่าย การใช้งานอ้างอิงมาพร้อมกับการรองรับ Bitwarden และผู้ให้บริการตัวอย่าง คาดว่าผู้จำหน่ายรายอื่นจะจัดส่งผู้ให้บริการของตนเองเมื่อเวลาผ่านไป
ฉันสามารถใช้มันโดยไม่มีโปรแกรมจัดการรหัสผ่านเลยได้หรือไม่?
สำหรับการทดสอบ ใช่; ส่ง --provider example เพื่อใช้ผู้ให้บริการสาธิตในตัว สำหรับการใช้งานจริง คุณต้องมีผู้ให้บริการจริง (Bitwarden ในปัจจุบัน และอื่นๆ ในอนาคต)
กระบวนการของผู้บริโภคจำเป็นต้องมีการเข้าถึงเครือข่ายหรือไม่?
ผู้บริโภคต้องการการเข้าถึงเครือข่ายเพื่อเข้าถึงตัวฟังของผู้ให้บริการ การตั้งค่าแบบ local-only ทำงานได้หากตัวฟังและผู้บริโภคอยู่บนโฮสต์เดียวกัน
มันแตกต่างจากไฟล์ .env อย่างไร?
ไฟล์ .env อยู่บนดิสก์ อาจถูกเช็คอินเข้า repo โดยไม่ได้ตั้งใจ และสามารถอ่านได้โดยสิ่งใดก็ตามที่ agent สามารถรันได้ aac run เก็บความลับไว้ในหน่วยความจำของกระบวนการเท่านั้น โดยจำกัดขอบเขตไว้ที่ subprocess และหายไปเมื่อมันสิ้นสุดลง
มันมาแทนที่ HashiCorp Vault หรือ AWS Secrets Manager หรือไม่?
ไม่ Vault ขององค์กรยังคงเป็นเครื่องมือที่เหมาะสมสำหรับความลับแบบ service-to-service ในระดับใหญ่ Agent Access เติมเต็มช่องว่างบนแล็ปท็อปของนักพัฒนาและ CI-runner ซึ่ง enterprise vault ที่สมบูรณ์แบบนั้นเกินความจำเป็น
Anthropic, OpenAI หรือผู้จำหน่าย agent รายอื่นจะรวมสิ่งนี้โดยตรงหรือไม่?
ยังไม่มีการประกาศ โมเดลการรวมปัจจุบันคือ "ห่อสคริปต์ของคุณด้วย aac run" การสนับสนุนโดยตรงจากผู้จำหน่าย agent เป็นขั้นตอนต่อไปตามธรรมชาติ แต่ยังไม่มีการจัดส่ง
ฉันจะรายงานข้อบกพร่องหรือมีส่วนร่วมได้ที่ไหน?
ที่ GitHub repo ปัญหา, PRs และการสนทนาเกี่ยวกับโปรโตคอลทั้งหมดเกิดขึ้นที่นั่น
ลองเลยตอนนี้
ติดตั้ง aac, รัน aac listen บนแล็ปท็อปของคุณ, รัน aac connect --provider example --domain test.com --output json จากเทอร์มินัลอื่น ยืนยันว่า JSON ถูกส่งกลับมา นั่นคือวงจร end-to-end ที่เล็กที่สุด จากนั้น แทนที่ผู้ให้บริการตัวอย่างด้วย bw, ห่อสคริปต์จริงด้วย aac run, และหยุดป้อน API keys ลงใน AI agents ของคุณ
จับคู่ Agent Access กับ Apidog สำหรับฝั่งการทดสอบ API ของเวิร์กโฟลว์ และคุณจะมีการแยกส่วนที่ชัดเจน: vault เก็บความลับ, Apidog ทดสอบสัญญา, agent จัดส่งโค้ด, และไม่มีข้อมูลรับรองใดออกจากเครื่องของคุณในรูปแบบข้อความธรรมดา
ปุ่ม
