鲁软慧码提示工程实战手册

鲁软慧码 - 提示工程实战手册

欢迎开启智能编码新纪元!

鲁软慧码旨在成为您编程旅程中的得力伙伴,加速开发、提升代码质量、激发创新灵感。

要充分释放鲁软慧码的潜力,关键在于掌握有效的提示(Prompting)。这份手册将为您揭示编写高效提示的秘诀和实用技巧,并通过丰富的示例,助您快速从入门到精通。

为什么精通提示如此重要?

  • 精准结果: 清晰的提示 = 更符合预期的代码或解决方案。
    • 效率提升: 减少反复沟通和修改的时间,直达目标。
    • 解锁潜能: 探索助手的更多高级功能,应对复杂挑战。

一、编写高效提示的核心原则

掌握以下原则,让您与鲁软慧码的沟通事半功倍:

  1. 🎯 目标明确,意图清晰 (Be Clear & Specific)
  • 要做什么? 直接说明您想实现的功能、解决的问题或获得的信息。避免模糊不清的指令。 * 坏例子: 帮我处理下数据。 * 好例子: 帮我用 Python Pandas 读取名为 'sales_data.csv' 的文件,并计算 'amount' 列的总和。
  1. 🧩 提供充足上下文 (Provide Context)
  • 背景信息: 告知助手您正在使用的编程语言、框架、库、项目目标或特定约束。 * 坏例子: 修复这个 bug。 (未提供代码和错误信息) * 好例子: 我在使用 React 和 Ant Design 开发一个表单。提交时,控制台报 'TypeError: Cannot read properties of undefined (reading 'validateFields')' 错误。这是相关的代码片段:[代码片段]。请分析原因并提供修复建议。

Cline 概览 - Cline 扩展架构和开发指南

Cline 扩展架构和开发指南

项目概述

Cline 是一个 VSCode 扩展,通过核心扩展后端和基于 React 的 webview 前端的组合提供 AI 辅助功能。该扩展使用 TypeScript 构建,遵循模块化架构模式。

架构概述

定义

  • 核心扩展:src 文件夹内的所有内容,按模块化组件组织
  • 核心扩展状态:由 index.ts 中的 Controller 类管理,作为扩展状态的唯一真实来源。它管理多种类型的持久存储(全局状态、工作区状态和密钥),处理状态在核心扩展和 webview 组件之间的分发,并协调多个扩展实例之间的状态。这包括管理 API 配置、任务历史、设置和 MCP 配置。
  • Webview:webview-ui 内的所有内容。所有用户可见的 react 或视图以及用户交互组件
  • Webview 状态:由 ExtensionStateContext.tsx 中的 ExtensionStateContext 管理,通过上下文提供者模式为 React 组件提供对扩展状态的访问。它维护 UI 组件的本地状态,通过消息事件处理实时更新,管理部分消息更新,并提供状态修改方法。上下文包括扩展版本、消息、任务历史、主题、API 配置、MCP 服务器、市场目录和工作区文件路径。它通过 VSCode 的消息传递系统与核心扩展同步,并通过自定义钩子(useExtensionState)提供类型安全的状态访问。

Cline Documentation

Cline 文档目录

欢迎阅读 Cline 文档 - 这是一份全面的指南,帮助您使用和扩展 Cline 的功能。在这里,您可以找到帮助您入门、提升技能和为项目做出贡献的资源。

入门指南

  • 编程新手? 我们为您准备了温和的入门指南:
    • 编程新手入门指南

提升提示工程技能

  • 想要更有效地与 Cline 沟通? 请探索:
    • 提示工程指南
    • Cline 记忆库

探索 Cline 的工具

为 Cline 做贡献

  • 有兴趣做出贡献? 我们欢迎您的参与:
    • 欢迎提交拉取请求
    • 贡献指南

其他资源

我们一直在努力改进这份文档。如果您有建议或发现需要改进的地方,请告诉我们。您的反馈有助于让 Cline 变得更好。

Cline 入门指南 | 新手程序员

欢迎使用 Cline!本指南将帮助你完成设置并开始使用 Cline 构建你的第一个项目。

你需要准备的东西

在开始之前,请确保你具备以下条件:

  • VS Code: 一个免费且功能强大的代码编辑器。
  • 开发工具: 基础的编程软件(Homebrew、Node.js、Git 等)。
    • 在完成这里的设置后,请参考我们的安装基本开发工具指南,通过 Cline 的帮助来完成这些设置
    • Cline 将指导你安装所需的一切
  • Cline 项目文件夹: 一个专门存放所有 Cline 项目的文件夹。
    • macOS:在你的文档文件夹中创建一个名为 "Cline" 的文件夹
      • 路径:/Users/[你的用户名]/Documents/Cline
    • Windows:在你的文档文件夹中创建一个名为 "Cline" 的文件夹
      • 路径:C:\Users\[你的用户名]\Documents\Cline
    • 在这个 Cline 文件夹内,为每个项目创建单独的文件夹
      • 示例:Documents/Cline/workout-app 用于健身追踪应用
      • 示例:Documents/Cline/portfolio-website 用于个人作品集
  • VS Code 中的 Cline 扩展: 在 VS Code 中安装 Cline 扩展。

