Trae Builder:C++服务入口为何还需手写main函数

资讯 AI 应用前沿 全文 5773 字 · 约 15 分钟读完 配图 1 张 分类TRAE智能体AI 编程

本文记录在已有ChatServer业务类基础上,利用Trae IDE的Builder智能体自动生成main函数入口的实操过程。涵盖构造函数修正、Auto Mode与文件引用技巧、Agent与大模型的区别,以及多模型配置加载和HTTP服务启动的关键步骤,适合需要快速落地AI对话服务的C++开发者参考。

所属频道 智能体与 AgentAI 编程与开发

为什么还要手写 main 函数

在 AI 对话服务项目里,业务类往往承担了核心逻辑。以 ChatServer 为例,多个大模型的 API 密钥、超参数,以及本地 Ollama 模型的连接信息,都由它来管理。业务代码写完了,项目却起不来,原因常常很朴素:main 函数还没写。

main 函数看着不起眼,干的却是“glue code”(胶水代码)的活:加载配置、实例化服务对象、启动 HTTP 服务器。手写的话,错误处理容易漏,配置加载顺序也容易搞乱;交给 AI 吧,又怕它摸不清项目上下文。这种时候,Trae IDE 的 Builder 智能体就派上用场了。

ChatServer 构造函数的修正与梳理

在让 AI 生成 main 函数之前,得先确认现有的 ChatServer 构造函数是干净可用的。原始代码里有几处典型的笔误和语法问题,比如nake_shared 应为 make_shared,有些头文件拼错了,数组初始化的语法也不规范。

修正后的构造函数主要做三件事:

  1. 实例化各模型配置:DeepSeek、GPT-4o-mini、Gemini-2.0-flash 和 Ollama 本地模型,各自创建一个配置对象。模型名称、API Key、temperature 和 maxTokens 等参数都放在对象里。
  2. 组装配置集合把上面四个配置对象放进std::vector<std::shared_ptr<ai_chat_sdk::Config>> 容器中。
  3. 批量初始化 SDK:调用 _chatSK->initModels(modelConfigs)所有模型一次性初始化。一旦失败,就用日志宏ERR把错误信息打出来。

这段代码的价值在于,它把“配置”和“初始化”拆开了。main 函数只管拿到ServerConfig,再传给 ChatServer,每个模型的细节不用重复处理。

namespace ai_chat_server
{
    ChatServer::ChatServer (const ServerConfig& config)
    {
        // deepseek模型配置
        auto deepseekConfig= std::make_shared<ai_chat_sdk::APIConfig>();
        deepseekConfig->_modelName="deepseek-chat";
        deepseekConfig->_apikey= config.deepseekAPIKey;
        deepseekConfig->_temperature= config.temperature;
        deepseekConfig->_maxTokens=config.maxTokens;
        // gpt‑4o‑mini模型配置
        auto chatGPTConfig= std::make_shared<ai_chat_sdk::APIConfig>();
        chatGPTConfig->_modelName="gpt-4o-mini";
        chatGPTConfig->_apikey= config.chatGPTAPIKey;
        chatGPTConfig->_temperature= config.temperature;
        chatGPTConfig->_maxTokens=config.maxTokens;
        // gemini‑2.0‑flash模型配置
        auto geminiConfig = std::make_shared<ai_chat_sdk::APIConfig>();
        geminiConfig->_modelName="gemini-2.0-flash";
        geminiConfig->_apikey= config.geminiAPIKey;
        geminiConfig->_temperature=config.temperature;
        geminiConfig->_maxTokens=config.maxTokens;
        // Ollama本地deepseek‑r1:1.5b模型配置
        auto ollamaConfig= std::make_shared<ai_chat_sdk::OllamaConfig>();
        ollamaConfig->_modelName=config.ollamaModelName;
        ollamaConfig->_modelDesc= config.ollamaModelDesc;
        ollamaConfig->_endpoint= config.ollamaEndpoint;
        ollamaConfig->_temperature=config.temperature;
        ollamaConfig->_maxTokens=config.maxTokens;
        // 组装全部模型配置集合
        std::vector<std::shared_ptr<ai_chat_sdk::Config>> modelConfigs={
            deepseekConfig,
            chatGPTConfig,
            geminiConfig,
            ollamaConfig
        };
        // SDK初始化全部模型,初始化失败打印错误日志
        if(!_chatSK->initModels(modelConfigs))
        {
            ERR("ChatSK init Failed!!!");
        }
    }
}

