指南OneMux

配置 ClineCore,打造注重隐私的编程会话

实用指南:配置 ClineCore 会话、减少敏感数据暴露,并排查常见设置问题。

AI

摘要 · TL;DR

ClineCore 将共享运行时选项与会话模型配置分开管理。利用这一设计,可以避免凭据进入提示词和日志、限制持久化数据,并在排查配置问题时避免假定所有提供商都支持相同参数。

核心要点

  • 将后端、工具策略和运行时能力设为 ClineCore 的共享选项;模型和凭据设置则传入各个会话。
  • 将 API 密钥保存在服务器端环境变量中,绝不要放入提示词、元数据或预加载消息。
  • 将会话消息、标识符和用量记录视为可能包含敏感信息的数据;明确谁可以访问这些数据,以及保留多久。
  • 必须根据提供商文档确认提供商专属字段和端点兼容性;ClineCore 提供的参考资料并未证明这些设置具有普遍兼容性。
文章目录 (6)

发送私密代码前先配置会话

ClineCore 可让应用创建运行时,并使用模型和运行时配置启动会话。隐私方面的实际考量不只是选择哪个提供商,还包括会话会接收哪些数据、哪些工具可以对这些数据执行操作,以及应用之后会持久化或暴露哪些内容。

以下示例仅供说明,并非经过测试的集成方案。ClineCore 参考资料介绍了 API 的结构,但并未证明每个提供商都接受相同的模型参数或端点设置。依赖提供商专属选项之前,请先查阅该提供商的文档。

区分共享设置与会话设置

ClineCore.create 选项涵盖客户端名称、后端模式、工具策略、能力,以及是否启用自动化等设置。start 调用需要一个包含会话模型和运行时设置的 config。文档中的示例包含 providerId、modelId、apiKey、systemPrompt、cwd、workspaceRoot,以及工具和智能体标志。

一种最精简的服务器端模式如下:

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,
  },
})

此示例使用环境变量来处理凭据;参考资料并未规定必须使用密钥管理器,也未定义这些环境变量的名称。请将密钥保存在可信服务器上,不要发送到浏览器端代码,也不要将会话配置输出到应用日志中。如果提供商要求设置端点或其他参数,请仅按照其文档进行配置,并确认 ClineCore 支持所需字段。

明确隐私方面的决策

启动会话前,先确定智能体实际需要什么。任务允许时,优先提供范围较小的工作区或选定文件,而不是整个代码仓库。从提供给智能体的材料中排除密钥、个人数据和无关文件。系统提示词可以说明数据处理要求,但不能代替访问控制或数据最小化措施。

审查工具访问权限时,也要像审查提示词内容一样谨慎。ClineCore 支持默认工具策略和逐会话工具策略,运行时能力也可以包括客户端自有的工具执行器和审批回调。任务不需要工具时,请保持工具禁用;需要使用工具时,应根据其影响设置合适的策略和审批机制。参考资料介绍了这些配置接口,但未定义每种工具的行为,也不保证特定策略能够阻止所有敏感操作。

请将会话记录视为可能包含敏感信息的数据。API 可以列出会话、获取元数据和消息、读取累计用量、更新记录以及删除会话。因此,应用应明确哪些人可以调用这些方法,以及适用哪些数据保留规则。避免在 sessionMetadata、初始消息或提示词中放入密钥或不必要的个人信息:元数据和消息属于会话数据,并非安全的密钥存储方式。

distinctId 选项被描述为稳定的遥测/用户标识符。如果使用该选项,请考虑应用是否确实需要稳定标识符,以及它是否可能识别出某个人。参考资料并未说明遥测数据的收集、保留或匿名化方式,因此不要假设该标识符是匿名的,也不要假设设置它就能控制所有遥测数据。

排查常见设置问题

  • 创建会话时配置被拒绝: 确认 config 已提供,并核对提供商和模型标识符是否符合提供商接受的值。现有参考资料给出的是示例,并非完整的提供商目录。
  • 身份验证失败: 检查服务器进程是否能够读取密钥、密钥是否对应所选提供商,以及密钥是否意外被截断或替换。切勿将密钥放入诊断提示词或粘贴到工单中。
  • 提供商专属选项被忽略或拒绝: ClineCore 参考资料未说明端点或参数普遍兼容。请查阅提供商和 SDK 文档,不要假设一个提供商的设置也适用于另一个提供商。
  • 会话执行的操作超出预期: 检查 enableTools、工具策略和提供的能力。不需要工具时先将其禁用,然后只启用工作流程所需的工具。
  • 敏感内容出现在历史记录中: 检查应用中哪些路径调用了 readMessages、list 和相关会话 API,然后落实适当的授权和保留控制。参考资料列出了这些 API,但未规定应用的存储或访问保护措施。
  • 工作意外持续运行: 对会话使用文档所述的 abort 或 stop 方法,并在应用不再需要运行时资源时将其释放。

可复用的预检清单

启用 ClineCore 工作流程前,请确认凭据保留在服务器端;工作区仅包含必要文件;提示词和元数据中不含密钥;工具访问权限受到限制并经过审查;会话历史记录有明确的负责人和保留策略;并且已根据提供商当前的文档核对提供商专属设置。调试时,记录会话是否启动、适用的内部请求 ID 等非敏感信息即可,不要记录凭据、完整提示词或源文件。

ClineCore 参考资料提供了配置和会话管理接口,但不构成全面的隐私保证。能否注重隐私地运行,取决于应用如何提供数据、限制工具权限、保护会话记录并处理凭据。

来源

常见问题

ClineCore 中哪些设置与提供商无关?

参考资料介绍了客户端名称 `clientName`、后端模式 `backendMode`、工具策略、能力和自动化等共享运行时选项。会话配置还包括提供商和模型标识符、凭据及运行时字段。参考资料并未确认提供商专属端点和参数的兼容性,因此请另行核实。

把 API 密钥放进 Cline 提示词安全吗?

不安全。请将凭据保存在可信的服务器端配置中,并通过文档所述的会话配置机制传递。不要将密钥放入提示词、消息、元数据或日志中。

ClineCore 会自动匿名化会话数据吗?

所提供的 API 参考资料未说明匿名化、遥测数据保留或会话数据保护机制。请将消息、元数据、标识符和用量记录视为可能包含敏感信息的数据,并自行实施访问控制和保留规则。

如何减少编程智能体可以访问的内容?

只提供完成任务所需的文件,并在可行时使用受限工作区,同时审查工具策略和能力。不需要工具时请将其禁用;具体工具的影响取决于你的实现。

相关文章