ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

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

2026/8/27 10:32:37 拓冰建站 浏览量
C++ 手写 AI 编程 Agent(2):环境搭建与 CMake 依赖管理 作者主页编程的一拳超人⛺️ 欢迎关注点赞 留言 收藏 于高山之巅方见大河奔涌于群峰之上更觉长风浩荡。专栏系列C AI Agent 实战 / 大模型工具调用 / 智能编程助手⭐如果本文对你有帮助欢迎点赞、收藏、关注三连支持问题交流评论区留言或私信看到必回C 手写 AI 编程 Agent2环境搭建与 CMake 依赖管理3. 环境搭建3.1 依赖安装3.2 CMakeLists.txt3.3 项目目录结构 系列目录C 手写 AI 编程 Agent2环境搭建与 CMake 依赖管理适用标准C17 |难度入门 |阅读时间约 10 分钟本文是「C 手写 AI 编程 Agent」12篇系列的第2篇搭建开发环境。3. 环境搭建3.1 依赖安装本项目依赖三个核心库库用途版本要求nlohmann/jsonJSON 解析与构造≥ 3.11.0cprHTTP 客户端调用 LLM API≥ 1.10.0fmt字符串格式化与日志输出≥ 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 cprfmt3.2 CMakeLists.txtcmake_minimum_required(VERSION 3.16) project(cpp_ai_agent VERSION 1.0.0 LANGUAGES CXX) # 要求 C17 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篇工具注册表与文件操作工具集