GuidesOneMux

กำหนดค่า ClineCore สำหรับเซสชันเขียนโค้ดที่คำนึงถึงความเป็นส่วนตัว

คู่มือเชิงปฏิบัติสำหรับกำหนดค่าเซสชัน ClineCore จำกัดการเปิดเผยข้อมูลที่ละเอียดอ่อน และแก้ไขปัญหาการตั้งค่าที่พบบ่อย

AI

สรุป · 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 ใดบ้างที่ไม่ขึ้นกับผู้ให้บริการ?

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 ข้อจำกัด และการแก้ไขปัญหา

阅读全文 →