40 篇文章带有标签 “GitHubCopilot”

Gemini CLI 项目分析与开发指南

本文档围绕着初学者如何分析并开发一个类似 Gemini CLI 的项目提供了详尽的指南。核心思想是将复杂的项目分解为可管理的部分,并提供分步学习路径。指南强调了理解项目架构(如前端CLI和后端Core的职责)、熟悉代码结构掌握核心功能(如API交互和工具系统)、以及通过实践进行学习的重要性。通过阅读文档、运行和调试代码、并尝试进行小修改,学习者能够逐步掌握此类项目的开发技能。在 VSCode 中,使用 GitHub Copilot 的 Ask 模式分别对大模型(如 GPT-4.1、GPT-4o、Gemini 2.5 Pro 和 Claude Sonnet 系列)进行提问并总结。

#codebase 我作为初学者,如何开始分析这个项目,以达到学习的目的,可以手动开发这种类型的项目。

下面是不同大模型给出的回答

作为初学者,分析并学习 Gemini CLI 这样的大型项目,可以按照以下步骤进行,帮助你理解架构、掌握开发流程,并为将来手动开发类似项目打下基础:

你可以从 architecture.md 开始,重点关注以下内容:

核心组件:项目分为 CLI 前端(cli)、Core 后端(core)和工具模块(tools)。 交互流程:用户输入 → CLI 处理 → Core 构建请求并与 Gemini API 通信 → 工具调用(如有)→ 返回结果 → CLI 展示。

GitHub Copilot for VSCode v1.100

