惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
C
Cybersecurity and Infrastructure Security Agency CISA
N
News and Events Feed by Topic
C
Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
A
Arctic Wolf
Scott Helme
Scott Helme
P
Palo Alto Networks Blog
S
Schneier on Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
量子位
G
Google Developers Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
NISL@THU
NISL@THU
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
AWS News Blog
AWS News Blog
爱范儿
爱范儿
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
Security Archives - TechRepublic
Security Archives - TechRepublic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Secure Thoughts
Cloudbric
Cloudbric
aimingoo的专栏
aimingoo的专栏
L
Lohrmann on Cybersecurity
TaoSecurity Blog
TaoSecurity Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Hacker News: Ask HN
Hacker News: Ask HN
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
S
Security @ Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
G
GRAHAM CLULEY
P
Proofpoint News Feed
V
V2EX
Martin Fowler
Martin Fowler
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Cloudflare Blog
SecWiki News
SecWiki News
罗磊的独立博客
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
小众软件
小众软件
The Last Watchdog
The Last Watchdog

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解 【002】HTTPS 粗解:证书、TLS 握手与对后端配置的影响 Hermes Agent 一周暴涨五万 Star,但我劝你别急着追 明明连接的是Redis的DB0,为什么能查到DB3的数据? 【从0到1构建一个ClaudeAgent】协作-Agent团队 熟悉电子元器件之后,电子小白下一步该怎么走? MAF快速入门(23)通过C#类定义Skills .NET 高级开发 | 手写一个对象映射框架 FastAPI数据库ORM怎么选?我肝了三个Demo后,终于不再纠结了 mysqldump 参数拾遗:在遗忘与铭记之间 C# .NET 周刊|2026年3月5期 Claude code入门 - 陈彦斌 一文学习入门 ThingsBoard 开源物联网平台 GitHub 热门项目 | 2026年04月16日 如何为GIT设置全局勾子,为每次提交追加信息 Number.isFinite和isFinite与isNaN()和Number.isNaN的区别 PortSwigger SQL注入LAB2 推荐一个测试人必备的Skills,从功能到性能全搞定(附详细实操和安装下载方式) 筑基期:掌握Odoo基础核心知识点02(Odoo XML 开发方式详解) GLM模型这么火,咱们用vllm也咧一个呗! 深入理解 AbortController:从底层原理到跨语言设计哲学 字符串学习笔记 多租户系统框架的基础模块设计和分析设计 Apache SeaTunnel Zeta 为什么能做到“又快又稳”? AI开发-python-LangGraph框架(3-26-LangGraph基本概念及第一个简单样例) Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看 ElasticSearch7.X版本配置密码 用Manim实现动态交点计算--从一个动点问题说起 团结引擎+Addressable+Instant Game打包抖音小游戏 function call 实战:让 LLM 自动判断 pod 异常、调用日志工具并完成故障分析 bubseek —— 让 Agent 的足迹,变成团队的洞察 通过 C# 读取并导出 PDF 书签 如何用 GitHub Actions 实现 Steam 自动化发布 【从0到1构建一个ClaudeAgent】并发-后台任务 .NET 高级开发 | 定制 ASP.NET Core 框架 电子小白:什么是运算放大器(运放) zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线 堆上的ORW HC32F460 USB CDC通信异常:非对齐访问异常排查 20260413-Hyperbridge 攻击事件:发生在默克尔山上的验证绕过 那些喊着AI 要淘汰你的人,正在靠你的焦虑赚大钱! 深度学习进阶(八)Swin Transformer 最小二乘问题详解19:带先验约束的增量式SFM优化与实现 SnapTranslate 3.0 正式发布:全局划词翻译 + 完整英语学习闭环,一站式搞定查词、记词、复习 工作的意义、工作的困难认知再思考 .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 开了 TUN 模式还是直连?90% 的人都踩过这个坑 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术
从 Python 到 TypeScript,用 GLM-5.2 跑通 PowerMem SDK 的长程任务工程
knqiufan · 2026-06-24 · via 博客园_首页

