{"data":{"allPost":{"edges":[{"node":{"slug":"/post/2026/06/glm-5-2-affordable-providers-vision-and-agents-8f8c","title":"GLM-5.2：高性价比套餐、视觉支持和 Agent 设置","subtitle":"","isPublished":true,"createdTime":"2026-06-26T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["AI","Agent"],"category":"Programming","file":{"childMdx":{"excerpt":"上周 Claude Code 和 Codex 额度用光之后，我试了一下 GLM 5.2，发现它的能力和 GPT 5.5 是一档的。 但是，中国官方网站的套餐买不到，并且服务稳定性和速度都较差。我这边自己探索了一些替代方案，分享给大家。 这篇文章讲三件事： 高性价比 GLM-5.2 套餐有哪些，以及它们各自的取舍。 缺少视觉支持实际会卡在哪里，现在的 agent 又是怎么绕过去的。 怎么在主流 coding agent 里通过文中所展示的套餐配置 GLM-5.2。 高性价比套餐 我现在会这样看这些套餐。 套餐 价格 用量限制 上下文窗口大小 速度 视觉支持 Cursor Pro $20 USD…"}}}},{"node":{"slug":"/post/2023/03/adapting-reference-semantics-model-in-swiftui-the-basics-f521","title":"在 SwiftUI 中适配引用语义模型 -- 基础篇","subtitle":"","isPublished":true,"createdTime":"2023-03-02T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["SwiftUI","Swift","适配器模式","引用语义","Binding"],"category":"Programming","file":{"childMdx":{"excerpt":"介绍 最近，我的一位同事试图将引用语义模型用  ObservableObject  和  @StateObject  迁移到 SwiftUI。由于网上有很多关于用这种方式来迁移引用语义模型到 SwiftUI 的例子，在这篇文章中我不打算重点讨论这种方法的一般情况，而是想重点讨论在我和我的同事寻找答案使其代码正常工作的过程中发现的更有价值的三个话题。这些话题是： 在 SwiftUI 中真相源 (Source of Truth) 是什么？ 在 SwiftUI…"}}}},{"node":{"slug":"/post/2025/09/build-your-first-agentic-loop-9d22","title":"打造你的第一个 7x24 Agent 循环","subtitle":"","isPublished":true,"createdTime":"2025-09-25T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["AI","Agent"],"category":"Programming","file":{"childMdx":{"excerpt":"小趣闻：  2025 年 9 月，我在 Claude Code 上的用量飙到了  3000 美元 。 原因很简单：我把 Claude Code 放进了一个  7x24 agent 循环  里帮我打理业余项目。我睡着时，循环会评估现场、派生 subagents、让事情持续推进。等我醒来，进度已经悄悄向前走了一截。 但这种魔法并不是 Claude 独有；只要你理解了配置的精髓，就能把这个魔法复刻到任何实现了相同要件的模型与 agent runtime 上。 下面就带你从头搭建。 幕后的秘密 事实是：最新的 Claude 4、GPT-5 这类大模型已经在  agent…"}}}},{"node":{"slug":"/post/2026/06/i-gave-glm-5-2-eyes-d896","title":"为 GLM 5.2 添加视觉能力：动态 agent 间通信协议及多模态陷阱","subtitle":"","isPublished":true,"createdTime":"2026-06-29T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["AI","Agent"],"category":"Programming","file":{"childMdx":{"excerpt":"你有没有在 OpenCode 里给 GLM-5.2 发过图片？模型会告诉你它只处理文本，无法查看视觉内容。你只好接受这个限制，然后再换其他的方法。 更隐蔽的问题在后面。当 GLM-5.2 调用 browser-use 工具时，这些工具会进行「截图」，而模型会信誓旦旦地描述它「看到」的内容。可它其实一个像素都没真正看过。因为它读的是 AX tree，也就是某次单独 snapshot 调用返回的 accessibility metadata，然后把这些当成了视觉验证。AX tree…"}}}},{"node":{"slug":"/post/2026/05/has-claude-code-fallen-behind-codex-dbad","title":"Claude Code 落后 Codex 了吗？","subtitle":"","isPublished":true,"createdTime":"2026-05-26T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["AI","Agent"],"category":"Programming","file":{"childMdx":{"excerpt":"如果你关注编程 agent 之间的竞赛，那大概听过这个说法：Codex 今年势头很猛——更快、更便宜、更自主，在各项基准测试上和 Claude Code 几乎不分伯仲。如今不少开发者会优先选它。 速度和成本上，确实没得说——直到我试着把自己的一个 agent skill 迁到 Codex 上，撞上了一堵墙：问题不在模型本身，而在于 agent 被允许怎样和我对话。 那就先老实回答标题里的问题：对于手动操作的人来说，并没有——Codex 确实追上来了，但你用哪个都不吃亏；可对于想在它之上 搭建基于 skill 的工作流 的人来说，反而是 Claude Code…"}}}},{"node":{"slug":"/post/2026/07/1300-downloads-in-24-hours-6668","title":"我是如何做到 24 小时内 1300+ 海外下载的","subtitle":"","isPublished":true,"createdTime":"2026-07-03T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["AI","Agent","Product"],"category":"Programming","file":{"childMdx":{"excerpt":"大家好，我是 opencode-vision 插件作者。通过这个插件你可以在 OpenCode 使用纯文本模型（比如 GLM 5.2 或者 DeepSeek V4）作为主模型时，将视觉任务委托给在你 AI 订阅中的视觉模型上。 这个插件在我发布这个后的 24 小时内，npmjs.com 显示下载量达到了 1300+。但我犯了一个很低级、也很昂贵的错误：我在 Reddit 和 X 的首发内容里没有提及 GitHub 仓库。用户很难找到正确的反馈入口。更糟的是，opencode-vision…"}}}},{"node":{"slug":"/post/2026/05/how-i-built-the-dynamic-workflow-4-month-before-anthropic-3d29","title":"我是如何领先 Anthropic 四个月做出 Dynamic Workflow 的","subtitle":"","isPublished":true,"createdTime":"2026-05-29T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["AI","Agent"],"category":"Programming","file":{"childMdx":{"excerpt":"上周，Opus 4.8 与 Claude Code  dynamic workflows  同时发布。而早在四个月前，我就在 Opus 4.5 上构建了一个等效插件  charge ，只需提供 prompt，它就能创建并编排由 subagent 驱动的可复用工作流。 Charge 在这里是「冲锋」的意思——即很多个 subagents 冲锋帮你完成任务。 不久后，我便放弃了这个项目，因为事实证明，动态生成 subagent(s) 并复用其工作流只是个伪需求。不过，基于 subagent 的编排依然是我在 Claude Code 日常工作的核心。如今，我已转用  amplify…"}}}},{"node":{"slug":"/post/2025/03/when-the-swift-compiler-deleted-code-in-stdlib-9067","title":"当 Swift 编译器删除了标准库中的代码 - 记修复 Swift 6 中的冗余 Load 指令消除优化器","subtitle":"","isPublished":true,"createdTime":"2025-03-09T00:00:00.000Z","lastModifiedTime":null,"license":null,"tags":["Swift","Compiler"],"category":"Programming","file":{"childMdx":{"excerpt":"最新更新：苹果已接受该问题的修复。最终解决方案在相关代码所有者 review 后进行了调整。 蛇年春节假期前，一位同事向我展示了一个由 use-after-free（释放后使用）错误导致的神秘崩溃。最近，我有时间深入研究这个问题，并发现崩溃是由 Swift 编译器的错误编译引起的。下面是最小复现代码，必须使用  -Osize  优化级别编译。我们可以通过在编译过程中启用地址检查器（address sanitizer）来检测 use-after-free 问题。 有趣的是，将  AutoreleasingUnsafeMutablePointer…"}}}}]}},"pageContext":{"slug":"/zh-Hans/category/programming","locale":{"identifier":"zh-Hans","slug":"/zh-Hans"},"title":"Programming","showsPageTitle":true,"keywords":["WeZZard","Pieces of My Soul"],"description":"","items":["9257aedc-f111-5ad4-9d73-f6474d497ddb","0a062ef5-baa1-5248-995e-f7a91dbeb97a","6ad54098-95c6-5831-ada9-07a82bb659d6","21aa96bf-a1fc-5942-852c-61f445a812ef","c5ae3875-a67e-5af7-b1a3-6f84964d11e2","fc91b6bc-17af-54a8-9f29-dc69f93daae6","46abd102-d678-5362-9d51-00ffd4a02f90","50422053-00c8-522e-a118-2c12b7f4d13f"],"paginationInfo":{"basePath":"/zh-Hans/category/programming","pageIndex":0,"pagesCount":1,"previousPageTitle":"Earlier Posts","nextPageTitle":"Later Posts"}}}