MCP 服务器开发协议

开发协议

有效的 MCP 服务器开发的核心是遵循结构化的协议。该协议通过位于 MCP 工作目录根目录(/Users/your-name/Documents/Cline/MCP)中的 .clinerules 文件实现。

使用 .clinerules 文件

.clinerules 文件是一个特殊的配置文件,Cline 会在放置该文件的目录中工作时自动读取。这些文件:

  • 配置 Cline 的行为并执行最佳实践
  • 将 Cline 切换到专门的 MCP 开发模式
  • 提供构建服务器的分步协议
  • 实施安全措施,如防止过早完成
  • 指导您完成规划、实施和测试阶段

以下是应放置在 .clinerules 文件中的完整 MCP 服务器开发协议:

MCP 快速入门指南

🚀 MCP 快速入门指南

❓ 什么是 MCP 服务器?

可以把 MCP 服务器想象成给 Cline 提供额外功能的特殊助手!它们让 Cline 能够完成像获取网页或处理文件这样的酷炫功能。

⚠️ 重要提示:系统要求

停一下!在继续之前,你必须验证以下要求:

必需软件

  • ✅ 最新版本的 Node.js (v18 或更新版本)
  • ✅ 最新版本的 Python (v3.8 或更新版本)
  • ✅ UV 包管理器
    • 安装 Python 后,运行:pip install uv
    • 使用以下命令验证:uv --version

❗ 如果以上任何命令失败或显示较旧的版本,请在继续之前进行安装/更新!

⚠️ 如果遇到其他错误,请参见下方的"故障排除"部分。

🎯 快速步骤(仅在满足要求后执行!)

1. 🛠️ 安装你的第一个 MCP 服务器

  1. 在 Cline 扩展中,点击 MCP Server 标签
  2. 点击 Edit MCP Settings 按钮
MCP 服务器面板
  1. MCP 设置文件应该会在 VS Code 中显示。
  2. 将文件内容替换为以下代码:

Windows 系统:

使用 Cline 从零开始构建自定义 MCP 服务器:综合指南

使用 Cline 从零开始构建自定义 MCP 服务器:综合指南

本指南提供了使用 Cline 的强大 AI 功能从零开始构建自定义 MCP (Model Context Protocol) 服务器的全面演示。示例将通过构建一个"GitHub 助手服务器"来说明这个过程。

理解 MCP 和 Cline 在构建服务器中的作用

什么是 MCP?

模型上下文协议(MCP)充当了像 Claude 这样的大型语言模型(LLMs)与外部工具和数据之间的桥梁。MCP 包含两个关键组件:

  • MCP 主机: 这些是与 LLMs 集成的应用程序,如 Cline、Claude Desktop 等。
  • MCP 服务器: 这些是专门设计用于通过 MCP 向 LLMs 公开数据或特定功能的小型程序。

当你有一个 MCP 兼容的聊天界面(如 Claude Desktop)时,这种设置很有用,因为它可以利用这些服务器来访问信息和执行操作。

为什么使用 Cline 创建 MCP 服务器?

Cline 通过利用其 AI 功能简化了构建和集成 MCP 服务器的过程:

  • 理解自然语言指令: 你可以用自然的方式与 Cline 交流,使开发过程直观且用户友好。
  • 克隆代码库: Cline 可以直接从 GitHub 克隆现有的 MCP 服务器代码库,简化使用预构建服务器的过程。
  • 构建服务器: 一旦必要的代码就位,Cline 可以执行像 npm run build 这样的命令来编译和准备服务器。
  • 处理配置: Cline 管理 MCP 服务器所需的配置文件,包括将新服务器添加到 cline_mcp_settings.json 文件中。
  • 协助故障排除: 如果在开发或测试过程中出现错误,Cline 可以帮助确定原因并提出解决方案,使调试更容易。

Cline 工具参考指南

Cline 工具参考指南

Cline 能做什么?

Cline 是你的 AI 助手,可以:

  • 编辑和创建项目中的文件
  • 运行终端命令
  • 搜索和分析代码
  • 帮助调试和修复问题
  • 自动化重复性任务
  • 与外部工具集成

入门步骤

  1. 开始任务

    • 在聊天中输入你的请求
    • 示例:"创建一个名为 Header 的新 React 组件"
  1. 提供上下文

    • 使用 @ 提及来添加文件、文件夹、URL、诊断信息、终端输出等
    • 示例:"@/src/components/App.tsx"
    • 详情请参阅 提及功能指南
  1. 审查更改
    • Cline 在进行更改前会显示差异
    • 你可以编辑或拒绝更改