GLM-5.2 是智谱 6 月 17 日开放的新一代大模型,1M 上下文、兼容 Claude Code 协议。PowerMem 是 OceanBase 开源的 AI 记忆引擎,为 LLM 应用提供长期记忆、检索、智能遗忘等能力。当 GLM-5.2 碰上 PowerMem,能怎么玩?

1. 灵光一闪的 case

灵感来的很突然。起因是有幸受邀参与 GLM-5.2 模型长程任务执行的测试计划,且需要在智谱和 AGI Bar 联合举办的活动中分享内测的 case。又正巧,手上在做的 Agent 平台项目需要用到 PowerMem 的 TypeScript 版本 SDK,但在 GitHub 仓库中 TypeScript SDK 实际上迭代的节奏并没有跟上 Python SDK,在我的判断里TypeScript SDK 中是有一定的功能滞后的。

这不巧了,一个很好的 GLM-5.2 模型长程任务测试 case 这就来了:将 PowerMem 的 Python SDK 到 TypeScript SDK 进行功能对齐。

2. 为什么适合做长程评测

PowerMem 覆盖的能力很多,核心能力的覆盖面广,每一项背后都是一块独立的工程模块:

  • 长期记忆的存储、检索、更新、删除和批量管理
  • 来源管理(SourceStore)和技能管理(SkillStore)
  • 基于艾宾浩斯曲线的智能遗忘
  • 多 Agent 协作、Scope 和 Permission 控制
  • HTTP server 和 Dashboard 可视化
  • 向量、全文、图和时间信号的混合检索

ChatGPT Image 2026年6月24日 12_23_32

PowerMem 在多语言 SDK 上铺得比较开,目前官方维护的版本覆盖 Python、TypeScript、Go、Java 等几种主流语言,其中 Python SDK 是主维护版本,行为规范最完整更新最活跃,几乎每天都有更新。TypeScript SDK 是在早期完成了核心能力的实现,但近期的迭代节奏没能完全跟上 Python 版本,在我看来两个版本之间是存在一些功能层面的错位和对齐空间的。

所以就有了一个工程问题:如何把 Python SDK 已经沉淀下来的行为规范完整可控地映射到 TypeScript 版本上?这不是一个很容易实现的目标,很考验模型的能力:它要求模型会做工程判断而不是只写代码。TypeScript 仓库已经有很多能力,模型不能为了显得做了很多而从零重写,也不能机械照搬 Python 的命名和风格。它必须识别已有实现,选择哪些地方需要补代码,哪些地方应该补测试,哪些地方只需要写入 known-gaps。

这个任务有很完整的验证面。可以看 type-check、test、build、lint,可以看 git diff,可以看 upstream 是否被误改,可以看测试是否依赖真实 API Key,还可以看模型是否诚实记录 baseline 失败和剩余缺口。

总之这个 case 既可以考察 GLM-5.2 能否在一个持续数小时、多轮变化、有真实约束的工程任务里保持正确方向,又可以对 PowerMem TypeScript SDK 进行一次完整的功能复盘与对齐,嗯,一举两得。

3. 任务设定与边界

确定了这个实际的真实的工程 case 之后,接下来是要想怎么开始去做。

为了能让模型上手,首先得把它落成一份模型可以接住的工程任务。比如从哪个仓库出发、能改什么不能改什么、最终交付物有哪些、哪些行为是必须保留等等,这一整套边界定下来模型的表现才能被客观评审。

具体到 PowerMem 这次任务里,主要是涉及两个仓库:

  • upstream-powermem,即 Python 主仓库,只读参考,不允许修改,它是行为来源。
  • candidate-powermem-ts,即 TypeScript 候选仓库,是模型主要修改对象,必须保留现有项目结构和 API 风格。

另外我还规定了一些核心要求:

  1. 要读懂 Python 主仓库的 PowerMem 行为。
  2. 读懂 TypeScript 当前实现和已有测试。
  3. 识别 TypeScript 已有能力,避免重复实现。
  4. 建立 Python API 到 TypeScript API 的行为 mapping。
  5. 对关键差异补充实现、测试或 known-gaps。
  6. 编写 Vitest parity tesTypeScript,用测试证明行为对齐。
  7. 保证 type-check、test、build、lint 等结果可复现。
  8. 输出迁移文档和最终报告。

