当前位置: 首页 > news >正文

DeepSeek接入Codex:配置Skill与插件打造Agent编程工作流

如果你最近在关注 AI 编程助手,一定刷到过类似“DeepSeek 接入 Codex”的讨论。标题里的“王炸”也许有点夸张,但这个组合确实解决了一个非常现实的问题:模型能力不再是唯一瓶颈,Agent 的工程化能力开始变成开发者自己能掌控的东西。过去我们使用 Codex 类工具,默认绑定的都是官方模型,费用、访问稳定性、企业合规等因素都会让人犹豫。而 DeepSeek 系列模型开放了与 OpenAI 兼容的 API 格式,接入流程变得非常直接。把 Codex 换成 DeepSeek 驱动,相当于保留了一套成熟的 Agent 工作流,换上了成本更低、响应速度更适合多轮迭代的模型内核。

这篇文章要讲清楚的不只是“怎么换模型”,而是把 Codex 接入 DeepSeek 之后,整个 Agent 使用方式会发生什么变化。我会重点拆解三件事:第一,Codex 如何配置 DeepSeek 的 API;第二,如何给 Codex 安装 Skill,让 Agent 在“读代码、审查代码、补测试”这类任务上不再泛泛而谈;第三,如何调用插件,把本地文件系统、外部服务等工具接进 Agent 的工作流。这三个能力加起来,才是社区里说的“DeepSeek + Codex 王炸组合”的真正含义。

读完这篇文章,你会得到一套完整的操作路径:从环境准备到 config.toml 配置,从第一个 Skill 到第一个插件,再到完整跑通一个真实任务。我会用尽量真实的配置和排查思路来写,所有步骤你都可以直接复制到终端里执行。如果你正准备把 DeepSeek 或类似国产模型接入 Codex,或者对 Agent 的 Skill / 插件机制感兴趣,这篇文章应该能帮你少走不少弯路。

1. 为什么“DeepSeek + Codex”值得关注

先说一个很多人的误区:以为把 Codex 接上 DeepSeek,只是换了一个“更便宜的大脑”。实际上,真正值得关注的不是模型替换,而是工作流复用。

Codex 这类 Agent 工具的工作方式,和普通聊天框完全不同。它收到一个任务后,会自己拆解步骤,写出计划,修改代码,运行命令,读取报错,再调整方案,循环往复直到任务完成。在这个过程中,模型不是被调用一次,而是可能被调用几十次甚至上百次。每一轮都有思考、生成和结构调整的开销。所以模型单价哪怕只便宜一点,对一个完整任务的总成本影响都会被放大很多倍。

DeepSeek 在这个场景里的优势,恰恰不只是“便宜”。从社区开发和讨论的实际体验来看,像 V4 Flash 这类面向快速响应的模型,和 Agent 高频短回合的工作模式匹配度很高。Agent 编程的特点是上下文频繁重写、单次生成量不大但对延迟敏感,这和纯展示“模型智力上限”的评测场景完全不同。换句话说,模型在 benchmark 上高几分,不如在实际多轮任务里少卡顿几次、少报几次格式错误,后者才是真实体感。

再从工程角度看,这个组合真正降低的是 AI 编程助手的落地门槛。Codex 的配置是标准的~/.codex/config.toml,Skill 是目录化的 SKILL.md,插件走的是 MCP 协议。这三套机制都是开放的、可扩展的。当它们运行在 DeepSeek 的 API 之上时,意味着一个团队可以在企业内部统一模型服务,同时保留 Codex 的完整 Agent 能力。这对那些需要模型服务自建、数据不出内网的团队来说,吸引力非常大。

所以我的判断是:DeepSeek + Codex 之所以能被社区反复讨论,不是因为它打败了谁,而是因为它把“Agent 编程”这件事从少数人的玩具变成了多数人可以低成本复制的工程方案。你不需要有 OpenAI 的订阅,不需要纠结海外模型的服务稳定性,只需要一个 DeepSeek API Key,就能体验完整的 Agent 工作流。

2. 先厘清概念:模型、Agent、Skill、插件

在看配置之前,有必要把几个容易混淆的词先分清楚。否则你会在社区帖子里看到“模型”“Agent”“Skill”“插件”来回混用,理解会非常吃力。