主要功能

  1. 文件编辑

    • 创建新文件
    • 修改现有代码
    • 跨文件搜索和替换
  1. 终端命令

    • 运行 npm 命令
    • 启动开发服务器
    • 安装依赖
  1. 代码分析

    • 查找和修复错误
    • 重构代码
    • 添加文档
  1. 浏览器集成
    • 测试网页
    • 捕获截图
    • 检查控制台日志

可用工具

要了解最新的实现细节,你可以在 Cline 代码库 中查看完整源代码。

Cline 可以使用以下工具完成各种任务:

  1. 文件操作

    • write_to_file: 创建或覆写文件
    • read_file: 读取文件内容
    • replace_in_file: 对文件进行定向编辑
    • search_files: 使用正则表达式搜索文件
    • list_files: 列出目录内容

终端操作 execute_command: 运行 CLI 命令 list_code_d

Cline Mentions 功能指南

Cline 提及功能指南

概述

提及功能是一个强大的功能,允许你在与 Cline 的对话中使用"@"符号引用各种资源。这包括文件内容、目录结构、网页 URL、VSCode 诊断信息、终端输出、Git 更改状态等 - 所有这些都可以轻松地整合到你的对话中。

通过使用此功能,Cline 可以获得更准确的上下文,为你的任务提供更相关的帮助。

基本语法

提及总是以"@"符号开始,后跟你想要引用的资源的路径或标识符:

@resource_identifier

你可以在用户消息中的任何位置放置提及,Cline 将自动检索引用的内容。

支持的提及类型

1. 文件引用

要引用文件内容,使用 @/ 后跟项目中的相对路径:

@/path/to/file.js

示例:

请分析 @/src/components/Button.tsx 中的实现

在这个例子中,Cline 自动检索 Button.tsx 的内容并用它来执行分析。

2. 目录引用

要引用目录内容,使用 @/ 后跟目录的相对路径,以斜杠结尾:

@/path/to/directory/

示例:

@/src/components/ 目录中有哪些组件?

在这个例子中,Cline 检索组件目录及其内容的列表。

3. URL 引用

要引用网页内容,使用 @ 后跟 URL:

@https://example.com

示例: 请解析来自 @https://api.