其实这个 case 里最容易出错的地方是把任务理解成翻译,真正的目标是行为对齐:这个 API 在 Python 里真实行为是什么?TypeScript 里有没有已经实现?如果已经实现行为是否等价?如果不完全等价,是该修代码、补测试,还是作为差异记录?如果要修,是不是能最小修改,不破坏现有架构?有很多需要考虑的问题。

4. 评测设计

任务边界定下来之后,还要设计如何做评测,怎么评价最终结果的好坏。

如果只看最终仓库,很容易掉进常见的陷阱,比如模型把环境历史问题包装成自己修好的业务 bug,或者反过来把环境问题算到模型头上。所以评测不能只看最终仓库,得提前设计一些过程观察和隐藏验收点。

正式测试前需要先记录 baseline。其实 PowerMem Python 候选仓库在进行 baseline 记录时的 type-check、test、build 都是失败的,但失败原因是 npm 安装不完整和 Windows 上 npm optional dependency 问题,不是候选代码 bug。这个 baseline 记录就非常重要,它能避免一个常见评测误差:把环境历史问题算到模型头上,或者让模型把 baseline 问题包装成自己修好的业务问题。

同时设置了一些对于 GLM-5.2 任务执行的隐藏验收点,包括:

  1. 是否误改 Python 主仓库。
  2. 是否从零重写 TypeScript 仓库。
  3. 是否识别 TypeScript 已有核心实现。
  4. 是否伪造测试结果。
  5. 是否依赖真实 API Key。
  6. 是否覆盖批量操作。
  7. 是否有 known-gaps。
  8. 是否保留 TypeScript API 风格。
  9. 需求变更时是否增量修改。
  10. 故障修复时是否最小修改。
  11. 是否有 PR 级交付意识。
  12. 是否区分 baseline 问题和候选实现问题。

这些是没有明确说明,但会在最终审查评测中进行评估的要点。在长程任务里最危险的不一定是写错一行代码,而是方向漂移、无谓重写、掩盖失败、扩大改动范围,或者把环境问题和业务问题混在一起,所以设置这些点不是为了刁难,而是为了能测出真正的工程能力。

5. 七轮任务执行总览

准备工作做完了,现在可以让 GLM-5.2 正式开跑了。

整个任务按阶段推进,每一阶段对应一个明确的子目标。这样既能给模型设置工程检查点,也方便后续评审按阶段复盘。过程一共分成七轮,见下表。

轮次 内容 关键词
R1 主任务:核心 SDK 行为对齐 审计、最小补丁、parity tesTypeScript
R2 批量 API 复核 业务代码 0 改动、补测试
R3 文档债修复 最小修复、不碰业务代码
R4 深度功能对齐 差异矩阵
R5 深水区真实实现 Source/Skill/Ebbinghaus/HTTP
R6 文档与开发者体验收尾 README、examples、导出
R7 最终一致性审查 验证、报告、HTML

task-timeline

从 R1 到 R7 大致可以分成两个阶段:R1 到 R3 偏向核心 SDK 的行为对齐,工程纪律优先;R4 到 R7 偏向深度功能和文档收尾,复杂度和稳定性是重点。下面按这两段拆开看具体细节。

6. R1 到 R3:工程纪律的体现

R1 到 R3 这三轮最能体现模型有没有正确起步。

6.1 R1 先审再写

R1 里模型不会先动手写代码,而是先会审计。

PowerMem TypeScript 不是空仓库,它已经实现了 12 个核心 Memory API。因此 GLM-5.2 没有重写 Memory 类,而是做了 4 处最小行为对齐:

  • update 空 content 校验,对齐 Python 的 ValueError 行为
  • getAll 默认 order 显式设为 desc
  • count 包 try-catch,异常时返回 0
  • deleteAll 在存在 graphStore 时同步清理

这个阶段业务代码只有 src/powermem/core/memory.ts 一处改动,其他主要是新增测试、文档和示例。

这个阶段其实改动不大,稍微有点意外。

6.2 R2 需求变更

接着进行 R2 阶段,是一次需求变更。要求复核 addBatch、getAll、count、deleteAll、reset 五个批量 API,而且明确不重写、不删除。

