使用Cline SDK构建智能体
摘要
一个教程,演示如何使用开源Cline SDK构建发布说明生成智能体,Cline SDK是一个TypeScript框架,用于将智能体运行时嵌入自定义脚本、工具和CI流水线。
暂无内容
查看缓存全文
缓存时间: 2026/05/30 13:19
# 使用 Cline SDK 构建一个 Agent
来源:https://packagemain.tech/p/building-an-agent-with-the-cline-sdk
[](https://substackcdn.com/image/fetch/$s_!86SY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff9ee246e-795a-464e-a37e-247430ae8b35_2786x1554.png)
Cline (https://cline.gg/alex) 是一个专注于真实软件工作的开源 AI 编码 agent。大多数开发者初次接触 Cline 是在编辑器或终端中作为助手,但 Cline 不止于单一界面。
它同时拥有 **CLI** 和 **SDK**:
- **CLI** 用于直接从终端运行 agent 工作流
- **SDK** 用于将相同的 agent 运行时嵌入到你自己的脚本、产品、CI 任务和内部工具中
这种区别很重要。在 Cline SDK 发布公告 (https://cline.bot/blog/introducing-cline-sdk-the-upgraded-agent-runtime) 中,团队解释说最初的产品始于 VS Code 扩展,随着时间的推移,运行时变得难以与周围的 IDE 分离。SDK 正是为了解决这个问题:agent 运行时被视为一个共享服务,而不是隐藏在一个应用程序内部的实现细节。
这也是为什么 SDK 比一个简单的 API 封装更有趣——相同的运行时现在在 CLI 和 IDE 界面上为 Cline 提供支持,同时保持开放,允许其他团队将其嵌入到自己的产品中。底层的 agent 循环保持可复用,而围绕它的有状态运行时变得更加持久、可移植且与产品无关。
SDK 文档将 Cline SDK 描述为一个开源的 **TypeScript** 框架,用于构建 agent 应用程序。发布公告还补充了几个重要理念:
- Cline 2.0 构建为一个分层的 TypeScript 栈
- 团队可以从较小的功能面开始,后续再添加更多运行时组件
- 运行时通过工具、插件、MCP 服务器、技能和钩子进行扩展
- 提供商选择不锁定单一模型供应商
这使得 TypeScript 成为第一个项目的自然选择。
在本文中,我们将构建一个小型的发布说明生成器,使用 Cline SDK 检查最近的 git 历史记录,并将其转化为可读的 Markdown。
[](https://substackcdn.com/image/fetch/$s_!Hbzr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faefe5459-a3a0-42e0-9b00-a7e708b565a2_1422x673.png)
这个发布说明项目很小,但它非常适合 SDK,因为它使用了 Cline 最重要的部分:用于工具使用型 agent 的运行时。
我们并不是要重建整个 Cline 产品。我们只是借用运行时的结构:
- 定义一个专注的工具
- 将该工具交给一个 agent
- 让 agent 检查真实项目状态
- 将结果转化为有用的制品
这种模式与 Cline 团队在发布公告中对 SDK 的定位高度一致:你可以将其嵌入到脚本、内部工具、CI 工作流和其他产品界面中,而不仅仅是 IDE。
该项目暴露了一个命令:
它专精于一项工作:
1. 启动一个 Cline agent
2. 给 agent 一个自定义工具 `get_recent_commits`
3. 让该工具从当前仓库读取最近的 git 历史
4. 让 agent 将这些数据转化为发布说明
5. 将结果输出到 stdout
有趣的部分并不是 CLI 本身。有趣的部分是架构:我们的应用程序提供了一个狭窄但有价值的能力,而 Cline 运行时决定如何使用它。
这正是 SDK 所要解决的问题类型。正如发布公告所说,运行时不再应该只存在于一个 UI 界面内。它是你可以引入自己栈中的东西。
```
cline-demo/
├── .env.example
├── package.json
├── tsconfig.json
└── src/
├── git.ts
├── index.ts
└── prompt.ts
```
Cline SDK 需要 **Node.js 22+**。
安装依赖:
创建你的环境文件:
然后填写你的 OpenAI 密钥:
该项目使用 Cline 的 `openai-native` 提供商。
在任何 git 仓库内运行:
这是入口点。它做三件事:
- 解析 `--since` 参数
- 创建自定义工具 `get_recent_commits`
- 运行一个 Cline `Agent` 并打印最终结果
核心结构故意保持小巧:
这是需要记住的思维模型:**你的应用程序定义工具,Cline 提供 agent 运行时**。
换句话说,我们不是自己重新实现 agent 编排。我们复用了 Cline 内部使用的同一个理念:一个可以推理、调用工具并产生最终制品的运行时。
这个文件将仓库访问逻辑与主程序分离。
它使用:
- `git log` 收集最近的提交
- `git show --name-only` 收集每个提交中变更的文件路径
每个提交以结构化数据返回:
- sha
- shortSha
- author
- date
- subject
- body
- files
这种结构很重要。它为模型提供了足够的上下文,以推断变更属于功能、修复、维护任务还是可能需要升级说明的事项。
这个文件包含提示词约定。
系统提示告诉 agent:
- 在回答之前调用 `get_recent_commits`
- 只使用工具证据
- 只返回 Markdown
- 将答案组织为: - 概览 - 功能特性 - 修复 - 文档/杂项 - 升级说明
将提示词分开使得项目更容易解释和修改。运行时代码保持小巧,而输出规则集中在一个地方。
项目中最重要的部分是工具定义:
如果没有这个工具,agent 只会重写我们粘贴到提示词中的文本。有了这个工具,它可以通过受控接口主动检查仓库。
这就是 SDK 变得有趣的地方:它不仅仅是一个文本包装器包裹模型。它是一个用于工具使用型 agent 的运行时。
如果这个项目未来需要扩展,SDK 已经为此留出了空间。Cline 团队将插件、自定义工具、MCP 集成、技能和多 agent 能力列为扩展点。我们在这里故意没有全部使用它们,但了解简单版本和更高级版本可以建立在相同基础上是有用的。
发布说明在 agent 自动化中处于一个甜点区域:
- 输入杂乱但结构足够可供检查
- 输出有明确的形状
- 该任务在真实项目中有用
- 问题足够狭窄,可以快速理解
换句话说,这不是一个玩具聊天机器人,但也不是一个过度设计的自主系统。它是一个可信的 SDLC 自动化组件。
以下是该工具生成的 Markdown 示例:
Cline 的 CLI 版本是关于**从终端使用** agent。SDK 版本是关于**将 agent 嵌入到你自己的软件中**。
这也是 Cline SDK 发布背后的主要理念:将运行时从单一产品界面中抽离出来,使其可复用,并让其他开发者在其基础上构建。
本项目以紧凑的形式展示了这一理念:
- 定义一个有用的工具
- 将其交给 Cline agent
- 让 agent 检查真实项目数据
- 将结果转化为精致的制品
一旦掌握了这种模式,同样的结构可以复用于 PR 摘要、变更日志草稿、测试计划生成、问题分类以及其他软件交付工作流。
- 源代码 (https://github.com/plutov/packagemain/tree/main/cline-demo)
- Cline (https://cline.gg/alex)
- Cline SDK (https://cline.bot/sdk)
相似文章
Cline 发布用于编码智能体的开源 Agent Runtime SDK(3分钟阅读)
Cline 发布了开源 Agent Runtime SDK,将其核心智能体循环重构为可移植的 TypeScript 技术栈,该技术栈为所有 Cline 界面提供支持,并允许团队构建自己的智能体。该 SDK 提升了会话持久性、跨界面可移植性,并取得了比竞品更高的基准测试分数。
Cline SDK
Cline SDK 是一个基于插件的开源运行时,用于构建编码代理。
@cline: 使用 Cline SDK 构建!这是一个 Cline SDK 多智能体示例,你可以直接上手:https://githu…
Cline 发布了其 SDK,附带一个多智能体示例,该示例并行运行专业智能体,通过 SSE 流式输出,并将结果综合为单一答案。
@cline:介绍 Cline SDK。我们从零开始重建了扩展和 CLI 的 Cline 支架,运用自 2024 年创建全球首批编码代理之一以来积累的所有经验教训…
Cline SDK 已从头重建并开源,允许他人基于它进行构建。
构建面向AI代理的原生CLI技能
一份关于专门为AI代理设计CLI的指南,强调可预测性、可脚本化和安全默认值。