Cline核心说明文档
什么是Cline? (What is Cline?)
Cline是一个与Microsoft Visual Studio Code集成的AI开发助手。它在您的IDE和大语言模型(LLMs)之间提供接口,促进代码开发,提高生产力,并降低新手程序员的入门门槛。根据权限设置,Cline可以读/写文件,执行命令,使用您的网络浏览器,并通过模型上下文协议(Model Context Protocol)服务器扩展其功能。
Cline的与众不同之处在于其对代码生成的深思熟虑方法和广泛的集成能力。Cline不仅仅是生成代码片段,而是通过逐步规划解决方案,保持对整个开发环境的感知,并要求对所有更改进行明确批准,从而与开发者进行协作。它能够理解大型代码库,加速新工程师的入职过程,并通过其模型上下文协议市场与数百种工具连接,实现从简化项目部署到自动化事件响应的一切功能——所有这些都通过自然语言命令完成。
零、核心概念
提示 (Prompt): 您输入给 Cline Bot 的文本,用于指示它执行任务、回答问题或生成内容。
提示工程 (Prompt Engineering): 设计和优化提示的过程,旨在从 AI 模型(如 Cline Bot)中获得期望的输出。
上下文窗口 (Context Window): Cline Bot 在生成响应时能考虑到的对话历史或当前提示中包含的信息量。超出此窗口的信息可能会被遗忘。
角色设定 (Role Prompting): 在提示中为 Cline Bot 指定一个特定角色(如专家、助手、特定人物等),引导其以该角色的视角和知识库进行响应。
小样本学习 (Few-Shot Learning): 在提示中提供少量输入-输出示例,演示您期望的任务完成方式,指导 Cline Bot 进行模仿。
思维链 (Chain-of-Thought, CoT): 鼓励 Cline Bot 在给出最终答案前,先展示其推理步骤(“一步一步思考”)。这通常能提高复杂问题解答的准确性。
参数 (Parameters): (如果 Cline Bot 提供 API 或高级界面) 影响模型行为的设置,如 temperature(温度,控制创造性/随机性)、max_tokens(最大令牌数,控制响应长度)等。
撰写有效提示的核心技巧
清晰明确 (Be Clear and Specific):
目标明确: 清晰阐述您希望 Cline Bot 完成什么任务。避免模糊不清的指令。
具体细节: 提供必要的背景信息、约束条件和具体要求。
例子:
模糊: “写点关于人工智能的东西。”
明确: “以技术博客的风格,写一篇 300 字左右的短文,介绍生成式 AI 对内容创作行业的主要影响,目标读者是市场营销经理。”
模糊: “总结这个文档。”
明确: “请总结下面提供的会议纪要文档,重点突出关键决策、分配的行动项(包括负责人和截止日期)以及未解决的重要议题。保持总结简洁,不超过 150 字。”
提供充足的上下文 (Provide Sufficient Context):
背景信息: 如果任务依赖于特定信息,请将其包含在提示中。
参考内容: 如果要 Cline Bot 处理特定文本、代码或数据,请将该内容包含在提示中(注意上下文窗口限制)。
对话历史: 在连续对话中,Cline Bot 通常会记住之前的交流。对于复杂任务,简要重述关键点有时也有帮助。
设定角色 (Assign a Role):
引导视角和风格: 告诉 Cline Bot “作为…” 来引导其使用特定的专业知识、语气或风格。
例子:
“你是一位经验丰富的软件工程师。请用 Python 编写一个函数,接收一个整数列表作为输入,返回该列表的平均值。”
“你是一位友好的客户服务代表。请用简洁易懂的语言回复以下客户关于订单状态 (#ORD12345) 的询问:‘我的订单发货了吗?’”
“你是一位严厉的历史教授。请评价下面这篇学生关于法国大革命起因的论文草稿,指出其论据的优缺点并提供改进建议。”
结构化您的提示 (Structure Your Prompt):
使用分隔符: 用 ###, “”", — 等符号分隔提示的不同部分(如指令、上下文、示例、问题),提高可读性。
分步指令: 对于复杂任务,将提示分解为清晰的步骤。
例子:
text
指令
你是一位专业的文案编辑。请完成以下任务:
- 校对下面这段营销文案,纠正语法、拼写和标点错误。
- 优化文案的可读性和吸引力,使其更符合目标受众(18-25 岁的年轻消费者)。
- 保持原文的核心信息和品牌调性不变。
待编辑文案
[在此处粘贴您的营销文案]
利用小样本学习 (Use Few-Shot Learning):
展示而非仅说明: 提供 1-3 个输入和期望输出的示例,清晰地展示任务模式。
例子 (情感分析):
text
任务:判断以下评论的情感倾向(积极、消极、中立)。
示例1:
输入: “这款手机电池续航太差了,半天就没电!”
输出: 消极
示例2:
输入: “送货速度很快,包装也很精美。”
输出: 积极
示例3:
输入: “产品收到了,还没开始用。”
输出: 中立
现在请判断:
输入: “相机效果不错,但系统偶尔会卡顿。”
输出:
鼓励思维链 (Encourage Chain-of-Thought):
要求展示推理: 对于需要逻辑、数学或复杂分析的问题,在提示中明确要求 Cline Bot “一步一步地推理” 或 “展示你的思考过程”。
例子:
“小明有 5 个苹果。他吃了 2 个,然后买了 4 个橘子。请问他现在总共有多少个水果?请一步一步地推理。”
“分析这篇文章的主要论点及其支持论据。请逐步解释你的分析过程。”
定义输出格式 (Specify the Output Format):
明确要求: 告诉 Cline Bot 您希望响应以何种形式呈现(如列表、表格、JSON、Markdown、特定字数限制、特定章节标题等)。
例子:
“请列出实施这个项目的 5 个关键步骤,使用编号列表。”
“将比较结果用表格形式呈现,列分别为:特性、产品A、产品B、产品C。”
“用 JSON 格式生成包含 ‘name’、‘email’ 和 ‘phone’ 字段的 3 个模拟用户资料。”
迭代和优化 (Iterate and Refine):
首次尝试不完美是正常的: 如果第一次响应不理想,不要气馁。分析响应的问题。
修改提示: 基于初始结果调整您的提示:增加细节、澄清模糊点、提供更多上下文、改变结构、尝试不同角色设定或小样本示例。
逐步完善: 提示工程通常是一个逐步优化、实验的过程。
高级技巧 (如适用)
系统提示 (System Prompts): (如果 Cline Bot API/高级界面支持) 在对话开始时设定一个隐藏的、持久的“系统”级提示,用于定义助手的整体行为、知识边界或沟通准则(例如,“你是一个乐于助人且无害的AI助手。始终提供准确的信息,如果不知道就承认。”)。
利用外部工具/函数调用 (Utilize External Tools/Function Calling): (如果 Cline Bot 支持) 在提示中指示 Cline Bot 在需要时使用特定的工具或 API 来获取信息或执行操作(例如,“使用天气插件查询北京今天的最高温度”)。
控制参数 (Control Parameters): (如果可配置) 调整 temperature(较低值如 0.2 使输出更确定、保守;较高值如 0.8 使输出更随机、有创意)、max_tokens(限制响应长度)、top_p(控制采样范围)等参数以微调输出。
常见陷阱与避免方法
提示过于模糊或宽泛: 导致无关或不理想的输出。 解决: 具体化目标和约束。
缺少关键上下文: Cline Bot 无法凭空准确完成任务。 解决: 提供必要的信息或数据。
假设过多: 假设 Cline Bot 知道您未明确说明的事情。 解决: 明确所有前提和假设。
提示过长或结构混乱: 核心指令可能被淹没。 解决: 保持简洁,使用清晰结构(分隔符、分点)。
未定义输出格式: 得到的结果可能难以使用。 解决: 明确指定所需的格式。
忽略上下文窗口限制: 过长的提示或对话历史可能被截断,导致信息丢失。 解决: 精简输入,总结关键点,对于超长文档考虑分块处理。
不进行迭代: 期望第一次就得到完美结果。 解决: 将提示工程视为迭代过程,根据反馈调整。
Cline Bot 特定提示技巧 (请参考官方文档确认)
文件上传结合提示: 上传文件后,在提示中明确指出要对该文件执行什么操作(分析、总结、基于其内容提问等)。例如:“总结我刚上传的 PDF 报告中的主要结论。”
利用计划与执行能力: 对于需要多步骤的任务,清晰地描述最终目标,Cline Bot 可能会自动分解步骤并执行。例如:“帮我分析过去三个月的销售数据(文件已上传),找出销售额最高的产品类别,并预测下个季度的趋势。”
拖放结合提示: 拖放内容(文本、链接、文件)后,紧接着输入您希望 Cline Bot 对该内容执行的操作指令。例如:拖放一个链接后输入:“总结这个网页的关键论点。”
对话历史利用: Cline Bot 通常维护对话上下文。在后续提示中,可以用“之前提到的…”、“根据我们之前的讨论…”来引用历史信息(注意上下文窗口限制)。
总结
掌握提示工程是高效、创造性使用 Cline Bot 的关键。通过遵循清晰性、具体性、提供上下文、设定角色、结构化提示、利用小样本学习和思维链等原则,并不断迭代优化,您可以显著提升与 Cline Bot 交互的质量和产出价值。将本指南作为起点,通过实践探索最适合您需求的最佳提示策略。记住,好的提示是与 AI 协作的艺术!
一、自动批准 (Auto approve)
自动批准菜单允许您设置细粒度权限,决定允许Cline以自动化方式执行哪些操作。
工作原理
默认情况下,Cline在调用任何工具(包括读取或写入文件)之前都会请求您的许可。
如果您希望允许Cline无需询问即可执行某些操作,可以为该工具设置自动批准权限。
权限选项
-
读取项目文件
- 允许Cline无需询问即可读取当前工作区内的文件
- 读取所有文件
- 将读取权限扩展到工作区外的文件(系统文件、配置文件等)
-
编辑项目文件
- 允许Cline无需确认即可修改当前工作区内的文件
- 编辑所有文件
- 将修改权限扩展到工作区外的文件
-
执行安全命令
- 允许执行模型认为无破坏性的终端命令
- 执行所有命令
- 允许无需询问即可执行任何终端命令
-
使用浏览器
- 允许Cline使用浏览器工具获取网络内容
-
使用MCP服务器
- 允许连接并使用MCP服务器以获取扩展功能
-
最大请求数
- 设置Cline在需要您输入之前可以采取的连续自动操作数量
最佳实践
就个人而言,我喜欢保持自动编辑功能禁用,因为这样可以让我有机会逐步审查每一个更改。
对于大多数严肃的开发工作流程,我建议从以下设置开始:
- 自动批准对项目文件的读取访问
- 设置合理的最大请求限制(10-20次)
这让Cline有足够的自由度来探索您的代码库,而不会不断中断,同时仍然需要获得编辑或潜在破坏性操作的权限。
随着您对Cline在特定项目中的能力建立更多信任,您可以逐渐增加权限以匹配您的舒适度。
请记住,您始终可以根据需求变化调整这些设置 - 对关键的生产工作收紧权限,或在原型设计和探索时放宽权限。
您甚至可以使用快速"星标"操作来随时快速切换您的自动批准选择。
二、检查点 (Checkpoints)
检查点功能会在任务的每个步骤后自动保存工作区的快照。此功能让您可以跟踪更改、在需要时回滚,并自信地进行代码实验。
Cline在每次使用工具(文件编辑、命令等)后创建检查点。这些检查点:
- 与您的Git工作流并行运行,不会相互干扰
- 在恢复之间保持上下文
- 使用影子Git仓库来跟踪更改
例如,如果您正在开发一个功能,而Cline进行了多个文件更改,每次更改都会创建一个检查点。这意味着您可以查看每个修改,并在需要时回滚到任何点,而不会影响您的主Git仓库。
查看更改和恢复
每次使用工具后,您可以:
- 点击"比较"按钮查看修改的文件
- 点击"恢复"按钮打开恢复选项
恢复选项
要恢复到之前的点:
- 点击任何步骤旁边的"恢复"按钮
- 从三个选项中选择:
- 恢复任务和工作区:将代码库和任务都重置到该点
- 仅恢复任务:保留代码库更改但恢复任务上下文
- 仅恢复工作区:重置代码库同时保留任务上下文
示例:如果Cline在设计组件样式时做了您不喜欢的更改,您可以使用"仅恢复工作区"来恢复代码更改,同时保持对话上下文,从而尝试不同的方法。
将代码库和任务都恢复到进行任何更改之前的状态,以重新开始
使用场景
检查点让您可以更加实验性地使用Cline。虽然人类编码通常是有条理且迭代的,但AI可以快速进行大量更改。检查点帮助您跟踪这些更改,并在需要时恢复。
使用自动批准模式
- 为快速迭代提供安全网
- 使撤销意外结果变得容易
测试不同方法
- 自信地尝试多种解决方案
- 比较不同的实现
- 快速恢复到工作状态
- 非常适合探索不同的设计模式或架构方法
最佳实践
- 在实验时将检查点用作安全网
- 更自信地利用自动批准模式,因为您知道随时可以回滚
- 根据需要选择性地恢复:
- 使用"恢复任务和工作区"重新开始
- 使用"仅恢复任务"尝试不同的提示,但保留文件更改
- 使用"仅恢复工作区"尝试不同的实现,同时保留对话上下文
与消息编辑的关系
消息编辑功能在您选择"全部恢复"选项时在底层使用检查点。这不仅允许您编辑和重新提交消息,还可以将工作区恢复到对话中该点的状态。
删除检查点
您可以通过使用任务历史菜单中的**“删除所有历史记录”**按钮删除所有检查点。请注意,这也将删除所有任务。检查点存储在VS Code的globalStorage中。
三、Cline规则 (Cline rules)
Cline规则允许您为Cline提供系统级指导。可以将它们视为一种持久化方式,用于为您的项目或全局对话包含上下文和偏好设置。
创建规则
您可以通过点击规则选项卡中的+
按钮创建规则。这将在您的IDE中打开一个新文件,您可以用它来编写规则。
保存文件后:
- 如果是工作区规则,您的规则将存储在项目的
.clinerules/
目录中 - 如果是全局规则,则存储在
Documents/Cline/Rules
目录中
您也可以通过在聊天中使用/newrule
斜杠命令让Cline为您创建规则。
Cline规则结构示例
# 项目指南## 文档要求- 修改功能时更新/docs中的相关文档
- 保持README.md与新功能同步
- 在CHANGELOG.md中维护更新日志条目## 架构决策记录在/docs/adr中创建ADR,用于:- 主要依赖项更改
- 架构模式更改
- 新集成模式
- 数据库架构更改遵循/docs/adr/template.md中的模板## 代码风格与模式- 使用OpenAPI Generator生成API客户端
- 使用TypeScript axios模板
- 将生成的代码放在/src/generated中
- 优先使用组合而非继承
- 使用仓库模式进行数据访问
- 遵循/src/utils/errors.ts中的错误处理模式## 测试标准- 业务逻辑需要单元测试
- API端点需要集成测试
- 关键用户流程需要端到端测试
主要优势
- 版本控制:
.clinerules
文件成为项目源代码的一部分 - 团队一致性:确保所有团队成员行为一致
- 项目特定:规则和标准针对每个项目的需求量身定制
- 机构知识:在代码中维护项目标准和实践
将.clinerules
文件放在项目的根目录中:
your-project/
├── .clinerules
├── src/
├── docs/
└── ...
另一方面,Cline的系统提示不可由用户编辑(您可以在这里找到它)。有关提示工程最佳实践的更广泛了解,请查看此资源。
编写有效Cline规则的技巧
- 清晰简洁:使用简单的语言,避免歧义。
- 关注期望结果:描述您想要的结果,而不是具体步骤。
- 测试和迭代:实验以找出最适合您工作流程的方法。
.clinerules/文件夹系统
your-project/
├── .clinerules/ # 包含活动规则的文件夹
│ ├── 01-coding.md # 核心编码标准
│ ├── 02-documentation.md # 文档要求
│ └── current-sprint.md # 当前工作特定的规则
├── src/
└── ...
Cline自动处理.clinerules/
目录中的所有Markdown文件,将它们组合成一套统一的规则。数字前缀(可选)有助于以逻辑顺序组织文件。
使用规则库
对于具有多个上下文或团队的项目,维护一个规则库目录:
your-project/
├── .clinerules/ # 活动规则 - 自动应用
│ ├── 01-coding.md
│ └── client-a.md
│
├── clinerules-bank/ # 可用但非活动规则的存储库
│ ├── clients/ # 客户特定规则集
│ │ ├── client-a.md
│ │ └── client-b.md
│ ├── frameworks/ # 框架特定规则
│ │ ├── react.md
│ │ └── vue.md
│ └── project-types/ # 项目类型标准
│ ├── api-service.md
│ └── frontend-app.md
└── ...
文件夹方法的优势
- 上下文激活:仅从规则库复制相关规则到活动文件夹
- 更易维护:更新单个规则文件而不影响其他文件
- 团队灵活性:不同团队成员可以激活特定于当前任务的规则
- 减少噪音:保持活动规则集专注和相关
使用示例
在客户项目之间切换:
# 切换到客户B项目
rm .clinerules/client-a.md
cp clinerules-bank/clients/client-b.md .clinerules/
适应不同的技术栈:
# 前端React项目
cp clinerules-bank/frameworks/react.md .clinerules/
实施技巧
- 保持单个规则文件专注于特定关注点
- 使用清晰表明规则用途的描述性文件名
- 考虑git忽略活动
.clinerules/
文件夹,同时跟踪clinerules-bank/
- 创建团队脚本以快速激活常见规则组合
文件夹系统将您的Cline规则从静态文档转变为动态知识系统,适应团队不断变化的上下文和需求。
使用可切换弹出窗口管理规则
为了使管理单个.clinerules
文件和文件夹系统更加容易,Cline v3.13引入了一个专用的弹出式UI,可直接从聊天界面访问。
这个位于聊天输入字段下方的弹出窗口允许您:
- **即时查看活动规则:**查看当前活动的全局规则(来自用户设置)和工作区规则(
.clinerules
文件或文件夹内容)。 - **快速切换规则:**通过单击启用或禁用工作区
.clinerules/
文件夹中的特定规则文件。这非常适合仅在需要时激活特定上下文的规则(如react-rules.md
或memory-bank.md
)。 - **轻松添加/管理规则:**如果不存在工作区
.clinerules
文件或文件夹,可以快速创建,或向现有文件夹添加新规则文件。
这个UI显著简化了在对话期间切换上下文和管理不同指令集的过程,无需手动编辑文件或配置。
四、规划与执行 (Plan & Act)
规划与执行模式代表了Cline对结构化AI开发的方法,强调在实施前进行深思熟虑的规划。这种双模式系统帮助开发者创建更易维护、更准确的代码,同时减少迭代时间。
规划模式:先思考
规划模式是您和Cline一起确定要构建什么以及如何构建的阶段。在这种模式下,Cline:
- 可以阅读您的整个代码库以理解上下文
- 不会对您的文件进行任何更改
- 专注于理解需求并创建策略
- 帮助在编写任何代码之前识别潜在问题
执行模式:开始构建
一旦您有了计划,就切换到执行模式。现在Cline:
- 拥有所有构建能力
- 可以对您的代码库进行更改
- 仍然记得规划会话中的所有内容
- 执行您共同制定的策略
工作流指南
当我在开发新功能或修复复杂bug时,以下是我的工作方式:
- 我在规划模式下开始,告诉Cline我想要构建什么
- Cline帮助我探索代码库,查看相关文件
- 我们一起找出最佳方法,考虑边缘情况和潜在问题
- 当我对我们的计划有信心时,我切换到执行模式
- Cline基于我们的规划实施解决方案
1. 从规划模式开始
在规划模式下开始每个重要的开发任务:
在此模式下:
- 分享您的需求
- 让Cline分析相关文件
- 进行对话以明确目标
- 制定实施策略
2. 切换到执行模式
一旦您有了明确的计划,切换到执行模式:
执行模式允许Cline:
- 执行已商定的计划
- 对您的代码库进行更改
- 保持规划阶段的上下文
3. 根据需要迭代
复杂项目通常需要多个规划-执行周期:
- 遇到意外复杂性时返回规划模式
- 使用执行模式实施解决方案
- 保持开发动力的同时确保质量
最佳实践
规划阶段
- 全面了解需求
- 提前分享相关上下文
- 如果Cline尚未阅读,指引其查看相关文件
- 在实施前验证方法
实施阶段
- 遵循既定计划
- 监控目标进度
- 跟踪更改及其影响
- 记录重要决策
高级用户技巧
增强规划
- 使用规划模式在实施前探索边缘情况
- 遇到意外复杂性时切换回规划模式
- 利用文件阅读功能尽早验证假设
- 让Cline编写计划的markdown文件以供将来参考
常见模式
何时使用各模式
我发现规划模式在以下情况最有效:
- 开始新项目,方法不明显时
- 调试棘手问题,不确定问题所在时
- 做出会影响代码库多个部分的架构决策时
- 尝试理解复杂工作流或功能时
而执行模式非常适合:
- 实施我们已经规划好的解决方案
- 进行方法明确的常规更改
- 遵循代码库中已建立的模式
- 运行测试并进行微调