模型(Model)是最底层的东西。DeepSeek 开放平台提供了模型 API,你传入用户消息,它返回模型生成的文本。它本身没有“执行命令”“读写文件”“调用工具”的能力,它只负责理解和生成。

Agent 是跑在模型之上的一层。Codex CLI 就是 Agent,它负责把用户的任务拆成步骤,决定什么时候调用模型、什么时候执行 shell 命令、什么时候读取文件、什么时候把控制权交回给用户。简单说,Agent 是“大脑的四肢和神经系统”,模型是“大脑皮层”。

Skill 是给 Agent 预定义的“领域操作手册”。没有 Skill 时,你让 Codex“审查这段代码”,它只能按照通用 prompt 去发挥。有 Skill 时,它能从~/.codex/skills/code-review/SKILL.md读取一套规则,包括审查维度、输出格式、优先级定义。这相当于把团队的代码规范、审查标准直接固化到 Agent 的工作流里。

插件(Plugin / MCP Server)负责把外部工具接进来。Codex 本身只能执行 shell、读写文件,这是它的边界。但通过 MCP(Model Context Protocol)服务器,它可以连接数据库、访问 HTTP 服务、操作浏览器等。插件和 Skill 的区别是:Skill 改变的是 Agent 的行为方式,插件扩展的是 Agent 的能力边界。

概念解决的问题在 Codex 中的形态典型例子
模型文本生成与推理API 服务DeepSeek 系列模型
Agent任务拆解与执行调度Codex CLIcodex exec 命令
Skill让 Agent 按规范做事~/.codex/skills/<name>/SKILL.md代码审查 Skill
插件扩展 Agent 的工具边界MCP Server文件系统 MCP、数据库 MCP

理解这四个层级之后,你就能看懂接下来的所有操作:我们要做的,是把模型一层换成 DeepSeek,让它跑在 Codex 这个 Agent 框架里,再往上叠加 Skill 和插件。

3. 环境准备与前置条件

在开始配置之前,先把环境准备好。以下步骤覆盖常见操作系统,具体版本请以你实际使用环境为准,本文重点演示通用思路。

首先是操作系统与基础运行环境。Codex CLI 是命令行工具,macOS 和 Linux 上可以直接使用;Windows 用户建议在 WSL 或 Git Bash 中运行,避免路径和脚本兼容性问题。Codex CLI 需要 Node.js 运行时,建议使用 Node.js 18 或更高版本。如果你本地还没有 Node.js,可以通过 nvm 或官网安装包安装,安装完成后用node -v验证。

其次是 Python 环境。很多 Skill 脚本和 MCP Server 使用 Python 编写,即使你的主力开发语言不是 Python,也建议安装一个可用的 Python 3 环境。Codex 在执行某些自动化操作时会使用 Python 写临时脚本,没有 Python 会让 Agent 的很多能力变成摆设。

然后是 DeepSeek 的 API Key。你需要前往 DeepSeek 开放平台注册账号,创建一个 API Key,这个 Key 以sk-开头。创建之后注意保存好,因为平台通常不会再次完整显示。API Key 是敏感信息,后面我们会通过环境变量注入,而不是写死在配置文件里。

最后是安装 Codex CLI。官方 Codex CLI 可以通过 npm 安装,安装命令如下:

npm install -g @openai/codex

安装完成后,验证版本:

codex --version

如果提示codex: command not found,说明 npm 的全局安装目录不在系统 PATH 中。可以先执行npm config get prefix查看全局安装路径,再把对应的/bin目录添加到 PATH。

到这里,环境准备基本完成。你不需要急着执行codex login或绑定任何官方账号,因为我们接下来要绕开默认登录流程,直接配置第三方模型提供商。

4. 核心配置:让 Codex 走 DeepSeek 的 API

Codex CLI 的配置目录在~/.codex/,核心配置文件是config.toml。这个文件负责告诉 Codex:默认使用哪个模型、模型服务地址在哪里、API Key 从哪个环境变量读取。

先确定你的 DeepSeek API Key 环境变量。打开终端,执行:

export DEEPSEEK_API_KEY="sk-你的实际key"

为了让每次打开终端都生效,建议把这一行写入~/.bashrc~/.zshrc。设置完成后,先用 curl 验证 DeepSeek 接口是否通。DeepSeek 兼容 OpenAI 的 Chat Completions 接口,一个最小测试如下:

curl https://api.deepseek.com/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $DEEPSEEK_API_KEY" \ -d '{ "model": "deepseek-chat", "messages": [{"role": "user", "content": "Hello"}], "max_tokens": 20 }'

如果返回结果里包含choices字段,说明 API Key 有效,接口连通。这里的deepseek-chat是一个通用模型标识,如果你使用的是 DeepSeek V4 Flash 或其他新模型,模型 ID 要以 DeepSeek 开放平台控制台展示的为准,不要照抄。

接下来,创建或编辑~/.codex/config.toml,核心配置如下:

model = "deepseek-chat" model_provider = "deepseek" [model_providers.deepseek] name = "DeepSeek" base_url = "https://api.deepseek.com/v1" env_key = "DEEPSEEK_API_KEY" wire_api = "chat"

逐项解释一下:

  • model:Codex 默认使用的模型 ID,需要与 DeepSeek 开放平台中的模型 ID 保持一致。
  • model_provider:指向下面定义的model_providers.deepseek配置块。
  • base_url:API 服务地址。DeepSeek 开放平台兼容 OpenAI 调用格式,所以可以使用/v1路径。
  • env_key:API Key 的环境变量名。Codex 会在运行时从环境里读取这个变量,作为请求的 Authorization 头。
  • wire_api:接口协议类型,DeepSeek 兼容 Chat Completions,所以填chat。如果后续 Codex 版本要求填responses,需要再调整。

配置完成后,运行一个最简单的任务验证:

codex exec "列出当前目录的文件,并说明每个文件的作用"

如果配置正确,Codex 会通过 DeepSeek 的 API 完成请求,并在终端输出分析结果。如果报错,优先检查环境变量是否生效、模型 ID 是否正确、base_url 是否可达。

这里要提醒一个容易踩坑的地方:base_url结尾是否有/v1。DeepSeek 的 API 同时支持两种写法,但有些模型服务商只认其中一种。如果你配置后一直报 404,可以尝试把base_urlhttps://api.deepseek.com/v1改成https://api.deepseek.com,或者反过来。这个细节很小,但能卡住很多人。

5. 给 Agent 装 Skill:从“会对话”到“会干活”

Codex 接入 DeepSeek 之后,它已经能完成基础的编程任务了。但如果你希望它稳定地按团队规范输出,比如代码审查必须分安全、性能、可维护性几个维度,或者生成代码时必须附带单元测试,那就要用到 Skill。

Skill 的本质是一份带元信息的 Markdown 文件,放在指定目录下。Codex 在启动时会扫描这些 Skill,当用户任务与某个 Skill 的描述匹配时,它会把这份指令加载到上下文中,让模型按照指令执行。

先创建目录结构:

mkdir -p ~/.codex/skills/code-review

然后创建~/.codex/skills/code-review/SKILL.md,内容如下:

--- name: code-review description: 当用户要求审查代码、分析代码质量或 review diff 时使用。 --- # Code Review Skill 你是一名资深代码审查专家。当用户要求审查代码时: 1. 先定位目标文件或 Git diff。 2. 从四个维度给出审查意见:正确性、安全性、性能、可维护性。 3. 每个问题标注严重级别: - P0:必须修复的严重问题 - P1:建议修复的问题 - P2:可优化的问题 4. 输出格式: - 问题清单(按严重级别排序) - 修改建议 - 最小修复代码示例 5. 不要为了凑数而提问题,只报告真实存在的风险。 示例输出格式: ### P1 安全风险 - 位置:src/main.py:42 - 问题:SQL 语句使用字符串拼接,存在注入风险 - 建议:使用参数化查询

文件头部用---包裹的是 frontmatter,name是 Skill 的唯一名称,description是触发条件。Codex 根据 description 判断什么时候该加载这个 Skill,所以 description 要写得精准,包含触发场景的关键词。

创建完成后,进入一个 Git 项目目录,执行:

codex exec "审查一下当前项目的代码质量"

Codex 会匹配code-review这个 Skill,然后按照 SKILL.md 中的规则输出审查意见。如果你的项目比较小,也可以指定文件:

codex exec "审查 src/main.py 的代码质量"

Skill 的价值在于,它把“你的要求”变成了“Agent 的默认行为”。团队可以约定一套统一的代码审查规范,写进一个 Skill 文件,所有用 Codex 的成员都共享同一套标准。代码风格、commit message 格式、测试覆盖率要求,都可以这样固化下来。

