The Semantic Gap - 待解决的问题

我会感觉到一定是通过 agentic 的方法解决的,但是目前没有提出合理有效的框架来解决这个问题。

“语义鸿沟”:为什么从代码(Low-Level)到意图(High-Level)的转换如此困难?

AI,特别是当前的LLM,是强大的模式匹配文本生成引擎。它们可以理解和生成“代码”这种形式化语言。但软件工程的复杂性,恰恰在于代码之外的那些东西。

  1. “意图”的丢失 (Loss of Intent)

    • Low-Level (AI能看到的): 一行代码 Thread.sleep(3000);

    • High-Level (AI难以知道的): 这行代码的“意图”是什么?

      • 可能A (好的意图): 为了等待一个外部硬件设备完成初始化,3秒是经过精确测试的安全时间。

      • 可能B (坏的意图): 开发者为了临时解决一个偶发的数据库死锁问题,随手加上的“肮脏的”修复。

      • 可能C (历史遗留): 5年前写的,为了兼容一个早已下线的旧版API,现在已经完全没用了,但没人敢删。

    • 鸿沟: AI可以分析这行代码的语法和局部影响,但无法“验尸”般地还原写下它时的决策背景和真实意图。而“城市规划师”和“经济顾问”这样的角色,恰恰需要基于意图进行判断。

  2. “上下文”的无限性 (The Infinity of Context)

    • Low-Level: 一个函数,一个类,甚至一个代码仓库。

    • High-Level: 支撑这个代码仓库运行的完整“上下文”是什么?

      • 技术上下文: 部署的Kubernetes配置、CI/CD流水线、数据库的Schema、依赖的第三方API的SLA、公司的私有库……

      • 业务上下文: 这段代码对应的是哪个业务流程?(是用户注册,还是支付回调?)这个流程的商业价值有多大?最近的业务目标是什么?(是追求用户增长,还是提升付费转化率?)

      • 团队上下文: 团队的编码规范、Jira里的讨论、Slack里的争吵、某位资深工程师不成文的个人偏好……

    • 鸿沟: 一个真正的“agentic”系统,需要将这无限的、散落在各处的、非结构化的上下文全部纳入考量。目前的技术,让AI读完一个代码库已经很了不起,让它“理解”整个公司的运作方式,几乎是天方夜谭。

  3. “因果”的非线性 (The Non-Linearity of Causality)

    • Low-Level: 修改了A类的B方法。

    • High-Level: 这个修改最终导致了什么?

      • 直接因果 (AI容易捕捉): 导致了调用B方法的C类出现了Bug。

      • 间接因果 (AI极难捕捉): B方法的性能轻微下降了5%,导致整个系统的平均响应时间增加了50毫秒。这使得负载均衡器将更多的流量导向了备用服务器集群。备用集群的配置较低,导致在高并发时出现大量超时,最终在“黑色星期五”大促时,公司的订单成功率下降了1%。

    • 鸿沟: 真实的软件系统是一个复杂的、非线性的混沌系统。微小的扰动可能引发巨大的、意想不到的连锁反应(蝴蝶效应)。模拟这种复杂系统,需要的远不止是代码分析能力,而是对整个系统动态行为的深刻建模。

有意思的参考

https://cobusgreyling.medium.com/the-critical-gap-for-ai-agents-from-simple-task-automation-to-complex-work-completion-65d938409cda

https://www.wobby.ai/blog/the-semantic-layer-your-ai-agents-new-best-friend-or-why-they-keep-asking-about-revenue