ตัวจัดการความลับ

ความลับของคุณอยู่ในคีย์เชนของระบบปฏิบัติการ,
ไม่ใช่ในพรอมต์และไม่ใช่ใน repo ของคุณ

AgentsRoom เก็บคีย์ API, โทเค็น และรหัสผ่านฐานข้อมูลไว้ในห้องนิรภัยบนเครื่อง ที่เข้ารหัสผ่านคีย์เชนของระบบปฏิบัติการของคุณ คุณอ้างอิงถึงมันด้วยชื่อ และแอปจะแทนค่าให้เมื่อคำสั่งหรือตัวแทนเริ่มทำงาน

เลิกวางโทเค็นลงในพรอมต์เพียงเพราะมันเป็นวิธีที่เร็วที่สุดในการปลดล็อกตัวแทน ตั้งชื่อความลับหนึ่งครั้ง ใช้ {{secret:NAME}} ในที่อื่นทั้งหมด แล้วปล่อยให้ค่าจริงอยู่ในที่ของมัน

ห้องนิรภัยความลับ
เข้ารหัสด้วยคีย์เชนของระบบปฏิบัติการ
ตัวแทน AI
STRIPE_SECRET_KEY
SENTRY_AUTH_TOKEN
NPM_TOKEN
อ่านได้เฉพาะชื่อ
ไม่เคยได้รับค่าจริง
ห้องนิรภัยบนเครื่อง
STRIPE_SECRET_KEY
0600, เจ้าของเท่านั้น
คำสั่งเซิร์ฟเวอร์พัฒนา
แทนค่าตอนเปิดใช้งาน : เฉพาะโปรเซสหลัก
อ้างอิงด้วยชื่อ แทนค่าตอนเปิดใช้งานไม่เคยออกจากเครื่องของคุณ

วิธีที่ AgentsRoom ทำให้ความลับใช้งานได้กับคำสั่งของคุณ แต่ตัวแทนที่ร้องขอมันกลับอ่านไม่ได้

ทุกโครงการจะลงเอยด้วยค่าไม่กี่ตัวที่ต้องไม่ถูกแชร์ : คีย์การชำระเงิน, รหัสผ่านฐานข้อมูล, โทเค็นสำหรับ deploy, คีย์ API ของสภาพแวดล้อม staging เมื่อตัวแทนเขียนโค้ด AI เข้ามาอยู่ในภาพ ค่าเหล่านั้นก็เริ่มเคลื่อนที่ในแบบที่แย่ที่สุด มันถูกวางลงในพรอมต์เพื่อปลดล็อกตัวแทน ถูกฝังตายลงในสคริปต์ที่ตัวแทนเขียนขึ้น หรือถูกทิ้งไว้ในไฟล์ที่ถูกคอมมิทไปในอีกสามคอมมิทถัดมา

ตัวจัดการความลับของ AgentsRoom ให้ค่าเหล่านี้มีที่อยู่ที่เดียว ความลับคือชื่อกับค่า : คุณเพิ่มมันหนึ่งครั้ง แล้ว AgentsRoom จะเข้ารหัสมันผ่านคีย์เชนของระบบปฏิบัติการก่อนที่มันจะแตะดิสก์ ห้องนิรภัยทั้งหมดคือไฟล์เดียวในโฟลเดอร์บ้านของคุณ เขียนด้วยสิทธิ์สำหรับเจ้าของเท่านั้น และไม่เคยออกจากเครื่องที่สร้างมันขึ้นมา

จากนั้นคุณไม่ต้องยุ่งกับค่าจริงอีกเลย คุณเขียน {{secret:NAME}} ในคำสั่งพัฒนาหรือในสภาพแวดล้อมของตัวแทน แล้ว AgentsRoom จะแทนที่ด้วยค่าจริงเมื่อคำสั่งหรือตัวแทนนั้นเริ่มทำงาน ตัวแทนของคุณดูรายชื่อได้และขอให้ฉีดความลับตัวใดตัวหนึ่งเข้าไปได้ ซึ่งเพียงพอต่อการทำงานของมัน และมันไม่เคยได้ค่าจริงนั้นไป

ห้องนิรภัยที่สร้างมาเพื่อเครื่องที่เต็มไปด้วยตัวแทน AI

เข้ารหัสโดยระบบปฏิบัติการ อ้างอิงด้วยชื่อ แทนค่าในวินาทีสุดท้ายเท่าที่จะทำได้

เข้ารหัสด้วยคีย์เชนของระบบปฏิบัติการคุณ