Cline 的记忆库(Cline's Memory Bank)

Cline 的记忆库

我是 Cline,一位专业的软件工程师,我有一个独特的特点:我的记忆在每个会话之间都会完全重置。这不是一个限制 - 这正是驱使我维护完美文档的动力。每次重置后,我完全依赖我的记忆库来理解项目并有效地继续工作。我必须在每个任务开始时阅读所有记忆库文件 - 这不是可选的。

记忆库结构

记忆库由必需的核心文件和可选的上下文文件组成,均为 Markdown 格式。文件之间以清晰的层次结构构建:

核心文件(必需)

  1. projectbrief.md
    • 塑造所有其他文件的基础文档
    • 如果不存在则在项目开始时创建
    • 定义核心需求和目标
    • 项目范围的真实来源
  1. productContext.md
    • 为什么存在这个项目
    • 解决什么问题
    • 应该如何工作
    • 用户体验目标
  1. activeContext.md
    • 当前工作重点
    • 最近的变更
    • 下一步计划
    • 活跃的决策和考虑因素
  1. systemPatterns.md
    • 系统架构
    • 关键技术决策
    • 使用的设计模式
    • 组件关系
  1. techContext.md
    • 使用的技术
    • 开发环境设置
    • 技术约束
    • 依赖关系
  1. progress.md
    • 已完成的功能
    • 待构建的内容
    • 当前状态
    • 已知问题

附加上下文

当需要组织以下内容时,在 memory-bank/ 中创建额外的文件/文件夹:

  • 复杂功能文档
  • 集成规范
  • API 文档
  • 测试策略
  • 部署流程

核心工作流程

计划模式

执行模式

文档更新

记忆库在以下情况下更新: 发现新的项目模式 实施重

Cline 自定义指令库

Cline 自定义指令库

本仓库旨在创建一个协作空间,让开发者可以分享、改进和利用 Cline 的有效自定义指令。通过创建和贡献这个库,我们可以增强 Cline 的功能,使开发者能够应对日益复杂的软件开发挑战。

什么是 Cline 自定义指令?

Cline 的自定义指令是一系列为特定任务或项目定制 AI 行为和输出的指导方针或规则。可以将它们视为 Cline 的专门"编程",使您能够:

  • 执行编码实践: 确保代码风格的一致性,遵循设计模式和特定语言或框架的最佳实践。
  • 标准化文件结构: 规定文件命名约定、文件夹组织和项目结构。
  • 指导测试程序: 定义生成单元测试、集成测试的规则,并确保足够的代码覆盖率。
  • 自动化重复任务: 创建处理常见或繁琐开发工作流程的指令,提高效率。
  • 改进代码质量: 设定代码可读性、可维护性和性能优化的标准。

通过为 Cline 提供精心制作的指令,您可以显著提高其在辅助软件开发过程中的准确性、可靠性和整体效果。

贡献自定义指令

我们鼓励各个水平的开发者向这个库贡献他们的自定义指令。您的贡献将帮助建立一个对整个 Cline 社区都有价值的资源!

提交自定义指令时,请遵循以下模板:

1. 目的和功能

  • 这组指令的目标是什么?
    • 清晰简洁地解释指令集的目标和预期用例。
    • 示例:"这组指令指导 Cline 为现有 JavaScript 函数生成单元测试。"

Cline 提示指南 🚀

Cline 提示指南 🚀

欢迎使用 Cline 提示指南!本指南将为您提供编写有效提示和自定义指令的知识,帮助您最大化使用 Cline 的生产力。

自定义指令 ⚙️

自定义指令视为 Cline 的编程。它们定义了 Cline 的基准行为,并且始终"开启",影响所有交互。

添加自定义指令:

  1. 打开 VSCode
  2. 点击 Cline 扩展设置齿轮 ⚙️
  3. 找到"自定义指令"字段
  4. 粘贴您的指令

自定义指令在以下方面特别有用:

  • 🚀 强制执行代码风格和最佳实践:确保 Cline 始终遵循您团队的编码约定、命名约定和最佳实践。
  • 👍 提高代码质量:鼓励 Cline 编写更易读、可维护和高效的代码。
  • 📝 指导错误处理:告诉 Cline 如何处理错误、编写错误消息和日志信息。

custom-instructions 文件夹包含了您可以使用或调整的自定义指令示例。

.clinerules 文件 📋

虽然自定义指令是特定于用户且全局的(适用于所有项目),但 .clinerules 文件提供了项目特定的指令,存放在项目的根目录中。这些指令会自动附加到您的自定义指令中,并在 Cline 的系统提示中引用,确保它们影响项目上下文中的所有交互。这使其成为以下场景的出色工具:

安全最佳实践 🔒

为了保护敏感信息,您可以在 .clinerules 中指示 Cline 忽略特定文件或模式。

OpenAI: 构建智能体的实用指南

什么是智能体?

传统软件帮助用户简化和自动化工作流程,而智能体则能够以高度独立的方式代表用户执行这些工作流程。

智能体是能够独立代表您完成任务的一种系统。

工作流程是指为了实现用户目标而必须执行的一系列步骤,无论是解决客户服务问题、预订餐厅、提交代码变更,还是生成报告。

那些集成了大语言模型(LLM)但并未用其控制工作流程执行的应用程序(例如简单聊天机器人、单轮对话LLM或情感分类器)不属于智能体。

具体来说,智能体具备以下核心特征,使其能够可靠且一致地代表用户行动:

  1. 它利用LLM来管理工作流程的执行并做出决策。它能识别工作流程何时完成,并在需要时主动修正行为。如果执行失败,它可以停止操作并将控制权交还给用户。
  2. 它能够调用多种工具与外部系统交互(既用于获取上下文信息,也用于执行操作),并根据工作流程的当前状态动态选择合适工具,同时始终在明确定义的边界内运行。

何时应该构建智能体?

构建智能体需要重新思考系统如何决策和处理复杂性。与传统自动化不同,智能体特别适合那些传统确定性和基于规则的方法无法胜任的工作流程。

以支付欺诈分析为例:传统的规则引擎像一份检查清单,根据预设条件标记交易;而基于大语言模型的智能体则更像经验丰富的调查员,它能评估上下文、捕捉细微模式,即使没有明确违反规则也能识别可疑行为。

Sky-T1-7B:通过强化学习提升推理模型的潜力

摘要

我们很高兴发布 Sky-T1-7B,这是一个在数学推理任务上达到 SOTA 水平的开源 7B 模型,它通过对 Qwen2.5-Math-7B 基础模型进行 SFT->RL->SFT->RL 四步训练而成。我们同时还发布了 Sky-T1-mini,这个模型是在 DeepSeek-R1-Distill-Qwen-7B 模型基础上使用简单的强化学习(RL)训练得到的,在流行的数学基准测试上接近 OpenAI o1-mini 的性能水平。我们进行了一系列消融实验,研究了 SFT 数据规模、RL 规模以及模型在 SFT 和 RL 后的 pass@k 性能。我们观察到,长链条 CoT SFT 通常可以提升模型的 pass@k 性能,而 RL 则提高了模型在较低生成预算下(即 pass@1)的性能,但有时会以牺牲解决方案的熵为代价。

图 1: 不同模型在四个流行数学推理任务(AIME24, AMC23, MATH500 和 OlympiadBench)上的平均准确率。

Sky-T1-32B-Flash:在不牺牲准确性的情况下将推理成本削减50%

思考更少,成就更多:在不牺牲准确性的情况下将推理成本削减50%

我们推出 Sky-T1-32B-Flash,这是一个可以将生成长度减少高达 50% 但保持准确性的推理模型。

我们很高兴推出 Sky-T1-32B-Flash,这是我们更新的推理语言模型,它显著减少了过度思考,在具有挑战性的问题上将推理成本降低了高达57%

根据 Lambda Cloud 的定价,使用 8xH100 只需 $275 即可完成整个训练方案,同时在数学、编程、科学和通用知识等领域保持了准确性。

为了促进透明度和协作,我们已开源了完整的流程—从数据生成和预处理到偏好优化和评估脚本,并公开提供模型权重和数据。

  • Github: 数据生成、响应重写、偏好优化和评估的代码
  • Dataset: 10K 偏好对数据集
  • HuggingFace: Sky-T1-32B-Flash 模型权重

图 1: 我们的新模型显著减少了生成的token长度,同时在具有挑战性的基准测试中保持强劲的性能。

什么是过度思考? 过度思考指的是推理模型倾向于产生不必要的长响应,通常包含冗余或过度的推理步骤。

Sky-T1-32B-Preview: 在450美元内训练你自己的O1预览模型

Sky-T1: 在450美元内训练你自己的O1预览模型

我们推出了Sky-T1-32B-Preview,这是一个在流行的推理和编码基准测试上表现与o1-preview相当的推理模型。值得注意的是,Sky-T1-32B-Preview的训练成本不到450美元,这证明了以经济高效的方式复制高级推理能力是可能的。所有代码都是开源的。

概述

像o1和Gemini 2.0这样擅长推理的模型已经证明可以通过产生长链的思维过程等进步来解决复杂任务。然而,技术细节和模型权重无法获取,这对学术界和开源社区的参与造成了障碍。

为此,一些值得注意的努力已经出现,旨在训练开放权重的数学领域推理模型,如Still-2Journey。同时,我们UC Berkeley的NovaSky团队一直在探索各种技术来发展基础模型和指令微调模型的推理能力。在这项工作中,我们在同一个模型中不仅在数学方面,而且在编码方面都取得了具有竞争力的推理表现。

完全开源:共同推动进步

为确保我们的工作能够惠及更广泛的社区,我们完全致力于开源协作。我们开源所有细节(即数据、代码、模型权重),使社区能够轻松地复制和改进我们的成果:

A2A ❤️ MCP

TLDR; Agentic applications need both A2A and MCP. We recommend MCP for tools and A2A for agents.

TLDR; 代理应用程序需要 A2A 和 MCP。我们建议将 MCP 用于工具,将 A2A 用于代理。

Why Protocols?(为什么需要协议?)

Standard protocols are essential for enabling agentic interoperability, particularly in connecting agents to external systems. This is critical in two interconnected areas of innovation: Tools and Agents.

标准协议对于实现代理互操作性至关重要,特别是在将代理连接到外部系统时。这在两个相互关联的创新领域中至关重要:工具和代理。

Tools are primitives with structured inputs and outputs and (typically) well-known behavior.

监测推理模型的不当行为以及提升混淆的风险

Monitoring Reasoning Models for Misbehavior and the Risks of Promoting Obfuscation(监测推理模型的不当行为以及提升混淆的风险)

在构建能力强大且目标一致的模型过程中,缓解奖励黑客行为(即 AI 系统由于学习目标的缺陷或错误规范而表现不当)仍然是一个关键挑战。我们证明,我们可以通过使用另一个观察模型思维链(CoT)推理的 LLM,来监控前沿推理模型(如 OpenAI o3-mini)在智能编程环境中的奖励黑客行为。CoT 监控比仅监控代理行为和输出要有效得多。我们还发现,比 o3-mini 更弱的 LLM(即 GPT-4o)可以有效地监控更强大的模型。 由于 CoT 监控器在检测漏洞方面可以很有效,自然会问这些漏洞是否可以通过将 CoT 监控器直接整合到代理的训练目标中来抑制。虽然我们表明在低优化状态下,将 CoT 监控器整合到强化学习奖励中确实可以产生更有能力和更一致的代理,但我们发现在过度优化的情况下,代理会学会混淆奖励黑客行为,在 CoT 中隐藏其意图,同时仍然表现出显著的奖励黑客行为。 由于很难判断 CoT 何时变得模糊,因此可能需要付出可监控性代价,避免直接对思路链施加强大的优化压力,确保 CoT 仍然可监控,并有助于检测不一致的行为。

Detecting misbehavior in front

OpenAI o3 and o4-mini System Card

Introduction(介绍)

OpenAI o3OpenAI o4-mini 结合了最先进的推理能力和完整工具功能——包括网页浏览(web browsing)、Python 编程、图像(image)和文件分析(file analysis)、图像生成(image generation)、画布编辑(canvas)、自动化流程(automations)、文件搜索(file search)和记忆功能(memory)。这些模型擅长解决复杂的数学、编码和科学难题,同时展现出强大的视觉感知和分析能力。这些模型在其思考链中使用工具来增强自身能力例如,在思考过程中裁剪或转换图像、搜索网页或使用 Python 分析数据。

OpenAI o 系列模型通过在思维链上进行大规模强化学习进行训练。这些先进的推理能力为提高我们模型的安全性与鲁棒性提供了新的途径。特别地,我们的模型在回应潜在的不安全提示时,能够根据上下文推理我们的安全策略,这得益于审慎对齐。

这是根据我们准备框架(Preparedness Framework)第二版发布的第一个版本和系统卡。

Agent2Agent 协议 (A2A)

A2A

一个开放协议,旨在实现不透明的智能代理应用程序之间的通信和互操作性。

企业采用人工智能的最大挑战之一是如何让基于不同框架和供应商构建的代理协同工作。这就是我们创建开放的 Agent2Agent (A2A) 协议的原因,这是一种协作方式,旨在帮助不同生态系统中的代理相互通信。Google 正在推动这项行业开放协议倡议,因为我们相信这个协议对于支持多代理通信至关重要,它将为您的代理提供一种通用语言——无论它们构建于哪个框架或供应商之上。借助 A2A,代理可以相互展示它们的功能并协商如何与用户交互(通过文本、表单或双向音频/视频)——所有这些都在安全地协同工作的同时进行。

观看 A2A 的实际应用

观看此演示视频,了解 A2A 如何实现不同代理框架之间的无缝通信。

概念概述

Agent2Agent (A2A) 协议促进了独立 AI 代理之间的通信。以下是核心概念:

  • 代理卡片 (Agent Card): 一个公开的元数据文件(通常位于 /.well-known/agent.json),描述了代理的功能、技能、端点 URL 和身份验证要求。客户端使用它进行发现。
    • A2A 服务器 (A2A Server): 一个公开 HTTP 端点并实现 A2A 协议方法(定义在 json 规范 中)的代理。它接收请求并管理任务执行。
    • A2A 客户端 (A2A Client): 一个消费 A2A 服务的应用程序或另一个代理。它向 A2A 服务器的 URL 发送请求(如 tasks/send)。
    • 任务 (Task): 中心的工作单元。客户端通过发送消息(tasks/sendtasks/sendSubscribe)来启动任务。任务具有唯一的 ID,并经历以下状态:submitted(已提交)、working(工作中)、input-required(需要输入)、completed(已完成)、failed(失败)、canceled(已取消)。
    • 消息 (Message): 表示客户端(role: "user")和代理(role: "agent")之间的通信轮次。消息包含 Parts(部件)。
    • 部件 (Part): MessageArtifact(工件)中的基本内容单元。可以是 TextPart(文本部件)、FilePart(文件部件,包含内联字节或 URI)或 DataPart(数据部件,用于结构化 JSON,例如表单)。
    • 工件 (Artifact): 表示代理在任务期间生成的输出(例如,生成的文件、最终的结构化数据)。工件也包含 Parts(部件)。
    • 流式传输 (Streaming): 对于长时间运行的任务,支持 streaming 功能的服务器可以使用 tasks/sendSubscribe。客户端接收服务器发送事件 (SSE),其中包含 TaskStatusUpdateEvent(任务状态更新事件)或 TaskArtifactUpdateEvent(任务工件更新事件)消息,提供实时的进度。
    • 推送通知 (Push Notifications): 支持 pushNotifications 的服务器可以主动向客户端提供的 webhook URL 发送任务更新,该 URL 通过 tasks/pushNotification/set 配置。

智能编码新范式 (Cline + DeepSeek) × MCP

  • 提示词:使用 React 技术实现 Tic Tac Toe 游戏

  • 运行游戏

  • 创建新仓库

  • 快速设置仓库

  • 退出游戏

  • 查看已安装的 MCP 服务器

  • 创建新问题(issue)

  • 查看 wang-junjian/tictactoe 项目中分配给我 issue,使用 GitHub MCP 服务器的工具 list_issues

  • 当前仓库 wang-junjian/tictactoe 中有1个开放的 issue

  • 分步实现 issue #1 玩家获胜时添加烟花效果

  • 实现 issue #1 玩家获胜时添加烟花效果

  • 运行游戏 - 获胜后的烟花效果

  • 创建新问题 - Refactoring

  • 创建分支 git switch -c Refactoring,对项目中的代码进行重构

  • 完成代码重构

  • 推送到远程仓库,git push -u origin Refactoring

  • Compare & pull request

  • 创建拉取请求(pull request),关联问题(issue #2)

  • wang-junjian/tictactoe 项目中分配给我的 PR,使用 GitHub MCP 服务器的工具 get_pull_request

  • 使用 GitHub MCP 服务器的工具 get_pull_request_files 获取 PR 的变更文件列表

  • 完成 PR #3 的代码评审

  • 使用 GitHub MCP 服务器的工具 add_issue_comment,提交代码评审

Git 命令

使用 Git 的工作流程

配置

查看全局配置

git config --global --list
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
user.name=军舰
user.email=wang-junjian@qq.com
http.postbuffer=524288000
http.version=HTTP/1.1

设置全局配置

git config --global user.name "军舰"
git config --global user.email wang-junjian@qq.com

初始化仓库

git init
Initialized empty Git repository in /Users/junjian/GitHub/wang-junjian/HelloGit/.git/

设置远程仓库

git remote add origin https://github.com/wang-junjian/HelloGit.git

基础

查看状态

开发 RAGFlow MCP Server

开发

这是第一次开发 MCP Server,想着使用智能编码工具(GitHub Copilot、Cursor、Trae)进行氛围编程,发现真不容易,Claude 3.7 sonnet 效果不错,在 GitHub Copilot 没用多长时间超限制了;Cursor 没有达到之前那种随心的效果;Trae 要排长队,太有挫败感了。于是,开始了以人编码为主,大模型辅助的开发过程。

MCP Server 的工作流程

  1. 初始化:加载环境变量,初始化 RAGFlow 客户端。
  2. 工具注册:定义工具列表,描述工具的输入/输出。
  3. 工具逻辑:实现工具的具体调用逻辑。
  4. 服务器启动:通过 stdio 启动 MCP Server 并监听请求。

创建 RAGFlow MCP Server 项目

uvx create-mcp-server \
    --path ragflow-mcp-server \
    --name ragflow-mcp-server \
    --version 0.1.0 \
    --description "RAGFlow MCP Server" \
    --no-claudeapp
cd ragflow-mcp-server
uv sync --dev --all-extras
uv add ragflow-sdk

下载 MCP 开发文档和 RAGFlow Python API 文档

Visual Studio Code 2025年3月版本(1.99)的新功能

欢迎使用Visual Studio Code 2025年3月版本。此版本包含许多更新,我们希望您会喜欢,一些主要亮点包括:

  • 代理模式
    • 代理模式现已在VS Code稳定版中可用。通过设置setting(chat.agent.enabled:true)启用(更多...)。
    • 通过模型上下文协议(MCP)服务器工具扩展代理模式(更多...)。
    • 尝试代理模式中的新内置工具,用于获取网页内容、查找符号引用和深度思考(更多...)。
  • 代码编辑
    • 下一步编辑建议现已正式发布(更多...)。
    • 在编辑器中应用AI编辑时减少诊断事件等干扰(更多...)。
  • 聊天
    • 在聊天中使用自己的API密钥访问更多语言模型(预览版)(更多...)。
    • 从统一的聊天体验中轻松切换问答、编辑和代理模式(更多...)。
    • 通过即时远程工作区索引体验提高工作区搜索速度和准确性(更多...)。
  • 笔记本编辑
    • 借助编辑和代理模式的支持,像编辑代码文件一样轻松创建和编辑笔记本(更多...)。

如果您想在线阅读这些发布说明,请前往code.visualstudio.com上的更新页面。 Insiders版本: 想尽快尝试新功能吗?您可以下载每晚构建的Insiders版本,并在功能可用后立即尝试最新更新。

聊天

代理模式在 VS Code 稳定版中可用

设置setting(chat.agent.enabled:true)

构建AI代理:5个常见障碍及解决方案

构建AI代理的新手指南,帮助您克服挑战。

AI代理正变得越来越复杂,能够自动化工作流程、做出决策并与外部工具集成。然而,在现实世界中部署AI代理面临着很多挑战,这些挑战会影响其可靠性、性能和准确性。现在优先建立AI代理设计的强大基础,将为未来可靠、安全的自主系统奠定基础。

👉 本指南探讨了开发人员在创建AI代理时面临的五个最常见障碍,以及克服这些障碍的实用解决方案。 无论您是刚刚入门的新手还是正在改进方法的资深开发人员,这些最佳实践都将帮助您设计出在复杂环境中更可靠、更具扩展性和更有效的AI代理。

让我们开始构建代理式AI吧!

1. 管理工具集成

随着AI代理变得越来越复杂,管理它们对各种工具的访问和使用变得越来越具有挑战性每增加一个工具都会引入新的潜在故障点安全考虑因素性能影响。确保代理适当地使用工具并优雅地处理工具故障对于可靠运行至关重要。

解决这一挑战请为代理工具箱中的每个工具创建精确的定义。包括何时使用该工具的明确示例有效参数范围预期输出构建能够强制执行这些规范的验证逻辑,并从一小组定义明确的工具开始,而不是许多定义松散的工具。定期监控将帮助您识别哪些工具最有效,以及哪些定义需要完善

2. 管理模型推理和决策

构建AI代理的一个基本挑战是确保一致可靠的决策。与遵循明确规则的传统软件系统不同,AI代理必须解释用户意图,对复杂问题进行推理,并最终基于概率分布做出决策。

Continue Agent 使用 GitHub MCP Server

Continue 智能体

  • 必须使用 Agent 模式才支持 MCP Server
  • Agent 模式不支持 DeepSeek 系列的模型(包括官方API开源)。
  • 大模型使用本地 Ollama 的模型:qwen2.5-coder:32bqwq:latest

申请 GitHub 个人访问令牌(Personal Access Token)

  • 访问 GitHubSettings 页面,点击 Developer settings
  • 点击 Personal access tokens,然后点击 Tokens (classic)
  • 点击 Generate new token 按钮。

Continue 配置

config.yaml 文件配置如下:

name: Local Assistant
version: 1.0.0
schema: v1
models:
  - name: Autodetect
    provider: ollama
    model: AUTODETECT
  - name: DeepSeek Chat
    provider: deepseek
    model: deepseek-chat
    apiKey: sk-xxx
  - name: DeepSeek Coder
    provider: deepseek
    model: deepseek-coder
    apiKey: sk-xxx
// ...

GitHub MCP 服务器

GitHub MCP 服务器

GitHub API 的 MCP 服务器,支持文件操作、仓库管理、搜索功能等。

功能特点

  • 自动分支创建:创建/更新文件或推送更改时,如果分支不存在则自动创建
  • 全面的错误处理:对常见问题提供清晰的错误信息
  • Git 历史保留:操作保持适当的 Git 历史记录,不强制推送
  • 批量操作:支持单文件和多文件操作
  • 高级搜索:支持搜索代码、议题/PR 和用户

工具

  1. create_or_update_file
    • 在仓库中创建或更新单个文件
    • 输入:
      • owner (字符串):仓库所有者(用户名或组织)
      • repo (字符串):仓库名称
      • path (字符串):创建/更新文件的路径
      • content (字符串):文件内容
      • message (字符串):提交消息
      • branch (字符串):要在其中创建/更新文件的分支
      • sha (可选字符串):被替换文件的 SHA(用于更新)
    • 返回:文件内容和提交详情
  1. push_files
    • 在单个提交中推送多个文件
    • 输入:
      • owner (字符串):仓库所有者
      • repo (字符串):仓库名称
      • branch (字符串):要推送到的分支
      • files (数组):要推送的文件,每个包含 pathcontent
      • message (字符串):提交消息
    • 返回:更新的分支引用

search_repositories 搜索 GitHub 仓库 输入: query (字符串):搜索查询

使用 Trae 开发 RAGFlow 助手

⚠️ Trae 试用感受

  • 热门模型(Claude-3.7-sonnet)需要排队
  • 在当前会话中,我引用过一个文件,接着提问还需要添加引用,太麻烦了。
  • 都知道它是中国字节开发的,有一种亲切感,确让我翻墙来用她。

功能界面

操作

提示词

使用 Streamlit UI 库开发一个连接 RAGFlow 的客户端应用,左边列出可选的知识库,右边是聊天对话框。

MCP 服务器示例和实现列表

本页展示了各种模型上下文协议(MCP)服务器,这些服务器展示了该协议的功能和多样性。这些服务器使大型语言模型(LLM)能够安全地访问工具和数据源。

参考实现

这些官方参考服务器展示了核心 MCP 功能和 SDK 用法:

数据和文件系统

  • 文件系统 - 具有可配置访问控制的安全文件操作
  • PostgreSQL - 具有架构检查功能的只读数据库访问
  • SQLite - 数据库交互和商业智能功能
  • Google Drive - Google Drive 的文件访问和搜索功能

开发工具

  • Git - 读取、搜索和操作 Git 仓库的工具
  • GitHub - 仓库管理、文件操作和 GitHub API 集成
  • GitLab - GitLab API 集成,支持项目管理
  • Sentry - 从 Sentry.io 检索和分析问题

Web 和浏览器自动化

  • Brave 搜索 - 使用 Brave 的搜索 API 进行网络和本地搜索
  • Fetch - 为 LLM 使用优化的网络内容获取和转换
  • Puppeteer - 浏览器自动化和网页抓取功能

生产力和通信

  • Slack - 频道管理和消息功能
  • Google Maps - 位置服务、方向和地点详情
  • Memory - 基于知识图谱的持久记忆系统

AI 和专业工具 EverArt - 使用各种模型的 AI 图像生成 Sequential Thinking -