首页 文章 精选 留言 我的

精选列表

搜索[智能体],共10003篇文章
优秀的个人博客,低调大师

PropellerAds升级NIKO AI 智能体

近日,PropellerAds宣布升级旗下NIKO AI Agent。新版NIKO AI保留了原有功能,并进一步拓展广告活动创建、编辑、定向、预算、排期、素材和数据管理能力。通过与NIKO AI对话,广告主即可完成多项投放操作,无需在广告管理后台逐项设置。 NIKO AI 新功能:现在能做什么? NIKO AI 现在可以创建、编辑和查看所有广告形式的广告活动,并支持完整的定向设置、投放排期、预算控制和实时建议。所有操作都可以在一次对话中完成,无需进入广告管理后台。 ●创建所有广告形式的广告活动。NIKO AI 现在支持创建更多广告形式,包括推送、弹窗、Telegram 广告、互动式广告和付费社交流量。你只需描述自己的需求,NIKO AI 就会完成相应设置。 ●直接在聊天中编辑广告活动。需要调整出价、更换目标地区,或修改每日预算上限?NIKO AI 只会更改你指定的字段,其他设置保持不变。此前,NIKO AI 已经具备基础编辑功能,而现在操作速度更快,调整也更加精准。 ●随时查看任意广告活动。你现在可以要求 NIKO AI 调出某个特定广告活动,或显示完整的广告活动列表,所有信息都会集中展示在同一个窗口中。 ●随时获取费率建议。不确定下一步应该设置多少出价?在进行调整前,可以直接询问 NIKO AI。它能够根据任意目标地区、广告形式和付费模式提供建议费率。此前,NIKO AI 只能在创建广告活动时显示出价建议。 ●获取测试预算建议。对于新手来说,最常见的问题可能就是:一开始应该投入多少预算?事实上,即使是进入新市场的资深营销人员,也经常面临同样的问题。现在,NIKO AI 可以根据所选择的广告形式和目标市场,建议一个切实可行的初始测试预算。 ●设置预算上限。你可以直接在聊天中设置广告活动的每日预算和总预算。 ●在一次对话中完成完整定向设置。通过 NIKO AI,你可以设置目标国家或地区、省份、城市、操作系统、设备、浏览器、语言、互联网服务提供商、网络连接类型,以及 VPN 或代理过滤。无需使用下拉菜单,只需在聊天中说明要求即可。此前,NIKO AI 只能设置目标地区和部分基础参数,而现在其定向设置能力已得到全面提升。 ●设置分时投放。你可以按照星期和具体小时安排广告活动的投放时间。只需描述投放计划,NIKO AI 就会自动完成设置。 ●每次上线后获取管理后台链接。广告活动创建完成后,NIKO AI 会发送该广告活动在管理后台中的直接访问链接。 ●咨询广告形式和付费模式。不确定 CPC 或 CPM 哪种模式更适合你的广告活动?或者不知道哪种广告形式更适合你的业务领域?NIKO AI 可以进行说明,并帮助你作出选择。 ●快速复制广告活动。需要测试新的目标地区或广告形式?你可以要求 NIKO AI 复制任何现有广告活动,并只调整需要修改的部分,无需从头重新创建。 ●在聊天中管理广告素材。你可以添加和编辑广告素材,也可以启动或暂停素材,全程无需离开当前对话。 ●管理广告区域和子区域列表。你可以通过 NIKO AI 直接管理广告区域和子区域的白名单及黑名单。 ●随时查看数据和账户余额。你可以要求 NIKO AI 按目标地区、广告形式、日期范围或广告活动查看效果数据,也可以随时查询账户余额。 ●向 NIKO AI 咨询任何有关 PropellerAds 的问题。这是一项非常重要的升级。NIKO AI 已基于 PropellerAds 完整的知识库进行训练,因此它提供的并不是泛泛的 AI 猜测。现在,你可以询问 PropellerAds 平台如何运行、某项具体功能有什么作用,或者哪种策略更适合你的业务领域,并获得基于 PropellerAds 实际专业经验的回答。 分享越多,NIKO AI表现越好 PropellerAds表示,广告主提供的信息越详细,NIKO AI越能准确完成广告活动设置并提出相应建议。这些信息可以包括业务领域、转化漏斗、推广内容、投放目标、目标获客成本,以及过去有效或未达到预期的投放方式。 根据PropellerAds内部测试,与仅提供少量或不提供背景信息的广告主相比,详细说明广告活动和转化漏斗的广告主,转化数量最高增加144%。首批广告主的使用数据还显示,从注册到生成首个广告活动草稿的速度达到手动操作流程的11倍;NIKO AI广告活动产生的收益达到手动设置广告活动的2至4倍。 PropellerAds建议,广告主在使用NIKO AI时,除投放地区和广告形式外,还应提供业务领域、转化漏斗结构、目标获客成本和过往投放经验。通过将重复性的操作交给NIKO AI,广告主可以将更多时间用于策略制定、测试和扩大投放规模。 总而言之,NIKO AI并非一项仅用于展示的AI功能,而是能够切实提升广告投放效率的实用工具。通过将广告活动创建、调整、数据查询及日常管理等重复性工作交由NIKO AI完成,广告主可以减少对管理后台的频繁操作,将更多时间投入策略制定、效果测试和业务规模化,并以更高效、灵活的方式推进广告投放工作。