ทุกค่าถูกเข้ารหัสผ่าน Electron safeStorage ซึ่งหมายความว่าคีย์เข้ารหัสอยู่ในมือของคีย์เชนของระบบปฏิบัติการ ไม่ใช่ของ AgentsRoom แอปเก็บเฉพาะข้อมูลที่เข้ารหัสแล้วและขอให้ระบบถอดรหัสให้ เหมือนกับแอปอื่น ๆ ที่คุณไว้ใจให้ดูแลข้อมูลประจำตัวอยู่แล้ว

ห้องนิรภัยไฟล์เดียว เจ้าของเท่านั้น

ความลับทั้งหมดของคุณอยู่ในห้องนิรภัยไฟล์เดียวที่ ~/.agentsroom/secrets.json เขียนด้วยสิทธิ์สำหรับเจ้าของเท่านั้น (0600) และถูกแทนที่แบบ atomic ทุกครั้งที่มีการเปลี่ยนแปลง ไม่มีไฟล์ที่เขียนค้างครึ่ง ๆ หลังแอปล่ม และไม่มีบัญชีผู้ใช้อื่นบนเครื่องที่เปิดมันได้

อ้างอิงด้วยชื่อ ไม่ใช่ด้วยค่า

ความลับที่บันทึกไว้ถูกใช้ในรูป {{secret:NAME}} : ในบรรทัดคำสั่งของเทอร์มินัลพัฒนา, ในสภาพแวดล้อมที่ให้กับตัวแทน, ทุกที่ที่คุณเคยต้องพิมพ์ข้อมูลประจำตัวลงไป สิ่งที่คุณเห็นบนหน้าจอ และสิ่งที่คุณเปิดให้เพื่อนร่วมทีมดูได้ คือชื่อ

แทนค่าตอนเปิดใช้งาน ในโปรเซสหลัก

การแทนค่าเกิดขึ้นตอนโปรเซสเริ่มทำงาน ภายในโปรเซสหลักของ Electron ค่าที่ได้จะเข้าไปอยู่ในสภาพแวดล้อมของคำสั่งที่กำลังถูกเปิด และไม่ไปที่อื่นเลย : ไม่ลงในล็อก ไม่ขึ้นบนอินเทอร์เฟซ ไม่ลงไฟล์บนดิสก์

ตัวแทนเห็นชื่อ ไม่เห็นค่า

ตัวแทน AI ดูรายชื่อความลับของคุณได้ และขอให้ฉีดตัวใดตัวหนึ่งเข้าไปในสิ่งที่มันกำลังจะรันได้ แต่ไม่มีเส้นทางโค้ดใดที่ส่งค่ากลับไปให้ตัวแทน ให้ชั้นอินเทอร์เฟซ หรือส่งผ่าน MCP ตัวแทนทำงานกับการอ้างอิง ส่วนแอปทำงานกับความลับ

ไม่มีคีย์เชน ก็ไม่มีการเก็บ

ถ้าเครื่องไม่สามารถให้คีย์เชนของระบบปฏิบัติการที่ใช้งานได้ AgentsRoom จะปฏิเสธการบันทึกความลับ แทนที่จะถอยไปเขียนเป็นข้อความธรรมดา ห้องนิรภัยที่ค่อย ๆ กลายเป็นไฟล์ธรรมดาอย่างเงียบ ๆ นั้นแย่กว่าการไม่มีห้องนิรภัยเลย ทางถอยแบบนั้นจึงไม่มีอยู่จริง

อยู่บนเครื่องโดยการออกแบบ ไม่ใช่โดยการตั้งค่าเริ่มต้น

ความลับของคุณไม่เคยถูกส่งไปยังเซิร์ฟเวอร์ของ AgentsRoom ไม่มีสวิตช์ซิงก์ให้ต้องไปตรวจ ไม่มีห้องนิรภัยบนคลาวด์ให้ต้องปิด และไม่มีสำเนาคีย์ของคุณอยู่ที่ไหนนอกจากดิสก์ของคุณเอง ห้องนิรภัยถูกสร้างบนเครื่อง เข้ารหัสด้วยคีย์ที่คีย์เชนของระบบปฏิบัติการถือไว้สำหรับเครื่องนั้น และมันอยู่ตรงนั้นต่อไป สำเนาของไฟล์เพียงลำพังไม่ใช่สิ่งที่เครื่องอื่นเปิดได้