本文档介绍了 Copilot 的三种主要模式——询问 (Ask)编辑 (Edit)代理 (Agent),并列举了 Copilot 可访问的各种工具,例如 搜索用法 (#usages)获取网页信息 (#fetch)搜索 Marketplace 扩展 (#extensions)搜索 GitHub 仓库代码 (#githubRepo),以增强模型上下文。还详细描述了 提示文件 (Prompt files)指令文件 (Instructions files) 的目的和使用,并展示了如何通过这些文件管理和定制 AI 模型的行为。

  • 提问:这与之前的“聊天”视图相同。您可以就您的工作区或一般编码问题向任何模型提问。使用 @ 符号可以调用内置的聊天参与者或已安装的扩展。使用 # 符号可以手动附加任何类型的上下文。
  • 代理:启动一个代理编码流程,其中包含一套工具,使其能够自主收集上下文、运行终端命令或执行其他操作来完成任务。代理模式已为所有 VS Code Insiders 用户启用,并且我们正在向更多 VS Code Stable 用户推出。
  • 编辑:在编辑模式下,模型可以对多个文件进行定向编辑。附加 #codebase 可以让它自动查找要编辑的文件。但它不会运行终端命令或自动执行任何其他操作。

VSCode - April 2025 (version 1.

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

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

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

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

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

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

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

  1. 🎯 目标明确,意图清晰 (Be Clear & Specific)
  • 要做什么? 直接说明您想实现的功能、解决的问题或获得的信息。避免模糊不清的指令。 * 坏例子: 帮我处理下数据。 * 好例子: 帮我用 Python Pandas 读取名为 'sales_data.csv' 的文件,并计算 'amount' 列的总和。
  1. 🧩 提供充足上下文 (Provide Context)

背景信息: 告知助手您正在使用的编程语言、框架、库、项目目标或特定约束。 * 坏例子: 修复这个 bug。 (未提供代码和错误信息) * 好例子: 我在使用 React 和 Ant Design 开发一个表单。

开发 RAGFlow MCP Server

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

  1. 初始化:加载环境变量,初始化 RAGFlow 客户端。
  2. 工具注册:定义工具列表,描述工具的输入/输出。
  3. 工具逻辑:实现工具的具体调用逻辑。
  4. 服务器启动:通过 stdio 启动 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

RAGFlowAssistant

uv init RAGFlowAssistant
cd RAGFlowAssistant
uv add ragflow-sdk
sh run.sh

from ragflow_sdk import RAGFlow

# 初始化 RAGFlow 客户端
def init_ragflow():
    """初始化 RAGFlow 客户端
    返回: RAGFlow对象 或 None(如果没有API Key)
    """
    api_key = os.environ.get("RAGFLOW_API_KEY") or st.session_state.get("ragflow_api_key", "")
    base_url = os.environ.get("RAGFLOW_BASE_URL") or st.session_state.get("ragflow_base_url", "http://localhost:9380")
    
    if api_key:
        return RAGFlow(api_key=api_key, base_url=base_url)
    return None

# 获取知识库列表
// ...

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版本,并在功能可用后立即尝试最新更新。

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

我们很高兴地宣布代理模式现已在VS Code稳定版中可用!

Continue Agent 使用 GitHub MCP Server

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

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 上创建一个新的仓库,命名为 RAGFlowAssistant

提示词:创建仓库: RAGFlowAssistant

到 GitHub 上查看创建的仓库:

continue: config.yaml Reference

config.yaml Reference

Continue hub 助手使用 config.yaml 规范定义。本地助手也可以通过放置在全局 .continue 文件夹中的 YAML 文件 config.yaml 进行配置(Mac 上为 ~/.continue,Windows 上为 %USERPROFILE%\.continue

:::info Config YAML 替代了 config.json。查看迁移指南。 :::

一个助手由以下部分组成:

  1. 顶级属性,用于指定助手的 nameversionconfig.yamlschema
  2. 块列表,这些是可组合的编码助手构建块数组,可供助手使用,如模型、文档和上下文提供者。

块是编码助手的一个独立构建块,例如一个模型或一个文档来源。在 config.yaml 语法中,块包含与助手相同的顶级属性(nameversionschema),但在其所属的块类型下只有一个项目。

可以在 Continue hub 上找到块和助手的示例。

助手可以显式定义块(参见下面的属性),也可以导入和配置现有的 hub 块。

Hub 块和助手通过格式为 owner-slug/block-or-assistant-slug 的标识符识别,所有者可以是用户或组织。

可以通过在块类型下添加 uses 子句将块导入到助手中。

使用 Cline 构建和管理 MCP 服务器:增强 AI 能力的全面指南

快速链接:

  • 从 GitHub 构建 MCP 服务器
  • 从头开始构建自定义 MCP 服务器

本文档解释了模型上下文协议 (MCP) 服务器的功能以及 Cline 如何帮助构建和使用它们。

MCP 服务器充当大型语言模型 (LLM)(如 Claude)与外部工具或数据源之间的中介。它们是向 LLM 提供功能的小程序,使其能够通过 MCP 与外部世界交互。MCP 服务器本质上就像 LLM 可以使用的 API。

MCP 服务器定义了一组"工具",即 LLM 可以执行的函数。这些工具提供了广泛的功能。

MCP 的工作原理:

  • MCP 主机发现连接的服务器的功能并加载它们的工具、提示和资源。
  • 资源提供对只读数据的一致访问,类似于文件路径或数据库查询。
  • 安全性由服务器隔离凭证和敏感数据来确保。交互需要明确的用户批准。

MCP 服务器的潜力非常广阔。它们可以用于多种用途。

以下是 MCP 服务器的一些具体使用示例:

  • Web 服务和 API 集成:
    • 监控 GitHub 存储库的新问题
    • 根据特定触发器发布 Twitter 更新
    • 检索基于位置的服务的实时天气数据
  • 浏览器自动化:
    • 自动化 Web 应用程序测试
    • 抓取电子商务网站进行价格比较
    • 为网站监控生成截图
  • 数据库查询:
    • 生成每周销售报告
    • 分析客户行为模式
    • 为业务指标创建实时仪表板

项目和任务管理: 基于代码提交自动创建 Jira 工单 生成每周进度报告 根据项

Cline: 自主编程助手

git clone https://github.com/cline/cline.git
code cline
npm run install:all

如果构建项目时遇到问题,请安装 esbuild problem matchers 扩展。

Activating task providers npm
错误: problemMatcher 引用无效: $esbuild-watch

打开 运行和调试 侧边栏,运行 Run Extension,或者按 F5 键启动调试,打开一个新的 VSCode 窗口,加载扩展。

vscode-extension-samples/chat-sample 源码分析

在 Debug View 中运行 Run Extension

文件:src/extension.ts

export function activate(context: vscode.ExtensionContext) {
    registerSimpleParticipant(context);
    registerToolUserChatParticipant(context);
    registerChatLibChatParticipant(context);

    registerChatTools(context);
}

文件:src/simple.ts

export function registerSimpleParticipant(context: vscode.ExtensionContext) {

}

Language Model API

The Language Model API enables you to use the Language Model and integrate AI-powered features and natural language processing in your Visual Studio Code extension.

语言模型 API 可以让您使用语言模型,并在您的 Visual Studio Code 扩展中集成 AI 功能和自然语言处理。

You can use the Language Model API in different types of extensions. A typical use for this API is in chat extensions, where you use a language model to interpret the user's request and help provide an answer. However, the use of the Language Model API is not limited to this scenario.

Chat Extensions (VS Code)

下面的截图显示了示例扩展中 Visual Studio Code 聊天体验中的不同聊天概念。

  1. 使用 @ 语法调用 @cat 聊天参与者
  2. 使用 / 语法调用 /teach 命令
  3. 用户提供的查询,也称为用户提示
  4. 图标和参与者的 fullName,表示 Copilot 正在使用 @cat 聊天参与者
  5. @cat 提供的 Markdown 响应
  6. 包含在 Markdown 响应中的代码片段
  7. 包含在 @cat 响应中的按钮,按钮调用 VS Code 命令
  8. 聊天参与者提供的建议后续问题
  9. 聊天输入字段,其中的占位文本由聊天参与者的 description 属性提供

聊天扩展是一种扩展,它向 Chat 视图提供了一个聊天参与者。

实现聊天扩展所需的最小功能是:

  • 注册聊天参与者,让用户可以在 VS Code Chat 视图中使用 @ 符号调用它。
  • 定义一个请求处理程序,解释用户的问题,并在 Chat 视图中返回响应。

您可以使用以下可选功能进一步扩展聊天扩展的功能:

  • 注册聊天命令,为用户提供常见问题的简写符号
  • 定义建议的后续问题,帮助用户继续对话

作为开发聊天扩展的起点,您可以参考我们的 chat extension sample。此示例实现了一个简单的猫导师,可以使用猫隐喻解释计算机科学主题。

创建聊天扩展的第一步是在 package.

GitHub Copilot in VS Code

GitHub Copilot 你的 AI 编程伙伴,助你更快、更智能地编写代码。

  • Conversation History

Copilot 会在你输入时建议代码行,并为函数签名提供多行建议。注释中的提示会根据你期望的结果、逻辑和步骤提供具体的建议。

  1. 代码行建议
  2. 函数签名建议
  3. 注释中的提示

您可能不想接受 GitHub Copilot 的整个建议。您可以使用 ⌘→ 键盘快捷键来接受建议的下一个单词或下一行。

Inline Chat 使您能够直接从编辑器与 Copilot 进行聊天对话,而无需离开您的工作上下文。使用 Inline Chat,您可以在代码中就地预览代码建议,这对于快速迭代代码更改非常有用。

Chat 视图使您可以在单独的视图中与 Copilot 进行聊天对话。默认情况下,Chat 视图位于辅助侧边栏中。辅助侧边栏始终位于主侧边栏的对面,因此您可以同时打开 Chat 视图和资源管理器、源代码控制或主侧边栏中的其他视图。

要通过上下文菜单提交提示,请在编辑器中右键单击,然后在出现的菜单中选择 Copilot,然后选择其中一个操作。智能操作也可以通过选择代码行时有时会出现的闪光(sparkle)图标访问。

根据您的提示,Copilot Edits 提出跨工作区多个文件的代码更改。这些编辑直接应用于编辑器中,因此您可以快速在原地审查它们,同时具有周围代码的完整上下文。

Continue 源码分析 - 向量数据库存储位置

向量数据库存储目录名字的组成部分:

  • IndexTag.directory: /Users/junjian/GitHub/continuedev/continue-0.9.191-vscode/extensions/vscode
  • IndexTag.branch: NONE
  • IndexTag.artifactId: vectordb::_TransformersJsEmbeddingsProvider::bge-small-zh-v1.5

变量IDE ExtensionsBranchEmbedding ProviderEmbedding Model

源代码:core/indexing/refreshIndex.ts

export function tagToString(tag: IndexTag): string {
  return `${tag.directory}::${tag.branch}::${tag.artifactId}`;
}