6. 调用插件:从 MCP 到编辑器联动

如果说 Skill 是给 Agent 立规矩,插件就是给 Agent 开工具权限。Codex 原生能做的只有读文件、写文件、执行 shell 命令。如果想让它操作数据库、查询 HTTP API、访问文件系统之外的目录,就需要通过 MCP Server 接入。

MCP 是 Anthropic 提出、目前被多种 Agent 工具支持的开放协议。Codex 在config.toml里通过[mcp_servers.<name>]配置块注册插件。下面是一个文件系统 MCP 的配置示例,它允许 Codex 通过 MCP 协议访问指定目录:

[mcp_servers.filesystem] command = "npx" args = ["-y", "@modelcontextprotocol/server-filesystem", "/tmp/codex-mcp-demo"]

配置完成后重启 Codex。之后你可以让 Codex 读取/tmp/codex-mcp-demo目录下的文件,即使这个目录不在当前工作区内。MCP Server 的本质是一个本地子进程,Codex 通过标准输入输出与它通信,所以插件可以做成任意语言实现的可执行程序,只要能理解 MCP 协议即可。

除了命令行插件,还要提一下编辑器场景。很多开发者不是直接在终端里用 Codex,而是通过 VS Code 的 Codex 扩展来使用。VS Code 扩展本质上还是调用本地的 Codex CLI 和模型接口,所以只要~/.codex/config.toml配置好了 DeepSeek,编辑器插件也会自动使用同一个模型。如果你习惯在 IDE 里写代码,这种方式更顺手,审查代码、生成测试、解释报错都可以在编辑器侧边栏完成。

另外,社区里有人把 DeepSeek + Codex 的管理界面封装成了桌面端工具,称为 Harness 之类的工具,它会提供可视化配置、插件市场、Skill 管理面板。这类工具的核心逻辑仍然是三层:模型接入、Skill 目录、MCP Server。如果你只想快速尝鲜,官方 Codex CLI 完全够用;如果你要管理多个团队成员的配置,再考虑这类封装工具。

插件虽好,但要重视权限边界。MCP Server 可以访问文件系统、执行命令,甚至连接数据库。给 Codex 配置插件时,尽量遵循最小授权原则,只给它访问必要目录的权限,不要把整个磁盘都开放出去。我见过有人图方便,把文件系统 MCP 的根目录设为/,结果 Codex 在一次任务中尝试读取系统敏感文件,虽然没出事故,但风险很高。

7. 完整示例:用 DeepSeek + Codex 跑一个真实任务

前面把配置、Skill、插件分开讲了,这里用一个完整示例,把整条链路串起来。假设我们要完成这样一个任务:生成一个 Python 脚本,统计当前目录下 CSV 文件的记录数、字段数,并输出一份简要报告。

先准备一个测试目录:

mkdir -p ~/demo/codex-csv-demo && cd ~/demo/codex-csv-demo

造一份示例数据:

cat > data.csv <<'EOF' name,age,city Alice,28,Beijing Bob,32,Shanghai Carol,24,Shenzhen EOF

确认~/.codex/config.toml中已经配置好 DeepSeek provider,并且DEEPSEEK_API_KEY环境变量已生效。然后运行:

codex exec "写一个 Python 脚本,读取当前目录下的 data.csv,统计记录数和字段数,并输出一份报告到 report.txt"

Codex 会向 DeepSeek 发送任务请求,模型生成 Python 代码,Codex 把代码写入文件,然后执行脚本,观察输出,如果脚本报错还会自动修复。整个过程可能会持续一两分钟,取决于模型响应速度和网络状况。

任务完成后,检查目录:

ls -la cat report.txt

预期会生成一个 Python 脚本(文件名可能叫generate_report.py或类似)和report.txt报告文件。report.txt 中应该包含 CSV 的记录数、字段数以及表头信息。

再演示一个 Skill 参与的完整流程。我们在同一个目录下创建src/main.py

import sqlite3 name = input("input name: ") conn = sqlite3.connect("demo.db") cursor = conn.cursor() cursor.execute(f"SELECT * FROM users WHERE name = '{name}'") print(cursor.fetchall())

这是一段有 SQL 注入风险的代码。现在运行刚才创建的 code-review Skill:

codex exec "审查 src/main.py 的代码质量"

如果 Skill 配置正确,Codex 会调用code-reviewSkill,输出带有 P0 / P1 / P2 级别的审查意见,并指出 SQL 拼接问题,给出参数化查询的修改建议。你可以通过日志确认 Codex 确实加载了 Skill:在 Codex 输出的上下文信息中,会标记使用了哪个 Skill 文件。

这个示例虽然简单,但已经覆盖了模型接入、Agent 执行、代码生成、命令执行、Skill 加载的完整链路。实际项目中,你可以把任务换成“给某个服务补单元测试”“修复这个 lint 报错”“解释这段代码的逻辑”,流程都是一样的。

8. 常见问题与排查思路

即使配置步骤完全正确,实际操作中也很容易遇到问题。这里整理一份高频排查清单,按现象、原因、排查方式、解决方案来梳理。

问题现象可能原因排查方式解决方案
请求返回 401 或 authentication errorAPI Key 无效、环境变量未生效用 curl 单独测试 DeepSeek 接口确认DEEPSEEK_API_KEY已导出,重新执行 export 命令
提示 model not found 或 model 不存在config.toml 中的 model ID 写错登录 DeepSeek 开放平台查看模型 ID改为平台展示的准确模型 ID
请求返回 404base_url 的/v1路径与接口不匹配查看 Codex 输出日志中的完整请求 URL尝试去掉或加上/v1后缀
本地启动 Codex 时提示 local proxy failed本地代理或 API 网关服务异常,base_url 指向了本地地址但服务未启动确认 base_url 是否指向 127.0.0.1 或 localhost,检查对应服务进程是否存活修复本地转发服务,或改用 DeepSeek 官方直连地址
Skill 不生效SKILL.md 文件名或目录拼写错误检查~/.codex/skills目录结构确保文件名为SKILL.md,目录名是技能名称
Skill 描述不触发description 与任务描述不匹配查看 Codex 日志中加载了哪些 Skill优化 description,加入更具体的触发词
MCP 插件启动失败npx 未安装、插件包名错误在终端手动执行 npx 命令测试先安装 Node.js/npx,或换成其他插件实现
codex: command not foundnpm 全局路径不在 PATH执行npm config get prefix查看路径将 bin 目录加入 PATH

其中,“local proxy failed”这一类问题需要特别说明一下。如果你使用了本地代理、API 网关或转发服务,Codex 在请求/responses/chat/completions端点时会报这个错。大多数情况下不是 Codex 本身的问题,而是本地转发服务的端口没启动、配置的 base_url 指向了错误地址,或者转发服务不支持对应的端点。排查时先把 base_url 临时改回 DeepSeek 官方直连地址,如果可以正常工作,说明问题在本地转发层,应该去查网关日志和路由规则。

9. 最佳实践与工程建议

把 DeepSeek + Codex 真正用到项目里,不能只停留在“配通了”阶段。下面这些工程建议,是我认为从能用走向好用时必须考虑的。

第一,API Key 管理。不要把 Key 写进 config.toml,也不要提交到 Git 仓库。用环境变量注入是最基本的做法。团队协作时,可以使用密钥管理工具统一分发,每个成员使用独立的 Key,便于审计和撤销。

第二,成本控制。Agent 任务的特点是调用次数多,一个复杂任务可能消耗远超预期的 token。建议在 Codex 配置中设置合理的上下文上限,把大任务拆成多个小任务执行,不要一个 prompt 塞进整个项目的全部需求。如果发现某个模型的推理价格明显偏高,可以先用小任务验证效果,再决定是否全量切换。

第三,工作区隔离。Codex 在任务中会创建和修改文件,建议每个任务使用独立的临时工作目录,避免 Agent 误操作污染主项目。尤其是涉及删除、移动文件的任务,一定要先确认 Codex 的执行计划,再允许它执行破坏性命令。

第四,Skill 的版本管理。Skill 文件是纯文本,非常适合放进 Git 仓库。团队可以把常用 Skill 集中维护,成员拉取后放入自己的~/.codex/skills目录即可。Skill 更新时,通过 Git 同步而不是手动覆盖,可以避免各成员 Skill 版本不一致。

