链接:https://marketplace.visualstudio.com/items?itemName=Zim.vscode-deepseek-obsidian

SmarterCode 深度搜索

⚠️ 重要提示 — 制作与预览功能

Copilot 集成(使用 DeepSeok 作为 VS 代码语言模型聊天提供程序)已处于生产水平,可日常使用。

然而,experimental features此扩展还包含一些仍在积极开发中的实验性特征:

    Vault & Iterative Prompt保险库与迭代提示——持久性内存和结构化提示视图可作为后续内容的预览。这些是功能性的,但随着我们改进,可能会发现突破性的变化。
    Heavy Optimisations & Saved Prompts重度优化与保存提示——重大性能提升和增强的快速管理能力正在筹备中。

欢迎提供反馈和贡献——它们有助于塑造最终功能!

快速开始

按 F1F1 键,然后选择 DeepSeek:设置 API 密钥——在提示时输入您的 DeepSeek API 密钥。
打开 VS 代码聊天(Ctrl+Shift+I并从型号下拉中选择 DeepSeek V4 Flash 或 DeepSeek V4 Pro。
开始提问或请求更改代码——DeepSeek 的工作方式与 Copilot 类似。

有关完整功能集(元内存、迭代提示、侧边栏浏览器等),请阅读以下部分。

如需更多更新,请订阅 zikalino.substack.com。

目录

概述
使用
基于保险库的持久内存
迭代提示(结构化相互作用)
侧边栏探索器
写入引擎(自动应用不同补丁)
多元制
配置参考
命令参考
建筑概览
构建与安装

1。概述

SmarterCode DeepSeek 是一款 VS 代码扩展,可将 DeepSeek 的语言模型(V4 Flash 和 V4 Pro)直接导入您的编辑器。它不仅提供简单的聊天包装,还提供:

Copilot 集成 — 在 VS Code Chat 中使用 DeepSeok 作为您的默认模型。提出问题,要求修改代码,搜索你的代码库——全部来自Ctrl+Shift+I。
Iterative Prompt迭代提示——用于使用内存文件、文件附件和迭代优化循环的结构化提示的专用网页视图。
文件与代码上下文 — 右键单击编辑器中的任何文件或选定代码,然后直接发送至 DeepSeek。
持久项目内存(Vault)——一个内置的Markdown音符库,带有标签和正面内容,可为您的项目构建一个不断发展的知识库。
Tag-based context selection基于标签的上下文选择——标签可让您控制提示符中包含哪些保险库笔记。
Diff-based writeback基于不同的回写——DeepSeek 可以提出文件更改作为统一的 diffs,并且该扩展程序会自动应用。

2。使用
配置 — 副驾驶集成模式

API路由通过DeepSeek Copilot提供程序自动处理。通常不需要手动的API密钥配置。

指向不同的API端点(例如,一个自托管代理),请设置deepseek.apiEndpoint在设置中。
使用 Copilot

配置API密钥后,最快的启动方式是通过VS Code内置的聊天功能:

开放 VS 代码聊天——Ctrl+Shift+I(Windows/Linux)Cmd+Shift+I(macOS)。
从聊天输入的模型下拉菜单中选择 DeepSeek V4 Flash 或 DeepSeek V4 Pro。
开始输入你的问题

DeepSeek V4 Flash 针对速度进行了优化;V4 Pro 提供了更深层次的推理。每次交谈时,他们之间切换。

你在Copilot可以做什么:

询问有关您的代码库的问题——DeepSeek 使用 VS Code 工具来搜索、阅读和理解您的项目。
请求修改代码——它可以读取文件、提出编辑建议并解释其推理。
连接图片——它们会自动被描述并注入到上下文中。

使用迭代提示

迭代提示(DeepSeek: Iterative PromptF1 是该扩展程序的专用提示 Web 视图。它专为您希望以下位置的结构化交互而设计:

包含内存文件(标记为相关上下文的默认文件)。
workspace files将工作区文件作为支持上下文。
根据提示进行迭代,根据DeepSeek的回复进行改进。

快速开始:

运行来自命令调色板的 DeepSeek:迭代提示。
提示网页视图将打开标签、内存文件、用户提示符和附件文件部分。
添加侧边栏库浏览器中的标签——它们出现在标签部分,包含所有关联的内存文件。
将您的问题写入“用户提示”部分(可编辑文本区域)。
单击发送 — 响应会显示在单独的响应选项卡中。
Save使用“保存”按钮保存提示——已存储.vault/saved-prompts/。
回复结束后,您可以:
    Apply code changes应用代码更改——如果DeepSeek建议统一差异,扩展程序可以直接将其应用到你的工作区文件中。
    Refine the prompt细化提示符 — 编辑“用户提示”部分并重新提交。
    Accept adjustment request接受调整请求——如果模型确定提示需要优化,则该请求会响应adjustment-requestYAML 区块。然后,该扩展程序会提示您进行澄清,并使用更新的目标、添加文件或附加上下文重新启动。

网页界面包含标签、内存文件和TODO项的交互式列表部分——您可以使用 ✕ 按钮删除项目,并在 TODO 部分切换复选框。
使用来自 Explorer 的文件

File Explorer您可以快速将文件从文件资源管理器添加到迭代提示符中:

Single file:单文件:右键单击文件 → 向提示符添加 → 文件被添加到活动提示符中(如需自动创建一个)。
Folder:文件夹:右键单击文件夹 → 加入提示符 → 全部.md该文件夹中的文件被添加到内存文件中,并解析为 TODO 部分。
Multi-select:多选择:选择多个文件/文件夹,右键单击 → 加入提示符 → 所有选定的项目都已附加。

与编辑选择合作

要获取特定代码的帮助:

在编辑器中选择代码。
右键单击 → Add to Prompt添加到提示符。
如果未打开提示,则自动创建一个以所选代码为用户提示符的提示。

使用内存文件(Vault)

Vault保险库是您项目的持久内存——存储在 Markdown 笔记中的集合.vault/在您的工作区根目录下。这些笔记带有YAML前置值(标签、类型、相关ID),并作为DeepSeek的长期背景。

制作一个笔记:

创建一个.md文件在任何位置.vault/与 Frontmatter 一起:


id: api-design
tags: [backend, architecture]
type: decision

API Design Decision

We chose REST over GraphQL because…

保险库已自动索引——无需重新启动即可立即获取新音符。

在提示中使用注释:

在迭代提示符中,在标签步骤中选择相关标签——所有带有这些标签的音符均以上下文形式注入。
Add to Prompt通过“添加到提示符”从侧边栏添加库文件——它们会显示在内存文件中。

请参见 §3 — 基于 Vault 的持久内存,了解完整格式的引用和索引详细信息。
与TODOs合作

该扩展程序解析来自 markdown 文件的 TODO 项,这些文件包含与“下一步”、“todo”或“请求”相匹配的部分。两者都- x和-(待定)物品被认可。

在侧边栏中:展开 TODOs 部分,查看按父文件夹分组的项目。

在提示中使用 TODO:

右键单击TODO项 → Add to Prompt添加到提示符:将TODO文本添加到TODO部分,将父文件添加到内存文件中。
添加保险库文件或文件夹也会从内容中解析TODO,并自动添加。

DeepSeek 申请日志及代币成本

该扩展将所有 DeepSeek API 活动记录到 DeepSeek 输出通道。

查看日志:

运行 DeepSeek: Browse LogsDeepSeek:从命令调色板中浏览日志。
这打开了DeepSeek每个请求的输出通道,包含带有时间戳的条目。
日志包含请求摘要、代币使用情况和成本估算。

了解成本:

每个日志条目显示:

Model used所用型号——V4 Flash 与 V4 Pro(不同价格)。
输入令牌 — 发送了多少个令牌(提示 + 上下文)。
输出令牌 — 生成了多少个令牌(响应)。
Estimated cost估算成本——根据模型定价计算。

这对于跟踪使用情况并确保您不超过API预算非常有用。您可以通过以下方式调整模型选择和上下文大小deepseek.maxContextNotes而且deepseek.maxNoteLength控制成本。

对于更深入的诊断,设置deepseek-copilot.debugMode到"verbose"将原始请求有效载荷转给.dump/在您的工作区中。
3。基于保险库的持久内存

该保险库是一个嵌入式黑曜石风格的Markdown笔记收藏,作为该项目的持久内存。每一张纸条都是.md使用 YAML 前置值文件,存储在可配置的库目录中(默认:.vault/在工作区根部)
保险库结构

.vault/
├── 01-memory-ops/ # Starter folder: operational memory
├── 10-projects/ # Starter folder: project notes
├── 20-shared-systems/ # Starter folder: shared system documentation
├── saved-prompts/ # Saved Iterative Prompt markdown files
├── reports/ # Response outputs from DeepSeek
└── *.md # Any Markdown note files

备注格式


id: my-note
tags: [architecture, backend]
type: design-doc
related: [other-note]

My Note

Content here…

前沿材料字段
场地 类型 描述
id 字符串 唯一标识符(默认为无扩展名)
tags 字符串 用于上下文选择和索引的标签
type 字符串 可选类型分类(例如design-doc,decision)
related 字符串 可选相关笔记ID
保险库索引

启动时,扩展程序会扫描所有内容.md库中的文件并构建三个索引:

标签索引 — 将每个标签映射到承载它的文件路径列表中。
ID 索引 — 将每个记号 ID 映射到其文件路径。
输入索引 — 将每个类型值映射到文件路径(保留以供将来使用)。

每当文件通过文件添加、删除或修改时,该保险库将自动重新索引FileSystemWatcher。
来自Vault的系统提示

您可以在保险库中放置一个自定义系统提示,并通过该提示进行指向deepseek.systemPromptPath设置。路径是相对于保险库根的。
4.迭代提示(结构化相互作用)

迭代提示(DeepSeek: Iterative Prompt命令)是扩展的旗舰交互模式。它打开一个网页视图,收集上下文标签、内存文件和附加文件,然后提交到 DeepSeek ,支持迭代优化。
网络视图布局

提示版网页视图是基于标记的编辑器,包含以下部分:

System Prompt系统提示符——系统指令发送到模型。
Tags标签——@tags 的交互式列表。单击 ✕ 以删除。从侧边栏添加标签还会添加其关联的内存文件。
内存文件 — 包含上下文的保险库文件交互式列表。单击 ✕ 以删除。添加Vault文件夹时会扩展到所有.md文件。
TODO — 带复选框的交互式列表。单击复选框进行切换,✕ 删除。添加TODO时会自动从内存文件中解析。
User Prompt用户提示——一个可编辑的文本区域,用于撰写您的问题或说明。
附加文件 — 添加非默认文件作为附加上下文。

保存按钮

Save提示选项卡包含一个保存按钮,可将当前提示内容保存到{vaultRoot}/saved-prompts/作为.md文件与前置物质。Saved Prompts保存提示在“已保存提示符”下显示在侧边栏中——点击以迭代提示符形式重新打开,或右键单击以查看标记或删除。
迭代精炼循环

如果 DeepSeek 的响应包含一个 YAML 块adjustment-request包括:

updated-objective
files-needed
clarifications-needed

… 扩展程序提示澄清并重新启动,从而实现调整循环,逐步优化目标并完成文件处理,直至满意。
5。侧边栏探索器

DeepSeek Explorer 侧边栏(活动栏图标)提供了以下层次视图:
保险库文件

工作区内存中所有 Markdown 笔记的树图视图,按文件夹结构组织。
点击在编辑器中打开注释。
右键单击菜单:加入提示,Delete删除。

全局保险库文件(如已配置)

用于外部全球金库注释的单独树段。
与工作区库文件相同的交互。

标签

全部完整列表@tag保险库笔记(包括工作区和全球版)中的条目。
单击标签以查看其关联的笔记。
Add to Prompt右键:加入提示符。

土拨鼠

解析project-memory.mdTODO 部分的库中的文件。
识别- [x](完成)和-(待定)清单项目。
按父文件夹划分的组,便于导航。
点击以在特定行中打开文件。
右键:加入提示符(将该文件中的所有TODO添加到内存文件中)。

保存提示

列出全部.md提示文件{vaultRoot}/saved-prompts/。
点击将内容作为迭代提示符重新打开。
右键单击菜单:加入提示,查看“标记下”,Delete删除。

6.写入引擎(自动应用不同补丁)

Writeback Engine写入引擎使 DeepSeek 能够自动对工作区文件提出并应用更改。当 DeepSeek 在 a 内部输出统一差异时diff屏蔽代码块,引擎会解析并应用它。
支持格式

统一差异:

— a/src/file.ts
+++ b/src/file.ts
@@ -10,6 +10,7 @@
some context line
+new line
another context line

注意创建:

[CREATE_NOTE id=my-note tags=architecture,backend type=decision]

Note content here

[END_NOTE]

它是如何工作的

散道围栏diff从响应中起到几个块。
散香与上下文匹配的散列式离心机。
按反向顺序(从下到下)使用块头以保持线号。
处理边缘场景,例如新文件创建(/dev/null → new path和文件删除。

响应存储

所有回复均保存{vaultRoot}/reports/如下:

response-raw.txt— 原始的减价响应
response-{timestamp}.html— 样式化的 HTML 渲染

7.多元制

two vaults simultaneously该扩展同时支持两个保险库:
工作空间保险库(默认)

位于{workspaceRoot}/.vault(可配置)。
范围已到当前项目。
支持版本控制。

全球保险库(可选)

通过配置deepseek.globalVaultPath。
通往工作区外外部保险库的绝对路径。
注释在侧边栏的“全局保险库文件”下显示。
标签与工作区保险库标签合并merged,用于上下文选择。

使用案例

工作空间库 — 项目特定决策、架构说明、API 文档。
Global vault全球保险库——个人编码标准、可重复使用模板、跨项目约定。

8.配置参考

所有设置均在以下deepseek.而且deepseek-copilot.命名空间。
核心设置(deepseek.
)
设置 类型 默认 描述
deepseek.mode “api”|“local” “api” 推断模式。
deepseek.apiEndpoint 字符串 https://api.deepseek.com/v1/chat/completions API 端点覆盖。
deepseek.model 字符串 “deepseek-v4-flash” 要使用的型号名称。
deepseek.vaultRoot 字符串 “.vault” 相对于工作区根的阀路径。
deepseek.globalVaultPath 字符串 “” 通往外部全球保险库的绝对路径。
deepseek.maxContextNotes 数字(1–50) 10 每回合注入的最大金库音符。
deepseek.maxNoteLength number (100–32000) 4000 截断前每张纸币最多。
deepseek.systemPromptPath 字符串 “” 通往库内一个自定义系统提示文件的路径。
副驾驶调试设置deepseek-copilot.
)
设置 类型 默认 描述
deepseek-copilot.debugMode “minimal”|“metadata”|“verbose” “minimal” 控件请求诊断和转置文件生成。
内部副驾驶设置(高级)
设置 名称空间 描述
baseUrl deepseek-copilot 面向 deepseek-copilot 提供程序的 API 基础 URL。
maxTokens deepseek-copilot Max output tokens (0 = model default).
experimental.stabilizeToolList deepseek-copilot 实现工具列表的相互稳定。
visionModel deepseek-copilot 用于视觉代理图像描述的模型。
9. Commands Reference

标有F1 command palette🔍的命令可从F1命令调色板访问。内部命令在调色板中隐藏,但可通过上下文菜单、侧边栏交互或程序化调用进行操作。
F1-无障碍命令
命令ID 标题 描述
🔍 deepseek.createPrompt DeepSeek: Iterative Prompt Open the prompt webview with context tags, memory files, and DeepSeek submission.
🔍 deepseek.showLogs DeepSeek: Browse Logs Open the DeepSeek output log channel.
🔍deepseek.configureDeepSeek 深度搜索:配置设置 Open VS Code settings for this extension.
🔍deepseek.createVault 深度搜索:创建保险库 在工作区中初始化一个新保险库。
内部命令(隐藏于F1调色板中)
命令ID 标题 触发表面
deepseek.addToPrompt 添加到提示符 浏览器右键,右键侧边栏
deepseek.sendPromptToDeepSeek 向 DeepSeek 发送提示 程序化(将提示的WebView内容发送至API)
deepseek.sidebar.refresh 刷新侧边栏浏览器 侧边栏工具栏按钮
deepseek.sidebar.filter 滤镜阀管理器 侧边栏搜索图标
deepseek.sidebar.clearFilter 透明保险库浏览器筛选器 程序化
deepseek.explorerDeleteItem 删除 侧边栏项目上下文菜单
deepseek.explorerShowMenu 更多行动 侧边栏内插页按钮
deepseek.openVaultFile 打开保险库文件 侧边栏文件点击
deepseek.openTodoItem 在线打开Todo文件 侧边栏点击
deepseek.openSavedWorkflow 打开保存提示符 侧边栏保存提示点击
deepseek.saveWorkflowToVault 将提示符保存到保险库 侧边栏上下文菜单
deepseek.showTaggedFiles 显示标签文件 侧边栏标签点击
deepseek.api.submitToDeepSeek 向 DeepSeek 提交上下文 程序化(由迭代提示发送使用)
deepseek.api.addRequestText 将请求文本添加到聊天草稿 程序化
10.建筑概览

┌──────────────────────────────────────────────────────┐
│ VS Code Extensions Host │
│ │
│ ┌──────────────────────────────────────────────┐ │
│ │ extension.ts (activate) │ │
│ │ │ │
│ │ ┌─────────────┐ ┌──────────────────┐ │ │
│ │ │ AuthManager │ │ VaultManager │ │ │
│ │ │ (auth.ts) │ │ (vaultManager.ts) │ │ │
│ │ └──────┬──────┘ └────────┬─────────┘ │ │
│ │ │ │ │ │
│ │ ┌──────▼──────┐ ┌───────▼────────┐ │ │
│ │ │ DeepSeek │ │ IndexEngine │ │ │
│ │ │ ChatProvider│ │ (indexEngine.ts)│ │ │
│ │ │(provider/ │ └───────┬────────┘ │ │
│ │ │ index.ts) │ │ │ │
│ │ └──────┬──────┘ ┌───────▼────────┐ │ │
│ │ │ │ ContextSelector │ │ │
│ │ │ │(contextSelector)│ │ │
│ │ │ └───────┬────────┘ │ │
│ │ │ │ │ │
│ │ ┌──────▼──────────────────▼────────┐ │ │
│ │ │ DeepSeekClient │ │ │
│ │ │ (deepseekClient.ts) │ │ │
│ │ └──────────────┬───────────────────┘ │ │
│ │ │ │ │
│ │ ┌──────────────▼────────────┐ │ │
│ │ │ WritebackEngine │ │ │
│ │ │ (writebackEngine.ts) │ │ │
│ │ └───────────────────────────┘ │ │
│ │ │ │
│ │ ┌─────────────┐ ┌──────────────────┐ │ │
│ │ │ SidebarTree │ │ Prompt Webview │ │ │
│ │ │(sidebarTree) │ │(prompt-webview) │ │ │
│ │ └─────────────┘ │ .ts) │ │ │
│ │ └──────────────────┘ │ │
│ └──────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────┐ │
│ │ DeepSeek API (chat.deepseek.com) │ │
│ │ or Local Inference Server │ │
│ └──────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘

关键设计决策

Dual Provider Architecture双提供商架构——扩展程序同时统一LanguageModelChatProvider(用于Copilot集成)和独立DeepSeekClient(用于迭代提示符)。每个都有独立的配置,并请求管道。

Vault 即文件系统——该保险库以普通 Markdown 文件形式存储在磁盘上,使其对版本控制友好,并可与任何工具编辑。

Tag-Based Context Selection基于标签的上下文选择——标签提供明确且由用户控制的上下文选择,以便在提示中包含相关的保险库备注。

统一的Diff Writeback——代码修改通过从模型响应直接解析的统一diff补丁进行,从而实现基于人工监督的自动代码修改。

11.构建与安装
先决条件

Node.js 18+
VS 代码 1.85+

构建

cd vscode-extensions/vscode-deepseek
npm install
npm run compile

包装与安装

跑步build-install.bat从扩展文件夹中:

build-install.bat

这运行vsce package(哪个触发)vscode:prepublish→precompile→compile然后code --install-extension关于结果.vsix。

如果共享组件已更改(shared/vscode-components/)vsce package自动运行prepare:shared-components实现最新版本。

安装后,重新加载 VS 代码: Ctrl+Shift+P→ 开发者:重装窗口
扩展结构

vscode-deepseek/
├── src/
│ ├── extension.ts # Activation, command registrations, DI wiring
│ ├── auth.ts # API key management via SecretStorage
│ ├── consts.ts # Constants & model definitions
│ ├── types.ts # TypeScript types
│ ├── logger.ts # Output channel logger
│ ├── i18n.ts # Internationalization (Chinese/English)
│ ├── deepseekClient.ts # Standalone DeepSeek API client
│ ├── vaultManager.ts # Vault file management & frontmatter parsing
│ ├── indexEngine.ts # Tag/id/type index building
│ ├── sidebarTree.ts # DeepSeek Explorer tree provider
│ ├── writebackEngine.ts # Unified diff parser & file patcher
│ ├── promptFile.ts # Prompt markdown file creation & management
│ ├── client/
│ │ ├── core.ts # Copilot provider HTTP client
│ │ └── error.ts # Error handling utilities
│ └── provider/
│ ├── index.ts # DeepSeekChatProvider (Copilot integration)
│ ├── convert.ts # Message/tool format conversion
│ ├── schema.ts # Schema validation
│ ├── debug/ # Request dumping & diagnostics
│ ├── replay/ # Conversation replay engine
│ ├── tools/ # Tool stabilization & limits
│ └── vision/ # Vision proxy for image input
├── vendor/ # Materialized shared components
├── imgs/ # Extension icons
├── scripts/ # Build scripts
├── package.json
├── tsconfig.json
└── build-install.bat

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