优秀的个人博客,低调大师

Agentic 智能体 React 模式实现

普通的大模型调用是一问一答,问完就结束了。但真实的 Agent 场景不是这样 -- 大模型需要自己判断:我现在信息够不够?不够的话该调用什么工具去补充?拿到结果之后怎么继续推理? 这种"思考 -> 行动 -> 再思考"的循环能力,就是 **ReAct(Reasoning + Acting)** 模式要解决的问题。 这篇文章从代码实现的角度拆解 ReAct 模块,主要回答四个问题: 1)ReAct 循环的本质结构和两个分支 2)上下文治理 -- 上下文越来越长怎么办 3)工具执行引擎的并发与串行模式 4)钩子机制 -- 如何在不改主流程的前提下扩展行为 **关注“AI老马” —【获取资源】&【进群交流】** ## **1,ReAct 的本质:一个带条件的 for 循环** 把所有概念剥掉之后,ReAct 的核心代码结构就是一个 `for` 循环。 每次循环做一件事:**让大模型生成回复,然后检查回复里有没有工具调用请求。** 如果有工具调用 -- 把参数提取出来,交给工具执行引擎,拿到结果后塞回上下文,然后 `continue` 进入下一轮循环。这就是"行动之后再思考"。 如果没有工具调用 -- 说明大模型认为已经可以给出最终答案了,直接输出结果,跳出循环。整个 ReAct 过程结束。 当然,不能让它无限循环下去。循环开始之前要设置一个**最大迭代次数**(比如 10 次或 20 次),到了上限强制终止,避免用户体验失控和 API 调用成本爆炸。 所以整个 ReAct 的骨架就这么点东西: ``` for i in range(max_iterations): context = govern_context(context) # 上下文治理 response = llm.chat(context) # 大模型思考 if has_tool_call(response): result = execute_tools(response) # 执行工具 context += result # 结果回填 continue # 继续循环 else: return response # 输出最终答案 ``` 两个分支,逻辑清晰。复杂的不在循环本身,而在循环内部的细节处理。 ## **2,上下文治理:五步法控制窗口长度** ReAct 循环每转一圈,上下文就会变长 -- 加入了大模型的推理结果、工具调用的请求、工具返回的结果。转个十圈八圈,上下文可能就超出了模型的窗口限制。 所以每轮循环的第一步,必须是**上下文治理**。这里有一套五步处理的标准化流程: **第一步:清理孤儿数据。** 工具调用是成对出现的 -- 有请求就该有对应的结果。如果上下文里出现了只有结果没有请求、或只有请求没有结果的孤立数据,说明中间出了异常(比如工具执行超时)。这些孤儿数据一律清除,避免干扰后续推理。 **第二步:压缩早期结果。** 前几轮的工具调用结果对当前决策的价值已经不大了,但完全丢弃又怕丢失关键信息。折中方案是:保留最近 N 轮(比如最近 10 次)的原始结果,更早的结果压缩为一行摘要。既省空间,又不丢核心信息。 **第三步:持久化关键数据。** 将重要的中间结果(比如搜索到的文档、查询到的数据库记录)写入持久化存储。这样即使后续上下文被裁剪掉了,需要的时候还能找回来。相当于给大模型装了一个"外部记忆"。 **第四步:结果格式化。** 确保每个工具调用的输出都按照统一格式整理,方便大模型解析和使用。杂乱无章的工具返回只会增加理解成本。 **第五步:历史裁剪。** 当前四步做完之后,如果总长度仍然超过阈值,就从最早的消息开始裁剪,只保留系统提示词(System Prompt)和最近的消息。这是最后的保底措施。 这五步的目标只有一个:**让上下文保持在模型窗口限制之内,同时尽可能保留有价值的信息。** ## **3,工具执行:并发还是串行?** 大模型一次可能要求调用多个工具。这些工具之间有没有依赖关系?能不能并行执行?这决定了执行策略。 设计上支持两种模式: **串行模式**:按顺序逐个执行工具,前一个的结果可以作为后一个的输入。适用于工具之间存在依赖关系的场景 -- 比如先用搜索工具找到文件路径,再用读取工具打开文件内容。 **并发模式**:将多个独立的工具调用打包成一个 Batch,同时发起执行,最后汇总所有结果一起返回。适用于工具之间互不相关的场景 -- 同时查天气、查股价、查日历,谁也不依赖谁。 具体用哪种模式,可以根据工具的属性配置来决定,不需要硬编码。执行引擎内部会自动判断和分发。 ## **4,错误恢复:别让一次失败搞崩全局** 工具调用不可能次次成功。网络超时、API 报错、参数不合法 -- 异常情况随时可能发生。 错误恢复机制的核心原则是:**局部失败不影响整体流程。** 具体的策略包括: - • **空响应重试**:工具返回空结果时,自动重试 1~2 次,排除偶发性问题 - • **阶段级容错**:单轮迭代最多允许恢复 N 次(比如 3 次),超出后跳过本轮继续下一轮 - • **错误信息透传**:工具执行的错误不会吞掉,而是包装成明确的错误提示返回给大模型。大模型看到错误后可以自行决定是换参数重试、换工具尝试,还是直接基于已有信息给出答案 这个设计体现了 ReAct 模式的一个重要理念:**异常处理也是大模型推理的一部分**。不需要在代码层面把所有异常路径都穷举出来,告诉大模型发生了什么,让它自己想办法。 ## **5,钩子机制:在不改动主流程的前提下扩展行为** ReAct 主循环的逻辑是固定的,但在实际使用中,不同场景有不同的附加需求:有的要在每轮迭代前打印日志,有的要实时推送流式结果给前端,有的要做调用埋点和监控。 如果在主流程里到处加 if-else,代码很快就会变成一团乱麻。 解决方案是**钩子(Hook)模式**。在 ReAct 执行类的关键节点预留出"挂钩点",用户可以通过继承 Hook 类并实现特定方法来注入自定义行为: - • 迭代开始前做什么(`before_iteration`) - • 是否启用流式输出(`should_stream`) - • 流式内容怎么回写(`on_stream`) - • 迭代结束后做什么(`after_iteration`) 定义好 Hook 类之后,传给 ReAct 的数据包装类就行。主循环在执行到对应节点时,会自动检查并调用 Hook 中已实现的方法。主流程本身一行都不用改。 更进一步,如果需要同时生效多种 Hook(既要打日志又要推流式),可以用一个 **CompositeHook** 组合多个 Hook,按序依次执行。本质上又是一个"套壳"的设计 -- 一个壳子里装多个具体实现,对外还是一个 Hook。 ## **写在最后** 回过头来看,ReAct 模块的实现并不神秘:**一个 for 循环 + 两条分支 + 五步上下文治理 + 可插拔的 Hook 扩展。** 真正值得关注的工程细节是上下文治理那部分 -- 怎么在有限的空间里保留最多的有效信息,这直接决定了 Agent 在多轮交互后的推理质量。 而对于想要自建 Agent 框架的同学来说,这套设计的可借鉴之处在于它的分层思路:主循环只管流转逻辑,上下文治理、工具执行、错误恢复、扩展钩子各自独立封装,互不耦合。加功能不用动主干,修 bug 不用牵连全身。