Trae IDE:不只是编辑器,更是编程伙伴

Trae IDE 是在 VSCode 内核上改的,真正的差异在于 AI 能力集成得深。代码补全、智能问答这些常见的都有,此外还提供 Agent 自动编程功能,能读懂项目结构,也能执行多步任务。

远程开发支持

C++ 项目里,远程开发很常见。Trae 支持 Remote SSH,输入ssh 用户名@IP地址 -A就能连上远程 Linux 主机。想要完整的 C++ 开发体验,建议在远程主机上装两个关键插件:

  • clangd:语法高亮、代码补全、静态检查、符号跳转和悬停文档查看,都靠它。
  • CMake Tools:CMake 项目的构建、编译和调试由它支持。

AI 对话面板的核心控件

Trae 侧边栏里,AI 对话面板是交互的核心。有两个功能需要特别留意:

  1. Auto Mode 即自动模型模式。打开它,Trae 会看任务复杂度和模型负载,自己挑最合适的模型,界面上那个模型下拉列表也就不再出现,操作更省事。关掉之后,用户可手动从内置模型里选,比如 Doubao-Seed-1.6、Kimi-K2-0905、Qwen-3-Coder、GLM-4.6 等。
  2. 快捷符号:
    • @另一个功能是指定智能体,内置的 Chat、Builder 都能选,自定义智能体同样可以。
    • #还有引用外部文件,碰上长提示词,或者需要 AI 去读项目源码,这个功能很好用。比如输入#ChatServer.h #ChatServer.cpp,AI 就会把这两个文件的内容读进来,当作上下文使用。

智能体(Agent)与大语言模型的区别

“大语言模型”和“智能体”常被混为一谈。把两者的区别弄清楚,用 Trae 的时候会顺手不少。

大语言模型:知识渊博的博士生

DeepSeek-Chat、GPT-4o-mini、Gemini-2.0-flash 这类大语言模型,说到底就是文本生成器。知识问答、文本理解是它们的强项,短板也很清楚:输出只限文本,调用外部工具或 API 这件事它们做不了。

比如让它订机票,它顶多回你“第一步打开 APP,第二步搜索航班”,下单这步它干不了。原因很简单,它没有“手”和“脚”,真实世界里的动作执行不了。

智能体 Agent:有手有脚的实干家

智能体拿大语言模型当“大脑”,接到复杂任务后自己拆成若干子步骤,再调用文件读写、命令执行、网络请求这些工具,把真实业务跑完。

它的核心能力有这么几项:

  • 任务拆解:把“生成一个 HTTP 服务入口”分成“读取配置”、“实例化对象”、“启动服务器”等子任务。
  • 工具调用:文件直接编辑,编译命令直接执行。
  • 上下文维护:多轮交互里状态不丢,每一步都踩在前一步的结果上。
  • 迭代执行:工具返回什么(比如编译报错),后续策略就跟着调。

Trae 的内置智能体

Trae 内置了三种智能体,各自适用的场景不一样:

  • Chat:轻量级对话智能体,代码库问答、简单代码片段生成这类活适合它,复杂的多步骤项目构建它不做。
  • Builder:为从零到一的项目开发而设。代码解析、文件编辑、命令行执行、编译构建等多套工具它都会自动调用,靠多轮交互把项目做出来。本文生成 main 函数用的就是 Builder。
  • Builder with MCP:在 Builder 之上再自动加载配好的 MCP Server,外部工具能力因此更多。

实战:用 Builder 生成 main 函数