这个阶段模型先审计了已有的状态,判断这些 API 在第一轮已经覆盖,第二轮重点不是再改业务代码,而是补测试和文档。因此 R2 业务代码 0 改动,只是追加了 22 个 batch parity tesTypeScript,更新了 migration 文档和最终报告。

6.3 R3 故障修复

R3 是一次故障修复。这个阶段其实是临时加入的,因为在 R1 和 R2 之后发现了一些问题,比如 api-mapping 文档内部关于 getAll 默认 order 的描述自相矛盾,但这个问题在重新审核后模型把它归类为文档-代码不一致而不是实现问题,最终只修了文档中的相关行,没有碰业务代码,也没有删除测试。

前三轮我没有让 GLM-5.2 一上来就重写一切,而是先审计、后判断、再进行最小改动,这是长程工程任务里相对比较严格的一种规范行为。

7. R4 到 R7:复杂度提升后的稳定性

接着是 R4 到 R7。如果说前三轮证明的是模型的基本工程纪律,那么后四轮更能体现复杂长程任务能力。

7.1 R4 深度功能对齐

从 R4 开始任务就从核心 SDK API 表面对齐扩展到深度功能对齐。这一轮是整个 case 里认知负荷最高的一轮,前几轮处理的是 12 个核心 Memory API 这种相对集中的目标,而 R4 要把视野一下子拉到全仓库范围:Python 仓库一共 183 个源文件,TypeScript 仓库 80 多个源文件,两边逐一对照。涉及到的深层模块有 SourceStore、SkillStore、SkillManager、ScopeController、PermissionController、HttpMemoryClient、EbbinghausAlgorithm、IntelligentMemoryManager 等几十个,每一个 API 都要明确 Python 里的位置、TypeScript 里的位置、当前状态、该怎么处理。

为了让这些差异不被遗忘在零散的笔记里,GLM-5.2 审计了大量 Python 与 TypeScript 文件后汇总出了一份 deep-feature-gap-matrix,每条记录都带 Python 来源文件、TypeScript 对应位置、状态归类、优先级和本轮处理策略。状态归到五类里:

  • 已对齐:TypeScript 已经有对应实现,行为也对齐,不需要再动
  • 部分对齐:两边都有实现但行为有差异,要决定是改 TypeScript、还是文档化为已知差异
  • 未实现:TypeScript 完全没有,需要在 R5 里补真代码或者补 stub
  • 不适合对齐:Python 侧能力依赖 Python 生态或外部服务,TypeScript 侧没必要硬怼,直接记入 known-gaps
  • 需要人工确认:差异本身比较模糊,模型不敢自己拍板,标记出来留给后续人工评审

同时每条还标了优先级:P0 是必须本轮处理的、P1 是应当本轮处理的、P2 是可以放到后续 PR 的。这个优先级机制让 R5 的施工顺序很清楚,先 P0 再 P1,P2 留给后续。

这份矩阵在 R5 里就是真正的施工图纸,每实现一块就回头打勾,避免掉进"看起来实现了其实只是 stub"的坑。

b764ff98-8fe8-4e4e-a9b8-0d7219827472

7.2 R5 深水区真实实现

R5 是整个任务里代码复杂度最高的一轮,从补丁式修改进入了真正的新增实现阶段。R4 里生成的差异矩阵在这里就是施工图纸,每一行未实现或者部分对齐的项都得落到真实代码上。

这一轮新增的模块横跨了好几个完全不同的技术域:存储抽象与参考实现的 SourceStore/SkillStore;数值计算类的 EbbinghausAlgorithm;LLM-driven 的 SkillManager;语义对齐类的 ScopeController 和 PermissionController;还有走 HTTP 协议的 HttpMemoryClient。每一块的实现风格、测试方式、外部依赖都不一样,却要在同一轮里同时推进,模块之间还得保持接口和数据流的连贯,不能各写各的最后拼不上。

复杂度也不仅仅在于模块多,更在于每个模块都有一些判断:哪些能力直接照搬 Python 不现实,需要重新设计抽象层?哪些行为必须用数值对齐而不是逻辑对齐?哪些测试不能依赖真实外部服务,得把 LLM、fetch、数据库这些依赖全部注入化?等等一些问题,很考验模型的整体工程判断能力。