优秀的个人博客,低调大师

Suna —— 开源通用 AI 智能体

Suna 是一款完全开源的 AI 助手,可帮助你轻松完成现实世界中的任务。通过自然对话,Suna 成为你研究、数据分析和应对日常挑战的数字伴侣--它将强大的功能与直观的界面相结合,能够理解你的需求并提供结果。 Suna 强大的工具包包括用于浏览网页和提取数据的无缝浏览器自动化、用于创建和编辑文档的文件管理、网络爬虫和扩展搜索功能、用于系统任务的命令行执行、网站部署以及与各种 API 和服务的集成。这些功能协调工作,使 Suna 能够通过简单的对话解决你的复杂问题并实现工作流程自动化。

优秀的个人博客,低调大师

把CodeBuddy接入多智能体网络

## **一、背景:为什么要把CodeBuddy塞进"运维网络"** 我们维护着一套跑在自有内网的**多节点 AI Agent 协作网络**:一台主控负责调度,若干节点分别承担网关隔离、模型推理、记忆检索、桌面自动化等角色,节点之间靠 SSH、文件通道和定时任务协同。 腾讯公司QClaw已发布停运公告后,我们决定**提前启动迁移准备** —— 把原本由它承担的职能(定时派活、GUI 测试调度、深度研究任务)逐步转移到替代方案上,避免临期被动。 评估下来,腾讯的 **CodeBuddy Code**(CLI,`@tencent-ai/codebuddy-code`)是合适的候选: - 内核是完整的 Agent Runtime(工具调用、多轮、子 Agent、MCP) - 自带 headless 模式、HTTP 网关、Web UI、ACP 协议 - 有桌面版(WorkBuddy),具备窗口/截图/鼠标操作能力 **但"能装"和"能无人值守地被调度"是两回事。** 下面的排查过程,记录了我们从"桌面能用、脚本跑不通"到"完全本地化落地"的完整路径。 --- ## **二、现象:** 第一轮验证就出现了桌面侧和脚本侧的对照: **桌面侧**:在 WorkBuddy 桌面里发消息,Agent 正常执行、正常回复。 **脚本侧**:用同样的网关接口发任务,返回 `202 accepted` 并给出 `runId`,但任务永远停在"进行中": ``` {"data":{"runId":"","status":"accepted"}} # 之后无论等多久,查询状态始终 active:true ``` 日志里最先暴露的是一行不起眼的报错: ``` [Error] Failed to read settings file for scope user: ENOENT ``` 继续追,发现状态机走了一半就停住: ``` RUN_PREPARING → RUN_ACCEPTED → AGENT_STARTED → ...(此后没有任何输出) [WorkflowMemProbe] tick runId=(none) ``` **任务被受理了、Agent 被拉起来了,但模型调用从未发生。** --- ## **三、根因:两套认证体系,一道会话隔离墙** ### **3.1 第一层:凭据根本不在 CLI 手里** 我们把范围缩小到认证。关键日志: ``` [FileAuthenticationStorage] [AtRestEncryption] unavailable adapter=credential-fields resource=auth/.info [CliDispatcher] [CredentialBootstrap] CBC receiver {"route":"standalone","policy":"unspecified",...} [ExternalLinkAuthenticationProvider] fetch auth accounts error: 401 [AuthenticationManager] Failed to refresh token: account list is empty ``` 三条信息拼起来就是答案: 1. **`CredentialBootstrap` 的 `route` 是 `standalone**` —— 说明这个进程**没有拿到宿主注入的凭据**,是"野生"启动的。 1. **`AtRestEncryption unavailable**` —— 凭据存储采用了**静态加密**(在 Windows 平台,这类静态加密通常会走系统的 DPAPI,但这里只是我们的推断),而当前进程**无法解密**。 1. **`fetch auth accounts error: 401**` —— 于是它去问服务端,服务端说你没凭据。 ### **3.2 第二层:为什么"桌面 spawn 的进程"也没用** 这里有个容易踩的坑:我们一度认为"只要用桌面自己拉起的 sidecar 就能借用登录态",于是去接管了桌面的 **prewarm 预热进程池**(见第五节)。结果拿到了一个免密、状态为"已认证"的网关: ``` {"authEnabled":false,"authenticated":true} ``` **但发任务依然卡在 `AGENT_STARTED`。** `authenticated:true` 只表示"这个进程认为自己是登录态"——**我们理解**,真正的凭据注入发生在桌面进程与它 spawn 的子进程之间,一旦从外部(比如 WSL)通过 IPC 接管,这条注入链就断了。(与 §3.3 同理,此为推断,我们未做对照实验。) ### **3.3 第三层:跨系统的会话隔离** 我们还试过从 WSL 直接启动 Windows 侧的进程去跑 CLI,甚至用交互式计划任务在用户会话里启动。**结果一致:`Authentication required`。** 日志里能确定的只有一件事:**静态加密模块在该进程内不可用**(`[AtRestEncryption] unavailable`),随后凭据刷新失败。 我们**推测**,这类静态加密通常依赖当前登录会话持有的用户凭据材料(密钥派生自用户口令),而由 WSL 侧拉起的 Windows 进程往往处在非交互式上下文,因此**可能**拿不到解密所需的那部分材料。但这只是推测——**我们没有做对照实验去证实这一层机制**,就不在本文下结论了。 不过,真正有实操价值的一点是确定的:**绕开这个问题的正确做法,不是去改造登录会话**(换启动方式、调计划任务参数),**而是换一条路——让 CLI 自己完成一次登录。** 这正是下一节的内容。 ### **3.4 关键转折:CLI 有它自己的认证,而且完全独立** 排查到这里,我们做了一次思路切换:**不要试图复用桌面的登录态,而是让 CLI 自己登录。** 验证发现——**CodeBuddy CLI 在 Linux 侧的认证是纯文件存储**(`~/.codebuddy/`),不涉及任何操作系统级加密,自然也没有会话隔离问题。 **这一步是整个问题的解。** --- ## **四、解法:三步走通独立 CLI** ### **4.1 安装(公网可得,无需内部源)** ``` npm i -g @tencent-ai/codebuddy-code --registry=https://registry.npmmirror.com codebuddy --version ``` > 提示 1:包名是 `@tencent-ai/codebuddy-code`。桌面端里内置的那份走的是另一条路径,**不要混淆** —— 前者是公开发行渠道,后者是桌面私有集成。 提示 2:上面用 `--registry` 参数只影响本次安装。若写成 `npm config set registry ...` 会**全局覆盖** npm 源,装完记得改回,或改用前者。 ### **4.2 登录(这一步有个大坑)** CLI 提供 `/login` 交互命令,但我们实测发现: **用 pty 驱动 TUI 注入按键极不稳定** —— 菜单时好时坏,登录 URL 会因终端宽度不够被折行截断(`state=` 参数只取到一半)。折腾了几轮之后我们换了条路: ``` # 仅绑本机回环;仅为打通登录流程,完成登录后请改回启用鉴权(见 §6.3) codebuddy --serve --port 8322 --auth none ``` 然后在**同机浏览器**打开 `http://localhost:8322/`。 > **环境说明**:本文 CLI 装在 Linux 侧的开发机(WSL 环境),浏览器在 Windows 侧。WSL2 默认会把 `localhost` 转发到 Windows,所以直接访问即可,无需额外配置。如果在纯远程服务器上操作,用 SSH 端口转发(`ssh -L 8322:127.0.0.1:8322`)也能达到同样效果 —— **不要**把该端口直接暴露到网络上(见 §6.3 安全边界)。 **Web UI 里有完整的登录入口**,点一下、扫码/SSO 走完,凭据就落到用户目录(`~/.codebuddy/`)了。整个过程不需要和 TUI 搏斗。 > 补充:如果你确实需要走 TUI 拿登录链接,**先把终端宽度设到 200 列以上**(`stty cols 220`),否则 URL 必被截断。 ### **4.3 验证** ``` $ codebuddy -p "reply with exactly: PONG" PONG $ codebuddy -p "run the shell command 'echo HELLO' and tell me its output" -y Output: `HELLO` (exit code 0) ``` **工具调用(Bash)通了** —— 这是 Agent 能力的核心,也是后面一切的基础。 --- ## **五、进阶:prewarm 进程池能接管吗?** CodeBuddy 有一个"预热进程"机制:提前冷启动若干进程待命,需要时唤醒,省掉冷启动时间。该机制由产品官方提供(具体行为请查阅官方文档)。 我们做了一次**边界验证**:外部程序能否激活这些预热进程、并借它拿到可用的 Agent 能力? **结论是"能接管,但不能绕过认证"**: - **能拿到的**:一个仅绑本机回环地址的 HTTP 网关(端口由系统分配)。从进程控制的角度看,预热进程确实可以被外部激活并转为服务形态。 - **拿不到的**:**它不具备可用的登录凭据**。用它提交任务,状态机同样会停在 `AGENT_STARTED`,模型调用永远不会发出(原因见 3.2)。 **所以这条路不能作为认证的替代方案。** 想打通,还是要让 CLI 自己完成一次登录。我们把它记在这里,是为了给同样想"少走一步"的人省下一次尝试 —— 这个方向看起来很像捷径,实际是死路。 > 说明:本文不展开该机制的具体协议与调用细节。若你需要了解,请以官方文档为准。 --- ## **六、落地:把它变成调度网络里的一个执行节点** 认证通了之后,我们把 CLI 封装成常驻网关 + 命令行客户端,接入现有的调度体系。 ### **6.1 两种调用形态** **形态 A:一次性调用**(适合低频、独立任务) ``` codebuddy -p "任务文本" # 只读问答 codebuddy -p "任务文本" -y # 允许工具调用 ``` **形态 B:常驻网关**(适合高频、多任务复用) ``` # 仅绑本机回环;生产环境请按官方文档启用鉴权(见下方安全边界) codebuddy --serve --port 8322 curl -s -H ": " \ http://127.0.0.1:8322/api/v1/health curl -s -X POST http://127.0.0.1:8322/api/v1/runs \ -H ": " -H "Content-Type: application/json" \ -d '{ "id":"", "type":"message", "source":{"platform":"generic","sender":{"id":"scheduler"}, "conversation":{"id":"","type":"direct"}}, "payload":{"text":"任务文本"} }' # → {"data":{"runId":"...","status":"accepted"}} ``` ### **6.2 两个必须知道的接口细节** **坑一:网关要求携带产品自身的请求标识头。** 缺了它,请求直接 403,而且错误信息不会告诉你原因 —— 对着 403 排查半天才发现是缺头。具体头字段名与取值请以官方文档为准。 **坑二:任务正文不在 REST 响应里。** `/api/v1/runs/{id}` 只返回 `active` 状态,流式接口在任务完成后会直接 404。正文要从**会话记录**里取: ``` ls -t ~/.codebuddy/projects/*/*.jsonl | head -1 # 逐行 JSON,过滤 type=message && role=assistant 的 text 字段 ``` 这一条官方文档没写,但对接时不解决它就没法拿到结果。 ### **6.3 网关的能力面** 从运行日志看,这个网关的能力远不止"发任务":它同时还暴露了会话管理、统计、追踪、常驻服务状态、定时任务、IM 通道接入等一组接口。 其中几个值得注意: - **IM 通道**:接口层面声明支持 `generic` / `wecom` / `wechat-kf`(企业微信、微信客服)—— 意味着它**自带 IM 通道接入能力**,可以直接对接到群聊/客服工作流 - **常驻服务**:可注册为系统服务、开机自启,并查询运行状态 - **定时任务**:自带调度能力 - **ACP**:Agent Client Protocol 长连接,适合需要流式交互的场景 > ⚠️ **安全边界(重要)** 这个网关**能执行本机 shell 工具调用**(见 §4.3 的验证),因此它实质上等同于一条**本机命令执行入口**。无论用哪种方式启动,都请守住三条底线: 1. **只绑回环地址**(`127.0.0.1`)。**切勿**改为 `0.0.0.0`,也不要通过端口转发、反向代理把端口服到内网或公网。 1. **生产环境务必启用鉴权**。本文为聚焦认证排查问题,示例中使用了关闭鉴权的参数;那**仅适用于完全隔离的本机调试**。长期运行请按官方文档启用访问控制。 1. **一旦实例挂上了 IM 通道**(企业微信等),访问控制的要求会成倍上升 —— 因为消息入口本身就是外部输入源。此时应叠加网络隔离与反代鉴权,而不是依赖网关自身的单层防护。 --- ## **七、成本归零:接到本地 GPU** 真正让这套方案"值得长期跑"的,是模型侧的调整。 CodeBuddy 支持通过 `~/.codebuddy/models.json` 注入自定义模型(OpenAI 兼容协议): ``` { "models": [{ "id": "local-model", "name": "local-model", "vendor": "Custom", "url": "http://:8000/v1", "supportsToolCall": true, "supportsImages": false, "supportsReasoning": false, "maxInputTokens": 128000, "maxOutputTokens": 16384 }] } ``` 配好之后,**整个 Agent 的推理就跑在内网的 GPU 节点上了**。 ### **实测数据** > 采集环境:本地 GPU 节点(内网 HTTP 服务,OpenAI 兼容接口),客户端与服务端同网段;单并发、无其他负载。数字为观察值,非严格基准测试。 |指标|数值|说明| | --- | --- | --- | |单轮 -p 调用(3 次)|2.63s / 2.69s / 3.84s|含进程冷启动| |网关模式端到端|约 5s 量级|含一次工具调用;因客户端轮询间隔粗(5s),无法给出亚秒级精度,仅供参考| |首 Token 延迟(TTFT)|0.5 – 1.5s|随上下文长度浮动| |单次请求 prompt 规模|≈ 29K tokens|Agent 系统提示的固定开销| |单次请求 completion|17 – 43 tokens|短任务场景| |本地模型端点连通|88ms|内网 HTTP 探测| **两个观察**: 1. **固定开销不小**。CodeBuddy 本体的系统提示约 **29K tokens**,即便只回一句"OK",也要先吃掉这个上下文。本地推理免费,但延迟由这部分决定(TTFT 约 0.5–1.5s)。 1. **调用成本为零**。相比走云端 API 按 token 计费,本地接管后只有电费和 GPU 折旧。对于"高频、短输出"的调度类任务,这是关键的经济性优势。 --- ## **八、经验总结** **五条最值得记的结论**: 1. **桌面能跑 ≠ 脚本能跑**。桌面应用把凭据注入子进程时,注入链绑定在桌面进程上下文里(此为我们的推断,见 §3.2/§3.3);一旦你从外部接管进程,这条链就断了。 1. **OS 级加密可能依赖登录会话上下文**。我们观察到的现象是"能读到加密文件、但解不开",日志只证明静态加密模块不可用。与其在这条路上死磕(改造启动方式、换计划任务参数),不如换条路 —— **让程序自己完成一次认证**,往往更快。 1. **遇到"认证拿不到",先想"能不能让它自己登录"**,而不是死磕"怎么复用别人的登录态"。我们绕了三层才走到这一步,而它是最短路径。 1. **自动化登录优先走 Web UI**。用 pty 驱动 TUI 注入按键,在真实项目里是不稳定源;有 Web UI 就用 Web UI。 1. **官方文档没写的东西,往往才是集成时最耗时的**:REST 不返回任务正文、必需的请求标识头不出现在错误信息里、预热进程接管后拿不到凭据 —— 这些只能靠实测。 **适用场景建议**: |场景|推荐形态| | --- | --- | |脚本化、无人值守的 Agent 调用|独立 CLI(本文方案)| |需要窗口/截图/鼠标等桌面操作|桌面版(独立 CLI 不具备)| |高频短任务|常驻网关 + 本地模型| |低频长任务|一次性 -p 调用即可| --- ## **九、写在最后** 这套方案的实质,是**把一个面向"编码"的 Agent,改造成面向"调度"的通用执行节点**:它不再需要人坐在 IDE 前面,而是作为一个可编程的进程,被上层网络按需唤醒、派活、回收。 对我们来说,这是在原工具停运前完成的职能承接准备;对更广泛的场景来说,它提供了一个思路 —— **当下主流的编码 Agent,其内核能力(工具调用、多轮推理、MCP)已经足够通用,缺的往往只是"如何把它安全地接入你自己的自动化体系"这一层封装。** 而这一层,官方文档通常只讲到一半。 --- *声明:本文所有操作均在自有测试环境完成,不涉及任何未授权访问。文中内网地址、主机名、凭据、进程号与身份信息均已做脱敏处理;涉及的产品接口行为基于特定版本实测,后续版本可能变化,请以官方文档为准。文中所述为个人技术实践,不代表任何组织立场;实际部署请遵守产品许可协议与所在组织的信息安全规定。*

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册