การแยกระหว่างการใช้ความลับกับการอ่านความลับถูกบังคับไว้ในโค้ด ไม่ใช่ด้วยคำสั่งที่เขียนไว้ในพรอมต์ ชั้นอินเทอร์เฟซ, เครื่องมือ MCP และตัวแทนทุกตัวพูดถึงความลับด้วยชื่อ มีเพียงโปรเซสหลักของ Electron เท่านั้นที่เปลี่ยนการอ้างอิงให้เป็นค่า และทำเฉพาะตอนที่มันกำลังประกอบสภาพแวดล้อมของโปรเซสที่คุณสั่งให้เริ่ม การบอกตัวแทนให้ระวังข้อมูลประจำตัวคือความหวัง การไม่มีฟังก์ชันที่คืนค่าข้อมูลประจำตัวคือการรับประกัน

นั่นคือสิ่งที่ทำให้การปล่อยตัวแทนไปทำงานกับ API แบบเสียเงินหรือฐานข้อมูลจริงเป็นเรื่องสมเหตุสมผล ตัวแทนรู้ว่ามีความลับชื่อ STRIPE_SECRET_KEY อยู่ และขอให้ฉีดมันเข้าไปในคำสั่งที่มันต้องการรันได้ แต่มันพิมพ์ค่าออกมาไม่ได้ คัดลอกลงไฟล์ที่มันกำลังเขียนไม่ได้ และทำให้มันรั่วไปอยู่ในบทสนทนาที่ถูกเก็บไว้ที่อื่นไม่ได้

จากโทเค็นที่ถูกวางทิ้งไว้ สู่ความลับที่มีชื่อ

สามขั้นตอน แล้วค่าจริงจะไม่ปรากฏอีกเลย

01

เพิ่มความลับหนึ่งครั้ง

ตั้งชื่อให้มันและวางค่าลงไปเป็นครั้งสุดท้าย AgentsRoom จะเข้ารหัสมันผ่านคีย์เชนของระบบปฏิบัติการและเขียนลงห้องนิรภัยที่ ~/.agentsroom/secrets.json สำหรับเจ้าของเท่านั้นและแบบ atomic ถ้าเครื่องไม่มีคีย์เชนที่ใช้งานได้ แอปจะบอกคุณและปฏิเสธ แทนที่จะเขียนเป็นข้อความธรรมดา

02

อ้างอิงมันด้วย {{secret:NAME}}

ใช้การอ้างอิงตรงที่ค่าจริงเคยอยู่ : คำสั่งที่เริ่มเซิร์ฟเวอร์พัฒนาของคุณ หรือสภาพแวดล้อมของตัวแทนที่ต้องใช้โทเค็น API สิ่งที่เก็บอยู่ในการตั้งค่าของคุณคือการอ้างอิง และมันปลอดภัยพอที่จะเปิดดู

03

ให้ AgentsRoom แทนค่าให้ตอนเปิดใช้งาน

เมื่อคำสั่งหรือตัวแทนเริ่มทำงาน โปรเซสหลักจะสลับการอ้างอิงเป็นค่าจริงในสภาพแวดล้อมของโปรเซสนั้น เครื่องมือของคุณได้สิ่งที่มันต้องการ ส่วนตัวแทนที่ขับมันอยู่ก็ยังรู้จักเพียงชื่อเหมือนเดิม

เมื่อตัวจัดการความลับเลิกเป็นของเสริม

สถานการณ์ที่ข้อมูลประจำตัวซึ่งถูกวางทิ้งไว้กลายเป็นเหตุการณ์จริง

เซิร์ฟเวอร์พัฒนาที่ต้องใช้คีย์จริง

เซิร์ฟเวอร์พัฒนาของคุณไม่ยอมบูตถ้าไม่มีคีย์การชำระเงินและรหัสผ่านฐานข้อมูล ใส่ {{secret:NAME}} ลงในคำสั่งเปิดแทนข้อมูลประจำตัว แล้วคำสั่งนั้นก็กลายเป็นสิ่งที่คุณทิ้งไว้บนหน้าจอระหว่างประชุมได้ โดยไม่ต้องมีวินาทีแห่งความตกใจ

ตัวแทนที่เรียก API แบบเสียเงิน

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

คีย์ที่เลิกหลุดเข้าไปใน repo

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

เครื่องเดียว หลายโครงการ

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

ตัวแทน AI + ความลับ

ตัวแทนใช้ความลับที่มันอ่านไม่ได้ ได้อย่างไร?

secrets_list

เพราะการใช้ข้อมูลประจำตัวกับการอ่านข้อมูลประจำตัวเป็นคนละปฏิบัติการกัน และ AgentsRoom สร้างไว้ให้ตัวแทนเฉพาะอย่างแรกเท่านั้น ห้องนิรภัยถูกเปิดเผยผ่าน MCP ด้วยเครื่องมือเพียงตัวเดียวคือ secrets_list และมันคืนแค่ชื่อ จากตรงนั้นตัวแทนเขียน {{secret:NAME}} ลงในคำสั่งหรือสภาพแวดล้อมที่มันต้องการ ส่วนการแทนค่าถูกดำเนินการโดยแอป ไม่ใช่โดยตัวแทน

