QodeAssist:为msys2 ucrt64 Qt Creator 注入 AI 灵魂的开源插件

QodeAssist:为 Qt Creator 注入 AI 灵魂的开源插件

从源码编译到实际使用,一份写给 Qt/C++ 开发者的完整指南

目录

文章目录

  • [QodeAssist:为 Qt Creator 注入 AI 灵魂的开源插件](#QodeAssist:为 Qt Creator 注入 AI 灵魂的开源插件)
    • 目录
    • [1. 项目简介](#1. 项目简介)
    • [2. 核心功能详解](#2. 核心功能详解)
      • [2.1 智能代码补全(Code Completion)](#2.1 智能代码补全(Code Completion))
      • [2.2 聊天助手(Chat Assistant)](#2.2 聊天助手(Chat Assistant))
      • [2.3 快速重构(Quick Refactoring)](#2.3 快速重构(Quick Refactoring))
      • [2.4 Agent 工具调用(Tools & Function Calling)](#2.4 Agent 工具调用(Tools & Function Calling))
      • [2.5 Agent Skills](#2.5 Agent Skills)
      • [2.6 MCP 服务器与客户端](#2.6 MCP 服务器与客户端)
    • [3. 支持的 LLM 提供商](#3. 支持的 LLM 提供商)
    • [4. Qt Creator 版本兼容性](#4. Qt Creator 版本兼容性)
    • [5. 安装方式](#5. 安装方式)
    • [6. 在 MSYS2 UCRT64 下从源码编译](#6. 在 MSYS2 UCRT64 下从源码编译)
      • [6.1 为什么选择 MSYS2 UCRT64?](#6.1 为什么选择 MSYS2 UCRT64?)
      • [6.2 编译前准备](#6.2 编译前准备)
        • 前置条件
        • [确认 Qt Creator 版本](#确认 Qt Creator 版本)
        • [确认 Qt 安装路径](#确认 Qt 安装路径)
      • [6.3 安装 MSYS2 UCRT64 工具链](#6.3 安装 MSYS2 UCRT64 工具链)
      • [6.4 获取 QodeAssist 源码](#6.4 获取 QodeAssist 源码)
      • [6.5 理解编译依赖关系](#6.5 理解编译依赖关系)
      • [6.6 编译步骤](#6.6 编译步骤)
        • [步骤 1:创建构建目录并配置](#步骤 1:创建构建目录并配置)
        • [步骤 2:编译](#步骤 2:编译)
        • [步骤 3:验证编译结果](#步骤 3:验证编译结果)
    • [7. 配置 CSDN/taotoken.net API](#7. 配置 CSDN/taotoken.net API)
    • [8. 快捷键一览](#8. 快捷键一览)
    • [9. 技术架构与项目结构](#9. 技术架构与项目结构)
    • [10. 总结与展望](#10. 总结与展望)

1. 项目简介

QodeAssist 是一个为 Qt Creator 打造的开源 AI 编程助手插件,由开发者 Petr Mironychev(GitHub: Palm1r)创建并维护,采用 GPL v3 许可证。项目的核心理念是将大语言模型(LLM)的能力深度集成到 Qt Creator IDE 中,为 C++ 和 QML 开发者提供智能代码补全、多面板聊天、内联快速重构以及项目感知的工具调用等能力。

与 Qt 官方推出的商业版 Qt AI Assistant(仅限付费许可证用户)不同,QodeAssist 是完全开源免费的,支持本地模型和云端模型,为所有 Qt Creator 用户提供了零门槛的 AI 辅助编程体验。

QodeAssist 不仅仅是简单的 API 调用封装------它针对 Qt/C++ 开发工作流做了深度定制,提供了项目级上下文感知、MCP 协议支持、Agent Skills 等高级特性,更像是一个深度理解你项目的结对编程伙伴。


2. 核心功能详解

2.1 智能代码补全(Code Completion)

传统的代码补全基于静态分析,只能提供语法级别的补全。QodeAssist 的 AI 补全是动态的、语义级的------它分析光标前后的代码、甚至你当前打开的其他文件,来预测你接下来最可能想写什么。

两种触发模式:

模式 行为 适用场景
提示触发(Hint-based) 输入 3+ 字符后显示提示图标,按空格键(可自定义)才请求补全 付费 API(Claude、OpenAI),避免意外费用
自动触发(Automatic) 达到字符阈值后自动请求补全 本地模型(Ollama、llama.cpp),追求流畅体验

此外还支持多行补全(Multiline Completion),AI 可以一次性生成跨越多行的代码块,而不仅限于单行补全。

2.2 聊天助手(Chat Assistant)

QodeAssist 提供三种聊天面板形态,适配不同工作场景:

  • 侧边栏面板:适合长时间的、连续的架构讨论和算法调试
  • 底部面板:适合快速碎片化问答,不占用主要编码区域
  • 弹出窗口:适合需要全屏聚焦的复杂讨论

核心特性:

  • 聊天历史自动保存与恢复
  • Token 使用量监控
  • 文件上下文(File Context):附加文件或链接文件,让 AI 读取你的项目代码
  • 自动同步打开的编辑器文件(可选)
  • 扩展思维模式(Extended Thinking):启用更深层推理(Claude 等模型支持)
  • Agent Roles:可切换 AI 角色人格(开发者、代码审查者等自定义角色)
  • 聊天摘要(Chat Summarization):压缩长对话以节省上下文 Token

2.3 快速重构(Quick Refactoring)

选中一段代码,通过 AI 进行内联重构------这是 QodeAssist 最具实用价值的功能之一。支持:

  • 自定义指令库:可搜索、可自动补全的重构模板库
  • 创建、编辑和管理可复用的重构模板
  • 组合基础指令与具体细节
  • 快捷键一键触发

2.4 Agent 工具调用(Tools & Function Calling)

聊天和快速重构功能可以调用内置工具来检查和修改项目。每个工具可以单独启用/禁用:

工具名 功能
list_project_files 列出活动项目中的文件
find_file 按名称或部分路径查找文件
read_file 读取文件内容
search_project 在项目源码中 Grep / 符号搜索
create_new_file 创建新的空文件
edit_file 替换文件中的内容(old → new)
build_project 构建活动项目并返回编译器输出
get_issues_list 读取当前 linter / 编译器诊断信息
execute_terminal_command 运行 Shell 命令(需确认)
todo_tool 在对话中跟踪多步骤任务进度

2.5 Agent Skills

Agent Skills 是 QodeAssist 最新引入的特性,将专业化指令和工作流打包成可复用的文件夹,AI 按需加载。QodeAssist 实现了开放的 Agent Skills 格式,因此为 Claude Code、Cursor 等其他 Agent 编写的 Skills 可以直接使用。

一个 Skill 就是一个包含 SKILL.md 文件的文件夹:

复制代码
my-skill/
└── SKILL.md

Skills 的发现路径:

  • 项目 Skills :项目目录下的 .qodeassist/skills/ 和 .claude/skills/
  • 全局 Skills :如 ~/.claude/skills/

2.6 MCP 服务器与客户端

MCP 服务器 :QodeAssist 可以在 localhost 上运行 MCP(Model Context Protocol)服务器,将上述工具暴露给外部客户端------Claude Code CLI、VS Code、Cursor、Claude Desktop 等。支持 HTTP+SSE 传输,并提供 stdio bridge 用于仅支持 stdio 的客户端。

MCP 客户端中心:QodeAssist 还可以作为 MCP 客户端,连接外部 MCP 服务器,在聊天和快速重构中使用其工具(暂不支持需要认证的 MCP 服务器)。


3. 支持的 LLM 提供商

QodeAssist 支持极其广泛的 LLM 后端,这是它的一大优势:

本地提供商

提供商 说明
Ollama 原生 Ollama API,零成本本地运行
Ollama (OpenAI-compatible) Ollama 的 /v1 端点,用于工具调用模型
llama.cpp 本地 llama-server
LM Studio OpenAI 兼容 Chat API
LM Studio (Responses API) 需要 Responses 端点的新模型

云端提供商

提供商 说明
Anthropic Claude Sonnet 4.5、Haiku 4.5、Opus 4.5
OpenAI Chat Completions 和 Responses API
Mistral AI / Codestral Codestral 2501
Google AI Gemini 2.5 Flash
OpenAI-compatible OpenRouter 和任何自定义端点

推荐模型

代码补全与重构最佳:

  • Claude 4.5 Haiku / Sonnet(Anthropic)
  • GPT-5.1-codex / codex-mini(OpenAI Responses API)
  • Codestral(Mistral)

聊天助手最佳:

  • Claude 4.5 Sonnet --- 出色的推理和自然对话
  • GPT-5.1-codex --- 最新模型,高级能力
  • Gemini 2.5 / 3.0 --- Google 最新模型

本地模型:

  • Qwen3-coder --- 最佳本地模型

4. Qt Creator 版本兼容性

QodeAssist 支持的 Qt Creator 版本范围如下:

Qt Creator 版本 支持状态
14.0.2 - 17.0.0 ✅ 完全支持
18.0.0 ✅ 支持
19.0.2 ✅ 最新支持

⚠️ 重要:由于 Qt Creator 插件的二进制兼容性规则,QodeAssist 插件版本必须与你安装的 Qt Creator 版本严格匹配。请在下载或编译时确认版本号一致。


5. 安装方式

方式一:QodeAssistUpdater(推荐)

QodeAssistUpdater 是一个命令行工具,可以自动检测 Qt Creator 版本、下载安装匹配的插件,并验证校验和。

bash 复制代码
# 检查当前状态和可用更新
./qodeassist-updater --status

# 安装最新版本
./qodeassist-updater --install

下载地址:https://github.com/Palm1r/QodeAssistUpdater/releases

方式二:手动安装

  1. 从 QodeAssist Releases 下载与你 Qt Creator 版本匹配的插件压缩包
  2. 如已安装旧版本,先删除旧版插件目录:
    • Windows:C:\Users\<用户名>\AppData\Local\QtProject\qtcreator\plugins\<版本号>\petrmironychev.qodeassist
  3. 启动 Qt Creator
  4. 进入 Help → About Plugins... (Windows/Linux)或 Qt Creator → About Plugins...(macOS)
  5. 点击 Install Plugin...,选择下载的插件压缩包

方式三:从源码编译(本文重点)

详见下一节。


6. 在 MSYS2 UCRT64 下从源码编译

这是本文的核心部分。由于 QodeAssist 的预编译 Windows 二进制文件是基于 MSVC 构建的,如果你使用 MSYS2 UCRT64 环境进行 Qt/C++ 开发,需要自行编译插件 DLL。

6.1 为什么选择 MSYS2 UCRT64?

MSYS2 是 Windows 上的软件分发和构建平台,提供了类 Unix 环境、命令行界面和软件仓库。UCRT64 是 MSYS2 的一个子系统,使用 Universal C Runtime (UCRT)------这是 Windows 10+ 的现代 C 运行时,比传统的 MSVCRT 更符合现代 C/C++ 标准,与 MSVC 编译的程序兼容性更好。

环境 架构 C Runtime 推荐场景
UCRT64 64-bit UCRT(现代) ✅ 新项目首选,Windows 10+
MINGW64 64-bit MSVCRT(旧版) 兼容旧版 Windows
MINGW32 32-bit MSVCRT 仅需 32-bit 时使用

6.2 编译前准备

前置条件
  • Windows 10 或更高版本
  • MSYS2 已安装(默认路径 C:\msys64)
  • Qt Creator 已安装(需知道安装路径和版本号)
  • Qt 6 已安装(需知道安装路径)
确认 Qt Creator 版本

打开 Qt Creator,进入 Help → About Qt Creator,记录完整版本号(如 17.0.0)。

确认 Qt 安装路径

如果你通过 Qt Online Installer 安装了 Qt,路径通常为:

复制代码
C:\Qt\6.x.x\mingw_64

6.3 安装 MSYS2 UCRT64 工具链

如果你还没有安装 MSYS2,请从 https://www.msys2.org/ 下载安装程序。

打开 MSYS2 UCRT64 终端(不是 MSYS2 MSYS 终端),执行以下命令更新系统并安装编译所需的工具:

bash 复制代码
# 更新系统
pacman -Syuu

# 安装编译工具链和依赖
pacman -S --noconfirm \
  mingw-w64-ucrt-x86_64-gcc \
  mingw-w64-ucrt-x86_64-cmake \
  mingw-w64-ucrt-x86_64-ninja \
  mingw-w64-ucrt-x86_64-pkgconf \
  git

注意,这里假设之前Qt6全部已经正确安装了,尤其是 mingw-w64-ucrt-x86_64-qt-creator-devel。

验证安装
bash 复制代码
gcc --version
cmake --version
ninja --version

确保 GCC 版本支持 C++20(GCC 10+ 即可)。

6.4 获取 QodeAssist 源码

bash 复制代码
cd ~
git clone https://github.com/Palm1r/QodeAssist.git
cd QodeAssist

如果你需要特定版本,可以切换到对应的 Tag:

bash 复制代码
# 查看可用版本
git tag

# 切换到特定版本,例如 v0.9.14
git checkout v0.9.14

6.5 理解编译依赖关系

根据 QodeAssist 的 CMakeLists.txt,编译需要以下依赖:

cmake 复制代码
find_package(QtCreator REQUIRED COMPONENTS Core)
find_package(Qt6 COMPONENTS Core Gui Quick Widgets Network Svg Test LinguistTools REQUIRED)

这意味着 CMake 需要找到:

  1. Qt Creator 开发文件 ------包含 QtCreator 的 CMake 配置文件(QtCreatorConfig.cmake),用于链接 QtCreator::Core、QtCreator::ExtensionSystem、QtCreator::Utils、QtCreator::CPlusPlus 等目标
  2. Qt 6 开发文件------包含 Qt6 的 CMake 配置文件

关键路径设置:

  • CMAKE_PREFIX_PATH:需要包含 Qt6 安装路径和 Qt Creator 安装路径
  • Qt Creator 的开发文件位于其安装目录下的 lib/cmake/QtCreator 等子目录中

6.6 编译步骤

步骤 1:创建构建目录并配置
bash 复制代码
cd ~/QodeAssist
mkdir -p build
cd build

cmake ..
步骤 2:编译
bash 复制代码
cmake --build . 
步骤 3:验证编译结果

编译成功后,在 build 目录下会生成插件 DLL 文件:

bash 复制代码
find . -name "QodeAssist.dll" -o -name "libQodeAssist.dll"

典型的输出路径为:

复制代码
./lib/qtcreator/plugins/QodeAssist.dll

拷贝到 C:\msys64\ucrt64对应的位置即可。

7. 配置 CSDN/taotoken.net API

QodeAssist 支持任何 OpenAI 兼容的 API 端点,这意味着你可以方便地接入 CSDN 提供的 taotoken.net API 服务。

7.1 快速配置步骤

  1. 打开 Qt Creator,进入 Tools → Options → QodeAssist
  2. 在 General 页面的 Provider 下拉框中选择 OpenAI-compatible
  3. 配置 Provider Settings:
    • URL :填入 taotoken.net 提供的 API 端点地址(如 https://api.taotoken.net/v1)
    • API Key:填入你的 taotoken.net API 密钥
    • Model:选择你想使用的模型名称
  4. 在 Code Completion 页面配置代码补全相关参数
  5. 在 Chat 页面配置聊天相关参数

7.2 详细配置参考

代码补全配置
配置项 推荐值 说明
Enable Auto Complete ✅ 启用自动补全
Enable Multiline Completion ✅ 启用多行补全
Enable stream option ✅ 启用流式响应
Enable smart process text ✅ 智能处理指令模型输出
AI suggestion triggers after typing 3 触发 AI 建议的字符数
Trigger mode Hint-based 提示触发(付费 API 推荐)
聊天助手配置
配置项 推荐值 说明
Chat Model 根据可用模型选择 对话使用的模型
Enable tools ✅ 启用工具调用
File Context 按需启用 文件上下文增强

7.3 验证连接

配置完成后,可以通过以下方式验证 API 连接是否正常:

  1. 打开聊天面板(快捷键 Ctrl+Alt+K)
  2. 发送一条简单消息,如 "Hello"
  3. 如果收到 AI 回复,说明 API 配置成功

7.4 关于 taotoken.net

taotoken.net 是 CSDN 推出的 AI 模型 API 服务平台,感觉还行,

  1. OpenAI 完全兼容:遵循 OpenAI API 规范,无需修改代码即可将现有应用无缝迁移。
  2. 模型支持:提供包括 GPT-4o、GPT-4o-mini、Claude 3.5 Sonnet、DeepSeek-V3、Qwen2.5 等在内的多种前沿大语言模型。

在 QodeAssist 中使用:

由于 taotoken.net 提供标准的 OpenAI 兼容接口,在 QodeAssist 中配置非常简单:

  1. 在 Provider 中选择 OpenAI-compatible。
  2. 在 URL 中填入 taotoken.net 提供的 API 端点(例如 https://api.taotoken.net/v1)。
  3. 在 API Key 中填入你在 taotoken.net 平台获取的密钥。
  4. 在 Model 下拉列表中选择你已订阅或可用的模型(如 gpt-4o、claude-3-5-sonnet 等)。

这种配置方式让你可以轻松地将 QodeAssist 的强大功能与国内稳定、合规的 AI 服务相结合,获得流畅的本地开发体验。

8. 快捷键一览

快捷键 功能
Ctrl+Alt+Q 手动请求代码补全
Ctrl+Alt+K 打开/关闭聊天面板
Ctrl+Alt+R 快速重构
Space(Hint 模式) 接受 AI 补全建议
Tab 确认补全建议
Esc 取消补全建议

快捷键可在 Qt Creator 的键盘快捷键设置中自定义。


9. 技术架构与项目结构

代码组织

QodeAssist 的源码结构清晰,模块化设计:

复制代码
QodeAssist/
├── CMakeLists.txt              # 主构建文件
├── qodeassist.cpp              # 插件主入口
├── QodeAssistConstants.hpp     # 常量定义
├── providers/                  # LLM 提供商实现
│   ├── OllamaProvider.cpp
│   ├── ClaudeProvider.cpp
│   ├── OpenAIProvider.cpp
│   ├── OpenAICompatProvider.cpp  # OpenAI 兼容端点
│   ├── GoogleAIProvider.cpp
│   └── ...
├── templates/                  # Prompt 模板
│   ├── Claude.hpp
│   ├── OpenAI.hpp
│   ├── Qwen3CoderFIM.hpp
│   └── ...
├── chat/                       # 聊天功能
├── pluginllmcore/              # LLM 核心库
├── settings/                   # 设置界面
├── tools/                      # Agent 工具实现
├── mcp/                        # MCP 服务器/客户端
├── context/                    # 上下文管理
├── ChatView/                   # 聊天视图 QML
├── UIControls/                 # UI 控件
├── TaskFlow/                   # 任务流
├── skills/                     # Agent Skills
├── logger/                     # 日志模块
├── widgets/                    # 编辑器小部件
└── resources/                  # 资源文件(图标、翻译等)

关键依赖

从 CMakeLists.txt 可以看到,插件依赖以下 Qt Creator 模块:

  • QtCreator::Core --- 核心功能
  • QtCreator::LanguageClient --- 语言客户端
  • QtCreator::TextEditor --- 文本编辑器
  • QtCreator::ProjectExplorer --- 项目浏览器
  • QtCreator::CppEditor --- C++ 编辑器
  • QtCreator::ExtensionSystem --- 插件扩展系统
  • QtCreator::Utils --- 工具库
  • QtCreator::CPlusPlus --- C++ 解析器

以及 Qt 模块:Core、Gui、Quick、Widgets、Network、Svg

子项目

  • LLMQore:从 QodeAssist 中提取的独立 LLM 核心库,可在其他 Qt/C++ 项目中复用
  • QodeAssistUpdater:CLI 安装/更新工具

上下文层级(Context Layers)

QodeAssist 使用灵活的 Prompt 组合系统,针对不同功能构建不同层次的上下文:

代码补全(FIM 模型):

  1. System Prompt(来自代码补全设置)
  2. Project Rules(.qodeassist/rules/completion/*.md)
  3. FIM Prefix / Suffix(光标前后的代码)
  4. 附加文件上下文

聊天助手:

  1. System Prompt(含 Agent Role)
  2. Project Rules(.qodeassist/rules/chat/*.md)
  3. 对话历史
  4. 文件上下文
  5. 工具调用结果

10. 总结与展望

QodeAssist 是目前 Qt Creator 生态中最成熟、功能最丰富的开源 AI 编程助手插件。它的优势在于:

  1. 深度集成:不是简单的聊天窗口,而是真正与 Qt Creator 的编辑器、项目管理器、构建系统深度集成
  2. 灵活后端:支持本地和云端十余种 LLM 提供商,通过 OpenAI-compatible 端点可以接入任何兼容 API
  3. 项目感知:工具调用让 AI 能真实读取和修改你的项目文件,而不是仅凭上下文猜测
  4. MCP 生态:既能作为 MCP 服务器暴露能力,又能作为客户端消费外部工具
  5. 持续演进:项目活跃度极高,频繁发布新版本(当前 0.9.14,652+ commits)

对于在 MSYS2 UCRT64 环境下工作的 Qt/C++ 开发者来说,虽然从源码编译需要一些额外的工作,但带来的回报是巨大的------你可以在自己最熟悉的开发环境中享受 AI 辅助编程的便利,无需切换到 VS Code 或其他 IDE。

如果你是 Qt Creator 的用户,强烈推荐试试 QodeAssist。接入 CSDN/taotoken.net 这样的 OpenAI 兼容 API,几分钟就能上手,体验 AI 辅助编程带来的效率提升。


参考链接:

相关推荐
西飘客16 分钟前
vs 怎么根据dll 生成lib文件
c++·qt
AliCloudROS35 分钟前
计算巢 X DeepSeek Harness — 云端智能体工作台
人工智能·阿里云
深蓝AI39 分钟前
GitHub的Push一年涨4.9倍:AI Agent为什么逼它重做Git存储?
人工智能·github
stereohomology1 小时前
大模型的观点谨:StoryTold 「Crafting Apps」四件套 · 深度总览
人工智能·llm
bkspiderx1 小时前
Qt 插件机制:动态扩展应用功能的核心框架
开发语言·qt·元数据·qt 插件·qpluginloader
程序员老陆1 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
运维行者_1 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
沐晓时光1 小时前
C语言入门,深入理解指针(3)
c语言·开发语言
Su米苏2 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
美狐美颜sdk2 小时前
直播APP源码可以直接接入视频美颜sdk吗?技术方案详解
android·人工智能·音视频·美颜sdk·直播美颜sdk