r/LocalLLaMA 这两天有个帖子挺有意思。发帖者说,自己把 GLM-5.2(744B MoE) 跑在了一台 25GB RAM 的消费级机器上。评论区很快就把话题带到了一个老问题上:既然这么大的模型已经能塞进个人设备,本地 AI 是不是快能接手日常工作了?
同一天,智谱创始人唐杰在内部信里提到长程任务、自治智能体和安全治理。两条信息放在一起,很容易让人把注意力从模型尺寸、推理速度,转到 Agent 能不能连续完成任务上。
不过这中间有不少台阶。那条 Reddit 帖子只是社区实测,并非独立基准。量化方式、offload 配置、上下文长度、生成速度和任务质量,都需要回到原帖或可复现环境里核对。它更像一个信号:超大开源模型跑进个人设备,已经不是纯粹的想象题了。
可“跑起来”不等于“能交付”。
平时测本地模型,大家会看显存、内存、首 token 延迟和 token/s。这些指标能说明模型能否生成,却很难说明它能不能完成一次真实开发。模型放进 Agent(智能体)后,面对的是一个带工具、约束、中断和验收的 workflow(工作流)。它得知道该读什么文件、什么时候跑测试、哪些边界不能碰;中途断了,还得能接上。
这篇不再讨论 GLM-5.2 的榜单,也不重复 ZCode 的产品介绍。下面这五项,才是我觉得更值得拿来测本地 Agent 的东西。
模型开始吐字,不代表任务已经推进
在终端里看到模型输出代码,很容易产生一种错觉:它会写组件,事情似乎就差不多了。
但把“帮我写个登录页”换成真实项目里的需求,场景马上变了。它得先找到现有认证逻辑,不能改坏公开 API;得跑测试;得记住产品说过“移动端先不做”;环境重启后,最好还能知道自己改到哪一步。最后,页面还得真的能登录。
前面是一次生成,后面才是一项交付。

因此,别急着问“这台机器能跑多大的模型”。拿一个完整但规模不大的仓库任务,固定需求、工具权限、测试和验收步骤,让本地模型与云端模型分别跑几次。比起一张 benchmark 图,这种比较更接近你每天真正要付出的时间和返工成本。
先看它会不会读仓库
第一项测试不该是从零做一个 Todo 应用。给它一个已经存在的仓库,效果更容易看出来。
比如让它给列表页增加筛选项:不能改 API,要补一条失败状态测试。先别让它动手,先问四件事:相关组件在哪,数据从哪里来,现有测试覆盖了什么,这次改动最不该碰什么。
模型如果能指出文件和调用关系,也知道哪些地方少动为妙,后面才值得继续。反过来,刚读两眼就想新建状态管理、顺手重构半个页面,往往已经暴露问题了。它不一定不会写代码,只是没有抓住任务边界。
我更愿意把需求、不可变约束和验收标准放进仓库里的说明文件,再让 Agent 先给计划。这样做很省事:代码还没改,就能看出它理解的是你的要求,还是它自己脑补出来的项目。
再看它会不会用工具找答案
不少本地部署演示停在聊天界面。模型回答流畅,文件没读过,测试没跑过,浏览器也没打开过。那更像一个本地聊天助手,不是能干活的 Agent。
一个简单的测试是:给它读取仓库、修改指定目录、运行测试命令的权限,然后让它修一个已有的失败测试。观察的重点不在于它第一次能不能修好,而在于它会不会根据工具输出继续调整。
只看报错文字猜一个答案,改完就宣布完成,风险很高。它愿意重新运行命令,看到新错误后收缩改动范围,才说明终端输出真的进入了判断过程。
工具调用的另一面是分辨失败类型。依赖没装、端口被占、测试超时、权限不足,表面上都会出现红字。把这些全当成代码 bug,只会制造更多无关修改。一个可用的 Agent 不需要次次都解决环境问题,但至少要知道自己卡在代码、环境,还是权限。
本地环境让文件、终端和日志都很近,同时也把环境脏乱的问题摆在你面前。模型没法自动把一套缺依赖、命令不统一的开发环境变成可靠工具链。
上下文长,不等于约束能记住
长任务常见的翻车方式,不是第一步就写错。
开始时,Agent 还记得“不要改公开 API”。几轮工具调用之后,它发现改 API 更省事,于是改了。开始时,它知道“这次不做移动端”;读了几十个文件后,又顺手补起响应式布局。不是它故意违约,而是早先的约束在后续信息里被冲淡了。
这时测试的重点不应只是上下文窗口大小,而是约束有没有被稳定保存。
可以在任务里放两三条不会反复提醒的条件,例如保持接口兼容、不加新依赖、只动两个模块。多轮之后,先让它复述边界,再看最终 diff 有没有越线。这比问它支持多少 token 有用得多。
也没必要把聊天记录无限重传。旧工具输出、重复检索内容会把真正重要的信息盖住。更实在的办法是把约束从聊天里单独摘出来:一份短任务说明,或者每个阶段结束时写一个 checkpoint(检查点),记录当前目标、已确认事实、未解决问题和禁止改动的范围。
本地工作流有个好处就在这里:哪些信息留在机器上、怎样压缩、何时重开会话,可以由你决定,而不是完全交给一个看不见的会话机制。
故意断一次,看看它怎么回来
本地 Agent 迟早会被打断。笔记本合盖、终端关掉、模型服务重启、显存被占,或者你临时改了需求,都是日常情况。
所以测试时不妨故意停掉它。
让 Agent 完成计划和部分修改后,保存状态。再开一个新会话,只给它仓库、任务说明和留下的 checkpoint。它是否会先看 git diff、测试状态和未完成项?还是直接沿用旧结论,假装任务已经结束?这两种表现差别很大。
恢复不该靠复制整段旧对话。成本高,也会把失效信息一起搬回来。更好的恢复像一次交接:新会话拿到一份简短可信的记录,知道哪些事实已经确认,哪些命令跑过,哪些结果还没验。
如果 checkpoint 里没有验收记录,恢复后的 Agent 就应该继续验证,而不是马上写一段“任务已完成”的总结。
验收不做,交付就还没发生
最后一项最容易省掉。
模型说测试通过,不一定真的通过;测试绿了,也不代表用户路径能走通。涉及 UI、登录、文件上传、异步状态或外部服务时,光看 diff 很难知道结果。
因此,任务开始前就该写好验收方式。后端改动可以跑固定测试、打一遍 API、检查迁移;前端改动至少要启动应用、走关键路径、看看控制台有没有新错误。危险操作则应留下人工确认点。
不需要一上来搭复杂的多 Agent 系统。一条必须成功的测试命令,一份验收清单,一次浏览器点击,已经能挡住很多“模型说完成了”的假象。
| 评测项 | 最小测试 | 合格信号 | 常见失败 |
|---|---|---|---|
| 仓库理解 | 先读代码再给改动计划 | 能说清文件、边界与风险 | 直接重构、臆造项目结构 |
| 工具调用 | 修一个失败测试 | 会反复运行命令并根据输出调整 | 只凭文字猜答案 |
| 约束记忆 | 多轮后复述不可变条件 | diff 未越过既定范围 | 忘记 API、依赖或范围限制 |
| 中断恢复 | 中途停止后新会话续做 | 先核对状态再继续 | 复制旧结论、跳过未完成验证 |
| 最终验收 | 测试、关键路径或人工检查 | 有可观察的完成证据 | 用“已完成”代替验证 |
同一套任务,在本地模型、云端模型,甚至不同量化版本上各跑几次,才看得出差别。未必需要一次全自动跑通;更重要的是知道它通常在哪一步掉链子,以及每次掉链子要花多少人力补回来。