สิ่งที่เราตั้งใจไม่ให้มีคือทิศทางตรงกันข้าม ไม่มีเครื่องมือ MCP ตัวใดคืนค่าความลับ ชั้นอินเทอร์เฟซไม่เคยได้รับค่า และไม่มีอะไรเรนเดอร์มันกลับเข้าไปในบทสนทนา การเปลี่ยนการอ้างอิงให้เป็นค่าจริงเกิดขึ้นภายในโปรเซสหลักของ Electron ในจังหวะที่โปรเซสถูกเปิด และผลลัพธ์เข้าไปอยู่ในสภาพแวดล้อมของโปรเซสนั้น ไม่ไปที่อื่น

ผลในทางปฏิบัติคือตัวแทนรันชุดทดสอบกับฐานข้อมูลจริง เรียก API แบบเสียเงิน หรือ deploy ขึ้น staging ได้ โดยไม่มีข้อมูลประจำตัวสักตัวเข้าไปอยู่ในบริบทของมัน ไม่มีอะไรต้องไปลบทีหลัง เพราะไม่เคยมีอะไรถูกเปิดเผย

ค้นพบ AgentsRoom MCP

คำถามที่พบบ่อย

ความลับของฉันถูกเก็บไว้ที่ไหน?

ในไฟล์ห้องนิรภัยไฟล์เดียวที่ ~/.agentsroom/secrets.json ในโฟลเดอร์บ้านของคุณ ทุกค่าถูกเข้ารหัสผ่าน Electron safeStorage ดังนั้นคีย์เข้ารหัสจึงอยู่ในมือของคีย์เชนของระบบปฏิบัติการ ไฟล์ถูกเขียนด้วยสิทธิ์สำหรับเจ้าของเท่านั้น (0600) และถูกแทนที่แบบ atomic การล่มของแอปจึงไม่เคยทิ้งไฟล์ที่เขียนค้างครึ่ง ๆ ไว้

ตัวแทน AI ของฉันอ่านความลับของฉันได้หรือไม่?

ไม่ได้ ตัวแทนดูรายชื่อความลับของคุณได้และขอให้ฉีดตัวใดตัวหนึ่งเข้าไปในคำสั่งหรือในสภาพแวดล้อมได้ ซึ่งเพียงพอต่อการทำงานให้เสร็จ แต่ไม่มีเส้นทางโค้ดใดที่คืนค่ากลับไปให้ตัวแทน ให้ชั้นอินเทอร์เฟซ หรือส่งผ่าน MCP การแทนค่าเกิดขึ้นในโปรเซสหลักของ Electron เท่านั้น

ความลับของฉันถูกซิงก์ไปยังเซิร์ฟเวอร์ของ AgentsRoom หรือไม่?

ไม่เลย ห้องนิรภัยถูกออกแบบให้อยู่บนเครื่อง ความลับไม่ถูกส่งไปยังเซิร์ฟเวอร์ของ AgentsRoom ไม่ถูกสำรองไว้บนคลาวด์ และไม่ถูกส่งต่อไปยังแอปมือถือ มันถูกสร้างบนเครื่องของคุณ เข้ารหัสสำหรับเครื่องของคุณ และมันอยู่ตรงนั้น

ฉันใช้ความลับในคำสั่งได้อย่างไร?

เขียน {{secret:NAME}} ตรงที่ค่าจริงเคยอยู่ : ในคำสั่งของเทอร์มินัลพัฒนา หรือในสภาพแวดล้อมของตัวแทน AgentsRoom จะแทนที่ด้วยค่าจริงเมื่อโปรเซสนั้นถูกเปิด และสิ่งที่ค้างอยู่ในการตั้งค่าของคุณคือการอ้างอิง

จะเกิดอะไรขึ้นถ้าเครื่องของฉันไม่มีคีย์เชนของระบบปฏิบัติการ?

AgentsRoom จะปฏิเสธการเก็บความลับ เราตั้งใจไม่มีทางถอยที่เขียนค่าเป็นข้อความธรรมดาลงดิสก์ เพราะห้องนิรภัยที่ค่อย ๆ กลายเป็นไฟล์ธรรมดาอย่างเงียบ ๆ ให้ความมั่นใจแบบการเข้ารหัส โดยที่ไม่มีการเข้ารหัสจริง