第五,插件权限最小化。前面已经提过,MCP Server 有很强的本地能力。配置插件时,先思考“这个任务真的需要访问数据库吗”,不需要就不接。如果是团队共享的开发机,还要注意 MCP Server 的日志是否包含敏感数据,建议关闭调试输出。

第六,安全边界。Codex 生成的代码,尤其是涉及 SQL、shell 命令、文件操作的代码,要经过人工审查再合入主线。模型生成的代码看起来合理,不代表一定正确。Agent 能快速写出代码,但代码能不能安全上线,仍然要由人来判断。

至于不适合的场景,也要说明白。如果你的项目对代码上下文要求极高,一次任务需要处理几十万行代码,且对模型推理深度要求超过响应速度,那么轻量级模型可能不是最优选择。Codex + DeepSeek 的组合更适合日常开发任务:写脚本、做重构、补测试、查文档、审查代码。它是提高开发效率的助手,不是替代所有工程流程的银弹。

写在最后

回到标题的问题:DeepSeek V4 Flash 和 Codex 组合在一起,是不是“王炸”?我的回答是,它不需要被抬到“王炸”的高度,但它确实把一个原本昂贵的 Agent 编程体验,拉到了普通开发者可以低成本尝试的范围里。模型能力、Agent 框架、Skill 机制、插件生态,这四个层级组合起来,代表了一种新的开发方式:你不需要从零搭建 Agent,只需要在成熟的框架里更换模型、补充技能、接入工具,就能得到一个完全属于自己的 AI 编程助手。

如果你看完这篇文章,最值得立刻行动的一步,不是去追最新的模型跑分,也不是找一堆插件装上,而是先创建一个属于自己的最小 Skill——比如“代码审查”或“生成单元测试”,用真实项目跑一遍,感受一下 Skill 对 Agent 输出质量的约束效果。从这个最小的技能开始,你会发现整个 Codex 工作流的可定制程度远超预期。后续再逐步完善配置、接入插件,把这个工具链打磨成适合自己团队的形状。

http://www.cnnetsun.cn/news/4323475.html

相关文章:

  • Spring 声明式事务在同类中失效的原因与解决方案汇总
  • RV1126准备-----RockX的使用
  • 【Python 多行字符串与三引号】
  • 从C语言到机器码:掌握编译与反汇编的核心原理
  • OpenAI 应用快照指南:锁定模型版本,告别输出漂移
  • 安卓开发环境配置避坑指南
  • 8K电视盒子配置指南:从双频Wi-Fi到蓝牙语音遥控全解析
  • Paperless-ngx 多语言配置:中文 OCR、日期解析与本地化界面的 4 步落地法
  • HyperMesh 12.0前处理实战:几何清理与网格划分完整流程解析
  • Stats 开箱即用:macOS 系统监控工具 DMG 安装全流程
  • MATLAB整车性能仿真指南:参数化建模与批量仿真高效流程
  • 车载NFC技术解析:从原理到Android实现与安全防御
  • 大模型页游开发实战横评:K3/GLM5.2/Fable5/Hy3对比
  • 三极管驱动LED电路设计:NPN低边、PNP高边与基极电阻计算详解
  • Python构建投资实证数据工作流:股息率计算与持仓快照
  • 整车NVH建模与仿真:Hypermesh+Optistruct关键实操指南
  • IT软件行业GEO实战:让AI引擎优先推荐你(附真实案例)
  • 层次分析法(AHP)详解:MATLAB实现、判断矩阵与一致性检验
  • AI盈利拐点背后的技术杠杆:算力成本与单位经济模型
  • 宠物医院管理系统毕业设计:从数据库设计到SSH框架部署全解析
  • Hypermesh入门指南:从几何清理到网格质量检查与节点显示排查
  • 第302篇 策略梯度——从REINFORCE到现代方法
  • 【2】. OpenCode 快速上手
  • 尚硅谷JavaWeb源码拆解:从Servlet到Spring Boot的架构进阶
  • 基于YOLOv8的港口船舶缆绳系泊状态监测系统设计与部署
  • 告别默认手势限制:MediaPipe Model Maker 自定义手势识别模型训练实战
  • Disruptor环形队列为什么比BlockingQueue快?零拷贝+伪共享+缓存行填充
  • C++模板教程:变参模板、折叠表达式与SFINAE
  • langchain入门基础
  • RAG Refresher Notebook:Jupyter 中从零跑通 RAG 实战全链路