说回最开始那个需求:给 ChatServer 生成 main 函数。流程走下来很直接:

  1. 打开项目:在 Trae IDE 里打开放着 ChatServer.h 和 ChatServer.cpp 的项目目录。
  2. 选择智能体在 AI 侧边栏里点选智能体就行。想自己挑模型,可以把 Auto Mode 关掉手动选;懒得选就保持默认,交给系统自动分配。Builder
  3. 引用上下文接着在输入框里用把关键文件引进来。比如可以这样写:#
    #ChatServer.h #ChatServer.cpp #ServerConfig.h
    请为这个项目生成一个 main 函数。要求:
    1. 从配置文件或环境变量加载 ServerConfig。
    2. 实例化 ChatServer 对象。
    3. 启动 HTTP 服务,监听指定端口。
    4. 添加基本的信号处理,确保优雅退出。
  4. 执行与整合Builder 拿到需求后会先分析代码结构,再生成符合要求的 main.cpp。生成出来的文件里,启动服务器、解析 JSON 配置这些都会正确处理。文件生成完,把它加进 CMakeLists.txt,编译运行就能跑起来。httplib

生成的 main 函数大致是这个结构:

#include "ChatServer.h"
#include <ai_chat_sdk/util/myLog.h>
#include <csignal>
#include <iostream>
void signalHandler(int signum) {
    INFO("Interrupt signal (" << signum << ") received. Shutting down...");
    exit(signum);
}
int main() {
    // 注册信号处理
    signal(SIGINT, signalHandler);
    signal(SIGTERM, signalHandler);
    try {
        // 加载配置(此处简化,实际应从文件或环境变量读取)
        ServerConfig config;
        config.deepseekAPIKey = getenv("DEEPSEEK_API_KEY");
        config.chatGPTAPIKey = getenv("CHATGPT_API_KEY");
        config.geminiAPIKey = getenv("GEMINI_API_KEY");
        config.ollamaEndpoint = getenv("OLLAMA_ENDPOINT");
        config.ollamaModelName = "deepseek-r1:1.5b";
        config.temperature = 0.7;
        config.maxTokens = 2048;
        // 实例化 ChatServer
        ai_chat_server::ChatServer server(config);
        // 启动 HTTP 服务
        INFO("Starting HTTP server on port 8080...");
        // 假设 ChatServer 内部有 start 方法绑定 httplib::Server
        // 此处需根据实际 ChatServer 接口调整
        server.start(8080);
    } catch (const std::exception& e) {
        ERR("Fatal error: " << e.what());
        return 1;
    }
    return 0;
}

结语

借助 Trae 的 Builder 智能体,手写样板代码的时间省下来了,因疏忽造成的配置遗漏或语法错误也一并避开。更关键的是,人和代码的互动方式变了:不再是一行行敲键盘,而是把意图说清楚、验证结果、再迭代优化。

对 C++ 开发者来说,AI 辅助编程不是要取代传统技能,而是把人从繁琐的 boilerplate 里解放出来,把精力更多放在架构设计和业务逻辑上。下次碰到一个缺入口的项目,不妨先让 Builder 帮你走出第一步。

本文由本站编辑组整理与排版,内容基于公开信息核实后归纳发布,与文中提及的产品、公司无隶属关系。我们持续跟踪 AI 领域的模型、产品与行业动态,力求信息准确、表述清晰;文中涉及的名称、价格与功能细节可能随官方调整而变化,请以官方最新说明为准。如发现疏漏或表述有误,欢迎通过站内渠道反馈指正。

相关推荐 按相关度与热度排序

