กำหนดค่า ClineCore สำหรับเซสชันเขียนโค้ดที่คำนึงถึงความเป็นส่วนตัว
คู่มือเชิงปฏิบัติสำหรับกำหนดค่าเซสชัน ClineCore จำกัดการเปิดเผยข้อมูลที่ละเอียดอ่อน และแก้ไขปัญหาการตั้งค่าที่พบบ่อย
สรุป · TL;DR
ClineCore แยกการตั้งค่า runtime ที่ใช้ร่วมกันออกจากการกำหนดค่าโมเดลในแต่ละเซสชัน ใช้การแยกนี้เพื่อไม่ให้ข้อมูลรับรองหลุดเข้าไปในพรอมป์ต์และล็อก จำกัดข้อมูลที่จัดเก็บ และแก้ไขปัญหาการกำหนดค่าโดยไม่เหมารวมว่าผู้ให้บริการทุกรายรองรับพารามิเตอร์เหมือนกัน
ประเด็นสำคัญ
- กำหนด backend, นโยบายเครื่องมือ และความสามารถของ runtime เป็นตัวเลือก ClineCore ที่ใช้ร่วมกัน ส่วนการตั้งค่าโมเดลและข้อมูลรับรองให้ส่งไปกับแต่ละเซสชัน
- เก็บ API key ไว้ใน environment variable ฝั่งเซิร์ฟเวอร์ และอย่าใส่ข้อมูลรับรองในพรอมป์ต์ ข้อมูลเมตา หรือข้อความที่โหลดไว้ล่วงหน้า
- ถือว่าข้อความ ตัวระบุ และบันทึกการใช้งานของเซสชันอาจเป็นข้อมูลละเอียดอ่อน ให้กำหนดว่าใครเข้าถึงได้และจะเก็บไว้นานเท่าใด
- ต้องตรวจสอบฟิลด์เฉพาะผู้ให้บริการและความเข้ากันได้ของ endpoint จากเอกสารของผู้ให้บริการ ClineCore reference ที่ให้มาไม่ได้ยืนยันว่ารองรับทุกกรณี
ในหน้านี้ (6)
กำหนดค่าเซสชันก่อนส่งโค้ดส่วนตัว
ClineCore ช่วยให้แอปพลิเคชันสร้าง runtime และเริ่มเซสชันพร้อมการกำหนดค่าโมเดลและ runtime ได้ การตัดสินใจด้านความเป็นส่วนตัวในทางปฏิบัติไม่ได้มีแค่การเลือกผู้ให้บริการ แต่ยังรวมถึงข้อมูลที่ส่งให้เซสชัน เครื่องมือที่มีสิทธิ์ดำเนินการกับข้อมูลนั้น และสิ่งที่แอปพลิเคชันจัดเก็บหรือเปิดเผยภายหลังด้วย
ตัวอย่างด้านล่างมีไว้เพื่อประกอบคำอธิบาย ไม่ใช่การผสานระบบที่ผ่านการทดสอบ ClineCore reference ระบุรูปแบบ API แต่ไม่ได้ยืนยันว่าผู้ให้บริการทุกรายรองรับพารามิเตอร์โมเดลหรือการตั้งค่า endpoint แบบเดียวกัน ตรวจสอบเอกสารของผู้ให้บริการก่อนใช้งานตัวเลือกเฉพาะของผู้ให้บริการ
แยกการตั้งค่าที่ใช้ร่วมกันออกจากการตั้งค่าของเซสชัน
ตัวเลือก ClineCore.create ใช้กำหนดสิ่งต่าง ๆ เช่น ชื่อไคลเอนต์ โหมด backend นโยบายเครื่องมือ ความสามารถ และการเปิดใช้ระบบอัตโนมัติ ส่วนการเรียก start ต้องมี config ซึ่งระบุการตั้งค่าโมเดลและ runtime ของเซสชัน ตัวอย่างในเอกสารประกอบด้วย providerId, modelId, apiKey, systemPrompt, cwd, workspaceRoot รวมถึงแฟล็กของเครื่องมือและ agent
รูปแบบฝั่งเซิร์ฟเวอร์แบบพื้นฐานมีดังนี้:
import { ClineCore } from "@cline/sdk"
const cline = await ClineCore.create({
clientName: "private-code-review",
backendMode: "auto",
toolPolicies: {
// Set policies for the tools your application exposes.
},
})
const session = await cline.start({
prompt: "Review the selected files for risky input handling.",
config: {
providerId: process.env.CLINE_PROVIDER_ID!,
modelId: process.env.CLINE_MODEL_ID!,
apiKey: process.env.CLINE_API_KEY!,
systemPrompt: "Review only the supplied code. Do not request secrets.",
cwd: process.cwd(),
workspaceRoot: process.cwd(),
enableTools: false,
enableSpawnAgent: false,
enableAgentTeams: false,
},
})
ตัวอย่างนี้ใช้ environment variable เป็นแนวปฏิบัติในการจัดการข้อมูลรับรอง แต่ reference ไม่ได้กำหนดให้ใช้ secrets manager หรือระบุชื่อ environment variable เหล่านี้ เก็บ key ไว้บนเซิร์ฟเวอร์ที่เชื่อถือได้ อย่าส่งไปยังโค้ดในเบราว์เซอร์ และหลีกเลี่ยงการพิมพ์การกำหนดค่าเซสชันลงในล็อกของแอปพลิเคชัน หากผู้ให้บริการกำหนดให้ใช้ endpoint หรือพารามิเตอร์เพิ่มเติม ให้ตั้งค่าตามเอกสารของผู้ให้บริการเท่านั้น และตรวจสอบว่า ClineCore รองรับฟิลด์ที่จำเป็น
กำหนดแนวทางด้านความเป็นส่วนตัวให้ชัดเจน
ก่อนเริ่มเซสชัน ให้พิจารณาว่า agent จำเป็นต้องใช้ข้อมูลใดบ้าง หากงานเอื้ออำนวย ให้เลือก workspace ที่จำกัดหรือระบุเฉพาะไฟล์ แทนการส่งทั้ง repository ตัดความลับ ข้อมูลส่วนบุคคล และไฟล์ที่ไม่เกี่ยวข้องออกจากข้อมูลที่ส่งให้ agent พรอมป์ต์ระบบสามารถระบุข้อกำหนดในการจัดการข้อมูลได้ แต่ใช้แทนการควบคุมสิทธิ์เข้าถึงหรือการลดปริมาณข้อมูลไม่ได้
ตรวจสอบสิทธิ์การใช้เครื่องมืออย่างรอบคอบพอ ๆ กับเนื้อหาในพรอมป์ต์ ClineCore รองรับนโยบายเครื่องมือเริ่มต้นและนโยบายเฉพาะเซสชัน ส่วนความสามารถของ runtime อาจรวมถึงตัวดำเนินการเครื่องมือที่ไคลเอนต์เป็นผู้จัดการและ callback สำหรับการอนุมัติ ปิดเครื่องมือไว้เมื่อไม่จำเป็นต่องาน หากต้องใช้เครื่องมือ ให้กำหนดนโยบายและการอนุมัติให้เหมาะกับผลกระทบที่อาจเกิดขึ้น reference อธิบายจุดเชื่อมต่อสำหรับการกำหนดค่าเหล่านี้ แต่ไม่ได้ระบุพฤติกรรมของเครื่องมือแต่ละรายการ หรือรับประกันว่านโยบายใดนโยบายหนึ่งจะป้องกันการกระทำที่ละเอียดอ่อนได้ทั้งหมด
ให้ถือว่าระเบียนเซสชันอาจมีข้อมูลละเอียดอ่อน API สามารถแสดงรายการเซสชัน ดึงข้อมูลเมตาและข้อความ อ่านข้อมูลการใช้งานสะสม อัปเดตระเบียน และลบเซสชัน ความสามารถเหล่านี้หมายความว่าแอปพลิเคชันของคุณควรกำหนดว่าใครเรียกใช้เมธอดเหล่านี้ได้ และจะใช้นโยบายการเก็บรักษาข้อมูลแบบใด หลีกเลี่ยงการใส่ความลับหรือข้อมูลส่วนบุคคลที่ไม่จำเป็นไว้ใน sessionMetadata ข้อความเริ่มต้น หรือพรอมป์ต์ เพราะข้อมูลเมตาและข้อความเป็นข้อมูลของเซสชัน ไม่ใช่พื้นที่จัดเก็บความลับที่ปลอดภัย
ตัวเลือก distinctId อธิบายไว้ว่าเป็นตัวระบุ telemetry/ผู้ใช้ที่คงที่ หากใช้งาน ให้พิจารณาว่าแอปพลิเคชันของคุณจำเป็นต้องใช้ตัวระบุที่คงที่หรือไม่ และตัวระบุนั้นอาจระบุตัวบุคคลได้หรือเปล่า reference ไม่ได้อธิบายการเก็บ telemetry ระยะเวลาจัดเก็บ หรือการทำให้ไม่ระบุตัวบุคคล ดังนั้นอย่าสันนิษฐานว่าตัวระบุดังกล่าวไม่เปิดเผยตัวตน หรือการกำหนดค่านี้ควบคุม telemetry ทั้งหมด
แก้ไขปัญหาการตั้งค่าที่พบบ่อย
- สร้างเซสชันแล้วระบบปฏิเสธการกำหนดค่า: ตรวจสอบว่ามี
configและรหัสผู้ให้บริการกับโมเดลตรงกับค่าที่ผู้ให้บริการยอมรับ ตัวอย่างใน reference ที่ให้มาไม่ใช่รายการผู้ให้บริการทั้งหมด - การยืนยันตัวตนล้มเหลว: ตรวจสอบว่าโปรเซสเซิร์ฟเวอร์เข้าถึง key ได้ key ตรงกับผู้ให้บริการที่เลือก และไม่ได้ถูกตัดช่องว่างหรือแทนที่โดยไม่ตั้งใจ อย่าใส่ key ในพรอมป์ต์เพื่อวินิจฉัยปัญหา หรือวางลงใน ticket
- ตัวเลือกเฉพาะผู้ให้บริการถูกละเว้นหรือถูกปฏิเสธ: ClineCore reference ไม่ได้ระบุความเข้ากันได้ของ endpoint หรือพารามิเตอร์ที่ใช้ได้กับทุกกรณี ให้ตรวจสอบเอกสารของผู้ให้บริการและ SDK แทนการสันนิษฐานว่าการตั้งค่าของผู้ให้บริการรายหนึ่งใช้กับอีกรายได้
- เซสชันทำงานได้มากกว่าที่ตั้งใจ: ตรวจสอบ
enableTools, นโยบายเครื่องมือ และความสามารถที่ส่งให้ เริ่มต้นโดยปิดเครื่องมือเมื่อไม่จำเป็น แล้วเปิดเฉพาะเครื่องมือที่เวิร์กโฟลว์ต้องใช้ - มีเนื้อหาละเอียดอ่อนปรากฏในประวัติ: ตรวจสอบเส้นทางการทำงานของแอปพลิเคชันที่เรียกใช้
readMessages,listและ API เซสชันที่เกี่ยวข้อง จากนั้นกำหนดการอนุญาตและการเก็บรักษาข้อมูลให้เหมาะสม reference ระบุ API เหล่านี้ แต่ไม่ได้กำหนดวิธีจัดเก็บหรือการป้องกันการเข้าถึงในแอปพลิเคชันของคุณ - งานยังทำต่อไปโดยไม่คาดคิด: ใช้เมธอด
abortหรือstopที่ระบุไว้สำหรับเซสชัน และกำจัดทรัพยากร runtime เมื่อแอปพลิเคชันใช้งานเสร็จแล้ว
รายการตรวจสอบก่อนเริ่มใช้งานที่นำกลับมาใช้ได้
ก่อนเปิดใช้เวิร์กโฟลว์ ClineCore ให้ตรวจสอบว่าข้อมูลรับรองยังอยู่ฝั่งเซิร์ฟเวอร์ workspace มีเฉพาะไฟล์ที่จำเป็น พรอมป์ต์และข้อมูลเมตาไม่มีความลับ จำกัดและตรวจสอบสิทธิ์การใช้เครื่องมือ มีผู้รับผิดชอบประวัติเซสชันและนโยบายการเก็บรักษาข้อมูล และได้ตรวจสอบการตั้งค่าเฉพาะผู้ให้บริการกับเอกสารปัจจุบันของผู้ให้บริการแล้ว เมื่อต้องแก้ไขข้อบกพร่อง ให้บันทึกเฉพาะข้อมูลที่ไม่ละเอียดอ่อน เช่น เซสชันเริ่มต้นหรือไม่ และใช้ request ID ภายในรายการใด อย่าบันทึกข้อมูลรับรอง พรอมป์ต์ฉบับเต็ม หรือไฟล์ซอร์ส
ClineCore reference รองรับจุดเชื่อมต่อสำหรับการกำหนดค่าและการจัดการเซสชัน แต่ไม่ได้รับประกันความเป็นส่วนตัวโดยครอบคลุมทุกกรณี การใช้งานที่คำนึงถึงความเป็นส่วนตัวขึ้นอยู่กับวิธีที่แอปพลิเคชันส่งข้อมูล จำกัดสิทธิ์การใช้เครื่องมือ ปกป้องระเบียนเซสชัน และจัดการข้อมูลรับรอง
แหล่งข้อมูล
- เอกสารอ้างอิง ClineCore API — ตัวเลือก API การกำหนดค่าเซสชัน เมธอดจัดการเซสชัน และภาพรวมระบบอัตโนมัติ
คำถามที่พบบ่อย
การตั้งค่า ClineCore ใดบ้างที่ไม่ขึ้นกับผู้ให้บริการ?
reference ระบุตัวเลือก runtime ที่ใช้ร่วมกัน เช่น `clientName`, `backendMode`, นโยบายเครื่องมือ ความสามารถ และระบบอัตโนมัติ การกำหนดค่าเซสชันยังรวมถึงรหัสผู้ให้บริการและโมเดล ข้อมูลรับรอง และฟิลด์ runtime ด้วย reference ไม่ได้ยืนยันความเข้ากันได้ของ endpoint และพารามิเตอร์เฉพาะผู้ให้บริการที่ใช้ได้ทั่วไป จึงควรตรวจสอบแยกต่างหาก
ใส่ API key ในพรอมป์ต์ของ Cline ได้อย่างปลอดภัยหรือไม่?
ไม่ได้ ควรเก็บข้อมูลรับรองไว้ในการกำหนดค่าฝั่งเซิร์ฟเวอร์ที่เชื่อถือได้ และส่งผ่านกลไกการกำหนดค่าเซสชันตามที่ระบุไว้ อย่าใส่ key ในพรอมป์ต์ ข้อความ ข้อมูลเมตา หรือล็อก
ClineCore ทำให้ข้อมูลเซสชันไม่ระบุตัวตนโดยอัตโนมัติหรือไม่?
API reference ที่ให้มาไม่ได้ระบุเรื่องการทำให้ไม่ระบุตัวตน การเก็บ telemetry หรือการปกป้องข้อมูลเซสชัน ให้ถือว่าข้อความ ข้อมูลเมตา ตัวระบุ และบันทึกการใช้งานอาจเป็นข้อมูลละเอียดอ่อน และกำหนดการควบคุมสิทธิ์เข้าถึงกับการเก็บรักษาข้อมูลด้วยตนเอง
จะลดสิ่งที่ coding agent เข้าถึงได้อย่างไร?
ส่งเฉพาะไฟล์ที่จำเป็นต่องาน ใช้ workspace ที่จำกัดขอบเขตเมื่อทำได้ และตรวจสอบนโยบายเครื่องมือกับความสามารถ ปิดเครื่องมือเมื่อไม่จำเป็น ทั้งนี้ผลของเครื่องมือแต่ละรายการขึ้นอยู่กับการนำไปใช้งานของคุณ
บทความที่เกี่ยวข้อง
Guides
ตั้งค่า Cline ให้ใช้ผู้ให้บริการที่รองรับ OpenAI เพื่อดึงข้อมูลตาม JSON Schema
ตั้งค่าผู้ให้บริการที่รองรับ OpenAI ใน Cline แล้วใช้เวิร์กโฟลว์ coding agent เพื่อสร้างและตรวจสอบการดึงข้อมูลแบบมีโครงสร้างด้วย JSON Schema
Guides
ตั้งค่า Provider ที่เข้ากันได้กับ OpenAI ใน Cline สำหรับถามตอบเอกสารพร้อมระบุแหล่งอ้างอิง
ตั้งค่า Provider ที่เข้ากันได้กับ OpenAI ผ่าน Cline SDK แล้วสร้างเวิร์กโฟลว์ถามตอบเอกสารที่ส่งคืนข้อมูลอ้างอิงซึ่งตรวจสอบได้
Guides
Cline กับผู้ให้บริการที่เข้ากันได้กับ OpenAI สำหรับคัดแยกคำขอฝ่ายสนับสนุนโดยมีมนุษย์อนุมัติ
กำหนดค่า Cline ร่วมกับผู้ให้บริการที่เข้ากันได้กับ OpenAI และ OneMux เพื่อคัดแยกคำขอฝ่ายสนับสนุนลูกค้า โดยให้ทุกการดำเนินการที่มีผลต่อลูกค้าต้องผ่านการอนุมัติจากมนุษย์
Guides
วิธีกำหนดค่า Cline ให้ใช้ผู้ให้บริการที่เข้ากันได้กับ OpenAI สำหรับการเปลี่ยนแปลงใน Repository ที่ตรวจสอบแล้ว
กำหนดค่า Cline ให้ใช้ผู้ให้บริการที่เข้ากันได้กับ OpenAI เชื่อมต่อกับเวิร์กโฟลว์การเขียนโค้ด และตรวจสอบการเปลี่ยนแปลงใน repository ด้วยการทดสอบ ครอบคลุมข้อกำหนดเบื้องต้น การกำหนดค่า TypeScript ข้อจำกัด และการแก้ไขปัญหา