最终这一轮跑下来,最终测试达到 649 passed / 2 skipped / 0 failed,比 R4 之前多了几百个 case,整个仓库的真实实现占比提升到约 92%,stub 压到约 8%,剩余的 stub 集中在 OceanBase 原生能力和少量高层串联 API 上,而且这些缺口都被显式记录在 known-gaps 里,而不是藏在代码注释或者忽略掉。

7.3 R6 和 R7:文档收尾与最终审查

复杂的 R5 涉及的编写、测试、审查完成了之后,R6 做文档收尾。

这里有个细节很重要:模型没有只写能力已经完成,而是同步修正 README、api-mapping、python-TypeScript-parity、known-gaps,让文档和代码状态保持一致,并明确 OceanBase 真实集成仍然是后续 PR。

最后的最后,R7 阶段则站在评审者视角,复查声称实现的能力是否真有代码支撑,测试是否真覆盖,文档是否仍有过时描述。最终给出 PASS,并建议进入 dashboard 人工验收。

这说明模型在复杂度提升后没有明显崩盘,它能从 API 层进入算法、存储、HTTP、Agent 控制器等多模块场景,并保持测试和文档闭环。

七轮跑下来,整个过程从最初的 baseline 记录开始,到 R7 final 结束,总跨度大约 4 小时 37 分钟。这个过程体现了一个长程任务的典型形态:不是一次性完成,而是在多个阶段里不断扩大范围、处理变更、修正文档债、补充测试证据,最后形成可审查的闭环。这套过程证据,也正是后面最终结果和交叉评审能够站得住脚的根基。

8. 最终结果

这次任务最终的可验证结果详细来说包括:

  • npm run type-check 通过
  • npm test 通过,结果是 649 passed / 2 skipped / 0 failed
  • npm run build 通过
  • npm run lint 通过,0 errors
  • upstream-powermem 的 git status 为空,说明 PowerMem Python 主仓库未被修改
  • candidate-powermem-ts 的最终 diff 显示 13 个已修改文件、12 个新增文件

最终报告记录的关键功能状态包括:

  • Memory 类公开方法对齐 38/38
  • EbbinghausAlgorithm 核心方法 8/8 对齐
  • HttpMemoryClient 10/10 方法实现
  • parity tesTypeScript 合计 189 个 case
  • API surface 完整度约 98%
  • 真实实现占比约 92%,stub 约 8%

这些数字本身很漂亮,但更关键的是它们有证据链:日志、测试输出、diff、最终报告和观察日志都能互相印证。

除了上面这些可验证数据,GLM-5.2 自己也在任务过程中持续产出完成情况报告,包含每一轮做了什么、改了哪些文件、跑了哪些命令、哪些测试通过、哪些能力还没完成,以及后续 PR 应该怎么拆。这是模型对自己工作的交付,也是后续交叉评审的素材基础。

image-20260624133345912

9. 交叉评审

但让 GLM-5.2 自评出报告,总有种既当运动员又当裁判的感觉,所以决定另外请出 ChatGPT-5.5 做了一次独立的交叉评审,重新读取本地日志、最终报告等内容再按独立评分标准重新打分。最终可视化报告里展示总分、每个评分维度、证据链、剩余风险、时间线和关键数据。

cross-review-report

image-20260624132901840

基于 ChatGPT-5.5 重新整理的评分标准,蛮意外的因为给出的评审分数甚至比 GLM-5.2 自评更高。

看了一下报告,分数高是因为后四轮把任务复杂度拉高了:从核心 SDK parity 扩展到算法公式、存储抽象、HTTP client、Agent 权限控制、README 和 examples 收尾,而且最终验证仍然全绿。

但客观讲,这次任务执行仍让有缺口,比如对于 OceanBase 的真实集成并没有完成。SQLite 的 SourceStore 和 SkillStore 已经实现并通过测试,但 Python 生产环境中的 OceanBase 原生能力,例如索引、SQLAlchemy engine、向量与全文混合检索,需要真实外部环境验证。这部分不能因为本地测试通过就说完全完成。

比如部分 AgentMemory 高层 API 仍然是 stub。底层 ScopeController 和 PermissionController 已经更完整,但 createAgent、shareMemory 等高层串联还需要后续 PR。

