「从零搭建智能体与知识库」教程系列第 3 篇。目标:用 Cline 在 VS Code 里完成两个项目——单文件天气查询、双城天气对比(Flask + 前端)。环境:VS Code、Cline 插件、DeepSeek API、高德天气 API。
结论:Cline 是开发场景的 Agent。它不直接回答问题,而是读文件、改代码、跑命令、看报错再改。用好它的关键不是提示词多长,而是三件事:工作目录要小、验收标准要写清、危险操作必须人工确认。
零、准备清单
- VS Code:
https://code.visualstudio.com/; - Cline 插件:扩展市场搜索
Cline,或从https://github.com/cline/cline查看源码; - DeepSeek API Key:
https://platform.deepseek.com/,也可以换成任意 OpenAI 兼容接口; - 高德 Web 服务 Key:
https://console.amap.com/,创建应用 → 添加 Key → 服务平台选「Web服务」; - 两个空目录:
Weather-1、Weather-2。
高德 Key 的类型很关键。前端 JS API 的 Key 不能调 restapi.amap.com,会报 USERKEY_PLAT_NOMATCH。天气接口必须用「Web服务」类型的 Key。
一、安装 Cline,接上模型
- 打开 VS Code 扩展市场,搜索 Cline,点安装。
- 点左侧 Cline 图标,再点右上角齿轮进入设置。
- API Provider 选 DeepSeek,填 API Key;模型选
deepseek-chat。需要长链推理时再换deepseek-reasoner,它更慢也更贵。 - 自动批准(Auto-approve):建议只勾选「读取文件」和「列出文件」。写文件、执行命令保持人工确认,尤其是
rm、git、数据库操作。 - 最大请求数(Max Requests)设 20–50。复杂任务可以调高,但每多一轮就多一次 token。

图 1:在 VS Code 扩展市场搜索 Cline,点安装。

图 2:Provider 选 OpenAI Compatible,填 Base URL、Key 和模型 ID。
验收:在 Cline 对话框输入「列出当前目录的文件」,它会请求读取权限,批准后返回文件名。说明插件和模型都通了。

图 3:自动批准只勾读文件和列目录;Max Requests 设 20–50。
二、案例 1:单文件天气查询
- VS Code 打开空目录
Weather-1。 - Cline 模式选 Act。Plan 只出方案不改文件,适合先拆解复杂任务;这个案例直接做。
- 把需求一次写清,不要让 Cline 猜:
帮我实现一个 weather.py 程序,通过高德天气 API 查询城市天气。 要求: 1. 从环境变量 AMAP_KEY 读取 Key,不要硬编码; 2. 命令行参数传入城市名,例如 python weather.py 北京; 3. 先调用高德地理编码接口把城市名转成 adcode; 4. 再调用天气接口,输出天气、温度、风向、湿度; 5. 请求失败或 Key 无效时,打印可读的错误信息。 - Cline 会请求执行
pip install requests,确认后它会在终端安装。 - 按它提示创建
.env,填入真实 Key;或在 PowerShell 里设置$env:AMAP_KEY="你的Key"。 - 让它运行
python weather.py 北京,检查输出。