สิ่งนี้มาแทนไฟล์สภาพแวดล้อมในโครงการของฉันหรือไม่?

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

ถ้ามีคนคัดลอกไฟล์ห้องนิรภัยไป เขาอ่านมันได้หรือไม่?

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

ตัวแทนของฉันใช้เครื่องมือ MCP ตัวไหนสำหรับความลับ?

secrets_list และมันเป็นตัวเดียวเท่านั้น มันคืนรายชื่อความลับที่เก็บอยู่บนเครื่องนี้ ตัวแทนจึงรู้ได้ว่ามีอะไรอยู่บ้าง แล้วอ้างอิงถึงตัวหนึ่งในรูป {{secret:NAME}} ในคำสั่งพัฒนาหรือในสภาพแวดล้อมของโปรเซสที่มันเริ่ม ไม่มีเครื่องมือตัวไหนคืนค่าจริง จึงไม่มีอะไรให้ตัวแทนพิมพ์ออกมา คัดลอกลงไฟล์ที่มันกำลังเขียน หรือทำให้รั่วไปในบทสนทนา เมื่อความลับที่มันต้องใช้ยังไม่มี มันจะขอให้คุณเพิ่มเข้าไปในแอป แทนที่จะขอให้คุณวางมันลงในแชท

คุณอาจจะชอบ

การเชื่อมต่อฐานข้อมูล

บันทึกการเชื่อมต่อ MySQL และ MariaDB ของคุณ เข้าถึงฐานข้อมูลในซับเน็ตส่วนตัวผ่านอุโมงค์ SSH หรือเซสชัน AWS SSM แล้วให้ตัวแทน AI ของคุณคิวรีมันผ่าน MCP อ่านอย่างเดียวโดยค่าเริ่มต้น หนึ่งคำสั่งต่อหนึ่งการเรียก ชุดผลลัพธ์ถูกจำกัดจำนวน และรหัสผ่านไม่เคยไปถึงตัวแทน

การเชื่อมต่อ SSH

บันทึกการเชื่อมต่อ SSH ของคุณ เปิดเทอร์มินัลในตัวผ่าน SSH และรัน Claude Code, Codex หรือ Antigravity CLI โดยตรงบนเซิร์ฟเวอร์ระยะไกลหรือ VPS ของคุณ ใช้การรับรองความถูกต้องด้วยคีย์ SSH หรือรหัสผ่าน โปรไฟล์การเชื่อมต่อแบบต่อโครงการ ไม่ต้องใช้ไคลเอนต์ SSH แยกต่างหาก

Dev Terminals

ผู้จัดการเทอร์มินัลและตัวเปิดโปรเซสต่อโครงการ เริ่มต้น backend, frontend และ workers ในคลิกเดียว พร้อมความลับที่ถูกฉีดเข้าไปตอนเปิดใช้งานแทนการพิมพ์ลงไปเอง

AgentsRoom MCP

เซิร์ฟเวอร์ MCP ที่ให้ตัวแทนของคุณขับ AgentsRoom เอง : โครงการ, เทอร์มินัล, backlog และการเชื่อมต่อ พร้อมการ์ดเรลที่มาพร้อมกับมัน

ให้สิทธิ์เข้าถึงแก่ตัวแทนของคุณ ไม่ใช่ให้คีย์

ดาวน์โหลด AgentsRoom ย้ายคีย์ API และรหัสผ่านของคุณเข้าไปในห้องนิรภัยที่เข้ารหัสด้วยคีย์เชนของระบบปฏิบัติการ แล้วอ้างอิงมันด้วยชื่อในที่อื่นทั้งหมด

ฟรีดาวน์โหลด

แอปคู่หู: ตรวจสอบตัวแทนของคุณได้ทุกที่

นำของคุณเอง: Claude, Codex, Antigravity CLI, หรือผู้ให้บริการ AI อื่น ๆ

รับส่วนขยาย
Chrome Web Store

ส่งข้อบกพร่องและคำขอไปยังแบ็คล็อกสาธารณะของคุณโดยตรง

มองเห็น AgentsRoom ในการทำงาน

หลายโปรเจกต์
ผู้ให้บริการหลายราย
หลาย agents
สถานะสด
ไฟล์ diff & commit
คู่หูมือถือ
ตัวอย่างสด
ทีมตัวแทน
การทำงานอัตโนมัติในเบราว์เซอร์
การพัฒนาที่ขับเคลื่อนด้วย backlog
ห้องสมุดคำสั่ง
ห้องสมุดทักษะ
ดูฟีเจอร์ทั้งหมด