C++ 手写 AI 编程 Agent(2):环境搭建与 CMake 依赖管理
2026/8/27 10:32:29 网站建设 项目流程

📃作者主页:编程的一拳超人

⛺️ 欢迎关注:👍点赞 👂🏽留言 🌟收藏 💞 💞 💞

于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。


📌专栏系列:C++ AI Agent 实战 / 大模型工具调用 / 智能编程助手
如果本文对你有帮助,欢迎点赞、收藏、关注三连支持!
💬问题交流:评论区留言或私信,看到必回


  • C++ 手写 AI 编程 Agent(2):环境搭建与 CMake 依赖管理
    • 3. 环境搭建
      • 3.1 依赖安装
      • 3.2 CMakeLists.txt
      • 3.3 项目目录结构
    • 📚 系列目录

C++ 手写 AI 编程 Agent(2):环境搭建与 CMake 依赖管理

适用标准:C++17 |难度:入门 |阅读时间:约 10 分钟
本文是「C++ 手写 AI 编程 Agent」12篇系列的第2篇,搭建开发环境。

3. 环境搭建

3.1 依赖安装

本项目依赖三个核心库:

用途版本要求
nlohmann/jsonJSON 解析与构造≥ 3.11.0
cprHTTP 客户端(调用 LLM API)≥ 1.10.0
fmt字符串格式化与日志输出≥ 10.0.0

推荐使用 vcpkg 或 Conan 管理依赖。以 vcpkg 为例:

# 安装 vcpkg(如果尚未安装)gitclone https://github.com/microsoft/vcpkg.gitcdvcpkg&&./bootstrap-vcpkg.sh# Linux/macOS# .\bootstrap-vcpkg.bat # Windows# 安装依赖vcpkginstallnlohmann-json cprfmt

3.2 CMakeLists.txt

cmake_minimum_required(VERSION 3.16) project(cpp_ai_agent VERSION 1.0.0 LANGUAGES CXX) # 要求 C++17 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # 查找依赖 find_package(nlohmann_json CONFIG REQUIRED) find_package(cpr CONFIG REQUIRED) find_package(fmt CONFIG REQUIRED) # 添加可执行文件 add_executable(agent src/main.cpp src/agent.cpp src/tool_registry.cpp src/file_tools.cpp src/compile_tool.cpp src/shell_tool.cpp src/llm_client.cpp src/message_manager.cpp ) # 链接依赖 target_link_libraries(agent PRIVATE nlohmann_json::nlohmann_json cpr::cpr fmt::fmt ) # 包含目录 target_include_directories(agent PRIVATE ${CMAKE_SOURCE_DIR}/include ) # 编译选项 if(MSVC) target_compile_options(agent PRIVATE /W4 /utf-8) else() target_compile_options(agent PRIVATE -Wall -Wextra -pedantic) endif()

3.3 项目目录结构

cpp_ai_agent/ ├── CMakeLists.txt ├── system_prompt.txt # Agent 系统提示词 ├── include/ │ ├── agent.h # Agent 核心类 │ ├── tool_registry.h # 工具注册表 │ ├── file_tools.h # 文件操作工具 │ ├── compile_tool.h # 编译工具 │ ├── shell_tool.h # Shell 执行工具 │ ├── llm_client.h # LLM API 客户端 │ ├── message_manager.h # 消息管理器 │ └── types.h # 公共类型定义 ├── src/ │ ├── main.cpp # 入口 + REPL │ ├── agent.cpp # Agent 核心循环实现 │ ├── tool_registry.cpp # 工具注册表实现 │ ├── file_tools.cpp # 文件工具实现 │ ├── compile_tool.cpp # 编译工具实现 │ ├── shell_tool.cpp # Shell 工具实现 │ ├── llm_client.cpp # LLM 客户端实现 │ └── message_manager.cpp # 消息管理实现 └── workspace/ # Agent 的工作目录(运行时创建)

📚 系列目录

  • 第1篇:AI Agent概念入门与ReAct架构设计
  • 第2篇:环境搭建与CMake依赖管理(当前阅读)
  • 第3篇:工具注册表与文件操作工具集
  • 第4篇:编译诊断工具与Shell执行引擎
  • 第5篇:工具超时缓存与链式组合模式
  • 第6篇:Agent核心循环消息管理与LLM调用
  • 第7篇:Token窗口管理与错误恢复策略
  • 第8篇:记忆系统规划引擎与多Agent协作
  • 第9篇:Prompt工程从System Prompt到AB测试
  • 第10篇:主程序整合与端到端实战演示
  • 第11篇:Reflexion与Tree-of-Thought等高级模式
  • 第12篇:性能优化安全防护与FAQ总结

⬅️上一篇:第1篇:AI Agent概念入门与ReAct架构设计

➡️下一篇:第3篇:工具注册表与文件操作工具集


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询