本地化不是免费午餐
把模型留在本地,确实有实际收益。不能轻易上传的代码、文档和日志,可以少经过一层外部服务;网络不稳定时,一部分任务还能继续;模型、量化方式和工具协议可以替换,团队不必把所有流程押在某一个 API 上。
代价也很具体。驱动版本、模型格式、量化质量、内存和显存分配、服务启动方式、工具权限、日志位置,最后都会变成要有人处理的事。模型越大,链路越长,越像在维护一套小型内部服务。个人开发者可能周末调一次就够,团队则很快会遇到部署、升级、监控和访问控制。
所以不太适合把问题简化成“本地还是云端”。更现实的是分段看:哪些任务需要最强模型、超长上下文或弹性算力,就继续交给云端;哪些任务围绕敏感仓库、重复性内部操作或离线环境,本地模型可能更合适。
把模型当作可替换组件,比把整个工作流绑定在某种部署方式上靠谱。
模型、Agent 与工作流,别混成一个词
模型负责推理和生成。它决定一轮任务里代码、解释和下一步建议的质量。
Agent 拿着模型的判断去读文件、调命令、编辑代码、调用服务。走到这一步,工具可用性和权限边界已经和模型回答质量一样重要。
工作流把执行串成可交付的过程:保存约束,安排工具调用,写 checkpoint,处理失败与恢复,最后要求测试、浏览器或人给出证据。
“能跑大模型”解决的是能力能不能出现在你的机器上;“能跑工作流”解决的是这份能力能否在真实任务里被约束、被接续、被验证。两者差得不止一块显卡或几个 token/s。
本地化也不是反云端。它只是把模型这一层重新变成可以选择和替换的部件。任务能不能安全交出去,取决于 Agent 实际怎么做,以及工作流有没有把它带回一个能检查的结果。
参考来源
- Z.ai:GLM-5.2 — Built for Long-Horizon Tasks
- 36氪:智谱创始人唐杰发内部信:「GLM 时刻」之后,什么是更重要的事
- r/LocalLLaMA:GLM-5.2 (744B MoE) on a 25GB-RAM consumer machine
- BestBlogs:Why Now Is the Time to Bring AI Back Local
以上来源用于观察厂商发布口径、本地 AI 趋势和社区反馈。Reddit 配置与性能描述来自单一发帖者,媒体报道与社区讨论都不等同于独立基准测试;实际部署前仍应在自己的硬件、模型版本和真实任务上复核。