本仓库是一个基于 llama.cpp 的本地 Windows 终端 Agent。程序加载本地 GGUF 模型,按照内置 system prompt 生成包裹在 <<< >>> 中的 Windows CMD 命令,并直接调用 system() 执行,能够处理中英文指令和多步命令链。
- 加载本地 GGUF(示例:Llama 3 8B Instruct)并以 C++17 运行。
- 自定义的 Agent 协议:模型输出
<<< 命令 >>>,自动解析后执行。 - 支持中文路径、写文件、
&&多步串联等常见终端操作。 - 通过
llama.cpp的 CUDA 支持启用 GPU 加速(GGML_CUDA=ON)。
main.cpp:核心逻辑,包含 prompt、推理与命令解析执行。CMakeLists.txt:构建脚本,默认启用 CUDA、关闭 CURL,链接llama.cpp。external/llama.cpp:上游子模块依赖。models/:存放本地 GGUF 模型(示例路径已写在代码中)。out/:CMake 生成目录(默认 VS/Ninja)。
- CMake ≥ 3.14,支持 C++17 的 MSVC/Clang。
- 推荐安装 Ninja;Windows 环境已写好
CMakeSettings.json(x64-Debug)。 - GPU 加速:需要合适的 CUDA 环境;如仅 CPU,可在
CMakeLists.txt中把GGML_CUDA设为OFF。 - 模型文件:将 GGUF 放到
models/,并在main.cpp中更新model_path绝对路径。
git submodule update --init --recursive
cmake -B out/build/x64-Debug -G "Ninja" -DCMAKE_BUILD_TYPE=Debug
cmake --build out/build/x64-Debug --target my_agent生成的可执行文件位于 out/build/x64-Debug/(或你的生成目录)下的 my_agent.exe。
- 确认
model_path指向有效的.gguf模型。 - 执行
my_agent.exe,终端提示后输入指令(例如:在D盘test文件夹下新建data.txt并写入123)。 - 程序会打印模型回复,并捕获
<<< ... >>>中的命令实际执行,返回退出码。 - 输入
exit/quit结束程序。
- 程序会无验证地执行模型输出的命令,请在受控/隔离环境使用,并谨慎选择模型与提示词。
- 如需禁用自动执行,可注释掉
system(cmd.c_str())部分,仅打印命令供手动确认。
- System prompt(指令格式、示例)位于
main.cpp,可按需修改。 - 上下文长度、GPU 层数等推理参数在
main.cpp中的ctx_params/model_params可调。 - 切换模型或量化格式时,更新
model_path和上下文长度以匹配资源。