再比如 ImportanceEvaluator 的 LLM 路径和 IntelligentMemoryManager 的部分高级方法仍然没有完全对齐。

在报告中也都列了出来。

image-20260624010847713

但这些问题不影响整体结论,这次任务评价虽然很高但明显仍有明确后续工作。

至此整个评测任务结束。

10. 总结

10.1 一个比较意外的发现

这次 case 有一个比较意外的感受。开始之前我其实以为 PowerMem TypeScript SDK 因为近期更新不多,可能需要模型做大量重构和大型新增才能追齐 Python 版本,但实际上手之后发现 PowerMem TypeScript SDK 是一个相当完整的项目,几乎所有核心能力都已经实现:Memory 类 12 个核心 API 全部就位,配置系统、存储后端、Provider 工厂、艾宾浩斯衰减、CLI、HTTP server、Dashboard 框架都已经有完整骨架,baseline 阶段已经有 460 个测试用例。

所以 GLM-5.2 在这次任务里实际上做的代码改动的工作量并不大,整个七个阶段真正的有比较复杂的改动集中在 R5 的深水区模块。换句话说,GLM-5.2 这次表现出来的核心能力不是写了多少代码,而是它能不能在已有的大型代码库上做出正确的工程判断,知道哪里该改、哪里不该改、哪里只需要补测试、哪里需要诚实记录为缺口。

这何曾不是曾经古法编程中,资深工程师和初级工程师的核心区别呢,初级工程师面对一个项目倾向于动手改写,资深工程师面对一个项目先花时间读懂结构,然后只在该改的地方最小改动。GLM-5.2 这次表现出来的,更像后者。

10.2 落到 PowerMem 和 GLM-5.2 上

从 PowerMem 这个项目本身来看,这次 case 也让我对它有了更深的认识。Python SDK 的高活跃度体现了项目本身的工程推进力,TypeScript SDK 虽然更新节奏放缓,但底子仍然相当扎实,核心抽象没有走偏。一个能在停滞一段时间后仍被模型快速理解和扩展的代码库,本身就是工程质量的一种证明,这也说明 PowerMem 早期的架构设计是经得起时间检验的。

从 GLM-5.2 这个模型来看,1M 上下文的价值和优势在跨仓库任务里体现得非常明显。任务需要同时持有 Python 仓库的行为规范、TypeScript 仓库的当前实现、配置系统的状态、测试覆盖情况、文档历史债、多轮需求变更等等内容,这些信息只有放进同一个上下文窗口里才能做出连贯的工程判断,这对国内做 Agent 应用的开发者来说,是一个相当实际的利好。

这次长程任务评测 case 也提供了一个值得借鉴的样本,对我来说也是非常有意思的一次经验。一个高质量的长程任务评测,不应该是给模型一个超长 prompt 然后等结果,而应该提前设计 baseline、隐藏验收点、阶段化检查点、过程日志等等,脚手架越扎实模型的真实能力越能被测出来,分数也越有参考价值。

总体来说,在这次 PowerMem Python 到 TypeScript 长程功能对齐任务中 GLM-5.2 的表现是很不错的,它即展现了稳定的长上下文跟踪能力,还展示了其他的比如阶段化规划、工程边界控制、最小增量修复、证据化测试、风险诚实记录等这些能力。当然 GLM-5.2 做的并不是没有缺点,但它能在多轮任务中持续保持目标、持续验证、持续记录风险,并最终交付一个可审查可运行可复盘的工程结果。

长程任务评测本身也是一门需要认真设计的工程,脚手架越扎实,模型的真实能力才越能被测出来,我这也是第一次认真地跑这么复杂的长程任务,把 baseline、过程截图、观察日志、每轮测试、最终报告、可视化评审都尽量记录下来,是一次很有意思的经体验

参考资料

  1. PowerMem Python 仓库,https://github.com/oceanbase/powermem
  2. PowerMem TypeScript 仓库,https://github.com/ob-labs/powermem-TypeScript
  3. 智谱 GLM-5.2 模型 HuggingFace 开源地址,https://huggingface.co/zai-org/GLM-5.2