全部资讯 →
  1. OpenAI发布GPT-6.1 Terra:API价格降50%,Agent能力直追GPT-6 Astra

    OpenAI 又卷起了大模型的性价比。 就在刚刚,OpenAI 正式发布新一代模型 GPT-6.1 Terra,主打更快的响应速度、更强的视觉理解和电脑操作能力,以及更低的使用成本。 图|博客🔗 https://openai.com/index/introducing-gpt-6-1-terra/ 相比上一代 GPT-

    来源 AI 行业观察
  2. GPT-6.1 Terra发布:API价格降50%,能力逼近GPT-6 Astra

    OpenAI 又卷起了大模型的性价比。 就在刚刚,OpenAI 正式发布新一代模型 GPT-6.1 Terra,主打更快的响应速度、更强的视觉理解和电脑操作能力,以及更低的使用成本。 图|博客🔗 https://openai.com/index/introducing-gpt-6-1-terra/ 相比上一代 GPT-

    来源 AI 开发者社区
  3. AI 智能体疯狂入侵人类系统:十几起漏洞依次排开,AI真正攻破了哪一层?

    最近不到一个月,十几起安全事件相继被曝出。这些事件分属不同的攻击面,证书机构的私钥、托管平台的环境变量、包管理器的发版通道,还有编程语言运行时本身。涉事的公司和技术栈互不相干,也没有任何一份通报把它们归到同一个攻击者名下。密度之外,还有一个变化:从漏洞被找到,到它被大规模利用,中间只剩几个小时。10 ...

    来源 腾讯网
  4. 编程智能体怎么挑工具:20年品牌积累可能白费

    AI 的影响推动了关注点从搜索引擎优化(SEO)转向答案引擎优化(AEO),即优化内容,使其能够作为 Agent 生成的答案呈现。再进一步,还有生成式引擎优化(GEO),品牌会尝试影响 LLM。 软件工具本身是否也即将重新洗牌,让 Claude Code、Codex 和 Cursor 这样的代码助手,更倾向于选择某个特

    来源 AI 行业观察
  5. 豆包收拢四条Agent线:字节先给AI流量定价,再给能力归队

    飞书、TRAE、扣子相继并入豆包,个人助理"小豆"内测,市场普遍把这轮动作读成"字节在抢Agent的下一代入口"。但按时间线重排:酒旅12%的价签早于Muse爆火,组织收编早于产品发布。本文的判断是:这不是入口战争的开场,而是注意力经济收口的延续——Agent不是新入口,是平台收银台的新工装。

    来源 AI 行业观察
  6. 阶跃 Step 5 Preview 接入腾讯 WorkBuddy,免费开放两周

    腾讯旗下全场景 AI 办公工作台 WorkBuddy 宣布接入阶跃最新旗舰模型 Step5Preview,即日起面向用户独家限时免费开放两周。依托模型的推理与智能体(Agent)能力,WorkBuddy 可支持深度研究、信息检索、数据分析、文档及 PPT 生成等办公任务,并能够持续执行多步骤复杂任务。 Step5Pre

    来源 AI 开发者社区
  7. 谷歌云发布 Gemini Agent,定位“通用工作智能体”

    谷歌云在 Gemini at Work 2026 发布会上推出面向企业客户的 Gemini Agent,支持 Workspace 和第三方服务,能回答问题、处理知识型工作、创建内容及编程,还能担任 PM、财务分析师等团队成员角色。##谷歌云##GeminiAgent##AI智能体#

    来源 IT之家
  8. AgentMarriage上线:AI Agent之间能否谈婚论嫁

    随着人工智能从对话助手向能够执行任务的 AI Agent 演进,围绕智能体的产品和技术服务不断增多。编程、搜索、办公等应用正在尝试提升 Agent 的执行能力,但当不同 Agent 进入同一个环境后,如何建立持续的身份、互动与关系,仍是一个处于早期探索阶段的问题。 近日,AI 社会实验项目 Agent Marriage

    来源 AI 行业观察
  9. Claude Code等代码助手:20年技术品牌会否被AEO重排?

    作者|Adrian Bridgwater译者|田橙策划|TinaAI 的影响推动了关注点从搜索引擎优化(SEO)转向答案引擎优化(AEO),即优化内容,使其能够作为 Agent 生成的答案呈现。再进一步,还有 生成式引擎优化(GEO),品牌会尝试影响 LLM。软件工具本身是否也即将重新洗牌,让 Claude Code、

    来源 腾讯网
  10. 蚂蚁灵光2.0实测:租房比价记账,个人助理能管多大事?

    智东西(公众号:zhidxcom)作者 | 毕伟豪 编辑|漠影近几月,Muse的出现,带火了Personal Agent,也让整个行业开始持续思考Personal Agent这一产品形态。但Muse的成功,显然不是引入形式就能复制的,依托长期记忆和云端虚拟机,让Agent能够进行持续的事务管理,这套打法思路非常清楚,但

    来源 腾讯网
  11. OpenAI智能体实验:断网也能靠CPU缓存隔墙传信

    两个AI分开执行任务,不能通过网络传话,也没有可以共同写入的文件,结果还是把消息送到了对方手里。 OpenAI新发布的一份安全报告,披露了这场“隔墙传信”实验。 有网友看完OpenAI的报告感慨:“我永远不会厌倦阅读这些Agent如何创造性地逃脱囚禁以及它们的隐写术技巧。” 这次报告披露的案例,来自OpenAI组织的一

    来源 AI 行业观察
  12. JetBrains Mellum2.1:强化学习变训练主体,编程智能体升级

    感谢IT之家网友 有鲫雪狐 的线索投递! JetBrains 昨日(10 月 8 日)发布博文,宣布上线 Mellum2.1 模型,重点增强智能体编程能力。该模型延续 Mellum2 的 12B 混合专家架构,拥有 2.5B 活跃参数,并继续采用 Apache 2.0 许可证发布。 Mellum2.1 主要升级预训练后

    来源 AI 开发者社区
  13. Kiro用规范驱动开发:AI生成的代码怎么进工程体系

    AI 编程工具的竞争,在过去一年里换了个赛道。 2025 年上半年,话题还集中在"能不能生成"——模型能不能写出可编译的代码,能不能一次跑通一个完整功能。到 2025 年下半年,Cursor、GitHub Copilot、Codex CLI、Gemini CLI 以及 Kiro CLI 先后把 Agent 推进终端之后

    来源 AI 行业观察
  14. JetBrains Mellum2.1:强化学习主干训练,吞吐量达竞品两倍

    知名开发工具厂商 JetBrains 正式发布全新的 Mellum2.1 编程 AI 模型,重点对智能体编程能力进行了深度增强。该模型继续采用 12B 混合专家架构及开源协议,旨在进一步降低企业与个人开发者的私有化部署门槛。 强化学习赋能智能体能力 在训练机制方面,Mellum2.1 将强化学习从原先的短期收尾环节扩展

    来源 AI 开发者社区
  15. 谷歌Gemini 4 Argon突袭开放:默认接入编程工具,已向代码库提交代码

    海外科技圈近期爆出重磅消息,谷歌下一代重磅人工智能模型 Gemini 4 Argon 已密集现身多个平台,并开始面向部分 Pro 用户开放。该模型已全面接入 Google Cloud 等生态,不仅在全新编程工具 Antigravity 中被设为默认模型,甚至已开始直接向真实代码库提交代码。 具象化智能体变革开发范式 与

    来源 AI 开发者社区
  16. 明略科技Octo:5000个Agent如何协同干活?

    一、Agent越来越多,为什么企业反而更忙了?过去一年,企业接入AI的方式发生了明显变化。除了通用大模型,越来越多团队开始使用编程Agent、办公Agent、数据分析工具,以及围绕具体业务开发的专用智能体。这些工具各有优势,却很容易形成新的信息孤岛。例如,市场团队用一个Agent完成行业研究,销售团队通过CRM管理客户

    来源 腾讯网
  17. Meta发布Muse Wonder系列:编程Agent超越Opus 5.5,定价同步上涨

    智东西(公众号:zhidxcom)作者 | 毕伟豪 编辑|李水青智东西10月13日报道,昨夜,Meta发布了首个前沿模型系列Muse Wonder,包括Muse Wonder和Muse Wonder Full两个型号,重点面向个人与专业智能体任务。Meta CEO马克·扎克伯格发文称,Meta超级智能实验室成立至今已一

    来源 腾讯网
  18. AI编码智能体怎么用?五种方法优化软件架构

    作者 | Pierre Pureur, Kurt Bittner, Todd Miller译者 | 明知山自动代码生成并不是一个新概念,但 AI 编码智能体的编码速度远超以往的任何工具。这种速度带来了巨大的好处,但也产生了独特的问题,人们很容易失去对输出代码质量的控制。这种失控在架构层面显得尤为突出。如果你只向 AI

    来源 腾讯网
向下滚动自动加载更多