Agent 为什么越聊越笨:从上下文压缩想到的记忆问题
最近工作里开始比较重度地使用 GLM 5.3 配合 OpenCode。刚开始用的时候,我最大的感受是,现在的模型已经比我之前预期的“聪明”很多了。
有一次我需要排查一段 HQL 为什么在执行过程中被提示产生了笛卡尔积。这个问题本身涉及 HQL、Tez 的执行 DAG,以及任务实际运行时的一些信息。让我印象比较深的是,在一个新的会话里,我并不需要告诉 Agent 每一步应该怎么查。它有时候会自己判断,直接调用 Tez UI 的 API,查询对应 DAG、Vertex 和 Task 的运行信息,再沿着执行关系继续往下分析。我们内部也有离线沉淀的 Vertex Attempt 记录表,可以通过 HQL 查询类似的信息,但这种方式通常会慢很多。
也就是说,面对同一个问题,Agent 实际上拥有不止一种获取信息的路径。它既可以通过 Tez UI API 直接获取当前任务的执行信息,也可以去查离线记录。在状态比较好的时候,它会自己意识到 API 是更直接、更低成本的路径,于是先从这里入手,拿到结果以后继续分析哪些 Vertex 值得关注,再根据新的信息缩小排查范围。
这种感觉已经很接近和一个有经验的工程师合作了。我只需要告诉它“这段 HQL 为什么会提示产生笛卡尔积”,而不需要告诉它先查哪张表、看哪个字段、再关联什么数据。它能够自己选择工具,自己规划路径,也会根据中间结果调整下一步。