严谨压缩:为何人工智能代理需要图结构,而非更多上下文

发布日期:2026-06-18 10:00:47   浏览量 :8
发布日期:2026-06-18 10:00:47  
8

代码代理可以完美地编辑一个函数。

但如果你向它提出一个全局性问题——“如果我更改这个,什么会出错?”、“在没有租户检查的情况下,这次写入能否运行?”、“这次迁移是否具有破坏性?”——它往往开始猜测。

有一段时间,我认为答案在于提高令牌效率。现在我认为更深层的问题是:你最初交给代理的事实是什么?

我最近在 Medium 上发表文章指出,只有当你围绕令牌支出重新设计工作——包括验证、上下文和工作流——而不是仅仅购买更多令牌时,令牌支出才会成为一种资产

这篇文章是从工程角度阐述这一观点。自那以后,我一直在寻找高效的令牌工具,并在没有合适工具时自行开发。接下来是我认为最具杠杆效应的部分:让每个令牌购买一个经过验证的事实,而不是一个猜测。(这只是我个人探索的结果,并非建议。)

令牌效率本质上是一个“你交付什么”的问题

“节省令牌”听起来像是一个关于压缩和缓存的故事——或者最近流行的说法是,给代理提供更多的上下文:更大的窗口、更多的检索。但在我的工作中,真正产生显著影响的并不是更多的上下文,而是我交给代理的那少数几个事实的质量。

代码代理在局部范围内表现强劲。在一个函数、一个差异块内,它们编写得非常出色。但对于全局事实——谁调用了这个、如果我更改它什么会出错、这次写入是否可以在没有租户检查的情况下运行、这次迁移是否具有破坏性——它们往往相当自信地进行猜测,有时还会出错。

因此,我认为有帮助的不是长长的分析日志或全仓库的 grep 搜索,而是简短、准确且有证据支持地交付那些全局事实。令牌效率的核心不在于节省,而在于每个令牌的最大信号量

你想要的全局事实大多是图结构问题

有趣的是,代理难以处理的大多数全局事实看起来都像图论问题。

  • 影响范围 —— 谁依赖于此?→ 调用/引用图上的可达性
  • 顺序与循环 —— 这些迁移能否以有效的顺序应用?→ 拓扑排序 + 循环检测(有向无环图)
  • “X 在 Y 之前” —— 所需的守卫是否在危险操作之前运行?→ 控制/调用图中的支配关系
  • 数据流 —— 不可信的输入能否到达此汇点?→ 数据流图上的可达性

depends-on(依赖于)、calls(调用)、flows-to(流向)、must-precede(必须先于)都是关系,而一组关系构成一个图。一旦你将代理难以自行推导的事实转化为图结构,它们往往就能清晰地呈现出来。

换句话说:这些事实中的每一个都可以用同一种语言来表述——依赖图。影响范围、顺序、守卫支配关系、数据流。这是向代理交付事实的通用语言

而且,你所需的工具集比你想像的要小:遍历、拓扑排序 + 循环检测、强连通分量、可达性、支配节点,偶尔需要最短路径或最大流算法。除此之外,我认为只要具备识别问题何时图结构问题的能力,就能覆盖大部分情况。

我想交给代理的事实看起来不像一段文字,而更像这样:

DB.GUARD_BYPASS  repo.rs:142  severity=high  quality=verified
  claim:   delete reachable without tenant guard
  missing: assert_tenant() does not dominate this sink
  path:    handler → repo.raw_delete

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 订阅 数据