图 4:.env 里只放 AMAP_KEY,不要把 Key 写成代码常量。
如果 Key 没配好,先手工验证高德接口,排除代码问题:
curl "https://restapi.amap.com/v3/weather/weatherInfo?city=110000&key=你的高德Key&extensions=base"
返回 status: "1" 且有 lives 数组,说明 Key 和接口都正常;返回 INVALID_USER_KEY 是 Key 错,USERKEY_PLAT_NOMATCH 是 Key 类型错。
验收:python weather.py 北京 输出实时天气;把 AMAP_KEY 改错后,程序给出明确错误而不是抛一堆堆栈。
三、案例 2:双城天气对比项目
这个项目有后端、前端和模型对比,需求要写全,否则 Cline 会自己补设定。
- 新建空目录
Weather-2,VS Code 打开。工作目录越小,Cline 读取上下文越准。 - 输入提示词:
基于高德天气接口实现一个前后端分离项目: 1. 后端用 Python Flask,端口 7777; 2. 前端用 HTML、CSS、JavaScript; 3. 页面提供两个城市输入框和一个查询按钮; 4. 点击后查询两个城市天气,左右对称展示; 5. 调用大模型对比两地天气,前端展示对比结论; 6. 高德 Key 和模型 Key 都从环境变量读取,不要硬编码; 7. 布局美观,窄屏可用。 - Cline 会依次创建
app.py、templates/index.html、static/、requirements.txt、.env.example。 - 每个文件变更都会弹 diff。重点看三处:Key 有没有硬编码、高德接口参数对不对、前端请求地址和端口是否一致。
- 批准运行
python app.py,浏览器打开http://localhost:7777。 - 输入「北京」「上海」,检查两边天气是否对称、对比结论是否非空。
验收:页面 200;两个城市天气都显示;对比结论不是模板空话;Key 错误时有提示;git status 里没有把 .env 提交进去。

图 5:双城天气对比成品页,左右对称展示天气和对比结论。
四、Cline 绕圈时怎么打断
长任务常见两种失控:重复同一段需求、反复改同一个文件。原因通常是网络中断、文件写入失败,或者上下文太长。
- 立刻点 Cancel,不要让它继续重试。
- 追加一条明确的指令:「代码框架已经完成,现在只运行测试找问题,不要重复生成。」
- 模型换成更快的
deepseek-chat,或者把任务拆成「先跑通后端」「再补前端」两步。 - 到达最大请求数时,点 Proceed 继续当前任务;如果已经跑偏,开新任务并带上当前错误日志。
这条经验比提示词技巧更重要:Cline 的每一轮都带完整上下文,绕圈十轮的成本可能超过重新开一个任务。
五、Cline 的五个使用要点
| 要点 | 做法 |
|---|---|
| 模式 | Act 直接改文件;复杂任务先用 Plan 出方案,再切 Act 执行 |
| 自动批准 | 读文件可自动;写文件、执行命令、删除操作保持人工确认 |
| 上下文 | 一个任务一个目录;大仓库先打开子目录,别让它扫全库 |
| 成本 | 执行用 deepseek-chat,规划用 deepseek-reasoner;任务结束就停 |
| 审查 | diff 逐条看;提交前 git status,确认没有密钥和临时文件 |
六、常见报错与处置
| 现象 | 原因 | 处置 |
|---|---|---|
| 401 Unauthorized | DeepSeek Key 错或过期 | 重新填 Key,确认 Provider 选的是 DeepSeek |
| 402 Insufficient Balance | 模型账户余额不足 | 充值或换模型 |
| INVALID_USER_KEY | 高德 Key 错或未启用 | 重新创建 Key,确认应用已启用天气 API |
| USERKEY_PLAT_NOMATCH | Key 类型不是「Web服务」 | 新建 Web 服务 Key,替换后重试 |
| Flask 端口被占用 | 7777 已被其他进程占用 | 改端口,或结束占用进程后重启 |
| Cline 反复重复需求 | 网络中断或文件写入失败 | Cancel,追加「只测试不重写」,或拆任务 |
| 任务停在半途 | 达到 Max Requests | Proceed 继续;跑偏就开新任务并附日志 |
七、边界与系列小结
Cline 适合有明确验收标准的工程任务:能跑、能测、能看 diff。需求模糊、涉及生产数据、需要权限控制时,先 Plan 或人工拆解,不要直接把目标丢给它。它生成的代码必须人工审查,尤其是密钥、SQL、文件删除和命令执行。
前三篇教程到这里:Cherry Studio 解决个人知识库,Dify 解决低代码应用和 Agent 编排,Cline 解决开发场景的自动化。三者都不是「越智能越好」,选型标准还是那句:流程固定用工作流,路径不定才用 Agent。
上一篇:Dify 实战:从聊天助手到会调用工具的旅行 Agent
下一篇
ima 是另一种形态:不部署服务,把本地资料直接导入客户端。下一篇用它做一个个人知识库。

AI项目博客






