随着人工智能编写的代码越来越多,我们需要更好的工具来提高AI的可信度。


如果你经常使用AI编程,你应该也会产生类似的问题:


  • “如果我重命名 UserId,影响范围会有多大?”
  • “此代码路径中哪些函数写入 Redis?”
  • “更新此 API 会影响哪些功能?”


Nuanced 正在构建将静态分析与人工智能相结合的工具,以更深入地理解代码行为。通过这种方式,可以帮助人类和机器从根本上理解代码行为。


为什么会有Nuanced的想法,这是因为大多数 AI 编程工具仍然将代码视为“散文”。实际上代码并非“散文”,代码是一种结构:控制流、调用边界、导入以及跨文件约束。如果没有这种结构,模型就会产生幻觉,忽略副作用,并消耗Token。

Nuanced采用的是静态分析,我考虑过让LLM来分析代码的调用链路,但是实测下来,LLM分析出来的调用链路也会存在幻觉问题,并且非常消耗token,所以,目前短期来看,静态分析是更好的解决方案。

更大的上下文窗口并不能解决这个问题。Nuanced认为重要的不是更多的上下文,而是正确的上下文。

nuanced逆向

python版本是开源的  github.com/nuanced-dev/nuanced

我们把代码下载下来,使用qwen-cli进行分析


得到文档后,查看下,由4个核心组件构成:

 1. CLI (命令行界面) – 提供用户交互接口,支持 init 和 enrich 命令

 2. CodeGraph (代码图) – 负责代码图的初始化、加载和增强操作,是系统的核心数据结构

 3. CallGraph (调用图生成器) – 使用 jarviscg 库生成函数调用图

 4. Utils (工具函数) – 提供超时处理、文件分组等辅助功能


——
原来是jarviscg,是从一个开源项目fork过来的



同样的原理,我们也用qwen来逆向下:


PythonJaRvis项目通过自研的Jarvis工具和第三方工具code2flow来生成Python代码的函数调用图。Jarvis工具通过静态分析技术,解析Python代码的语法树,识别函数定义和调用关系,构建完整的函数调用图。项目还提供了完整的评估框架来验证工具的有效性和准确性。 


原来是code2flow


code2flow 为动态语言(如 Python、JavaScript、Ruby 和 PHP)生成调用图,帮助解开“意大利面条”代码和识别孤立的函数。 它将源文件转换为 AST,查找函数定义,并根据函数调用和变量将它们连接起来。

——

Nuanced:AI 编程工具的语义理解层
语义理解层


除此之外,Nuanced的蓝图更大,他们提出了语义理解层:


增强代码生成:
通过在生成新代码之前了解代码含义,帮助 AI 工具做出更明智的决策。将静态分析与运行时行为相结合,使 AI 工具能够全面洞察代码的实际工作方式,从而编写更优质的代码。

系统范围的背景:
通过综合来自不同工具、日志、指标和部署环境的信息,帮助 AI 推理跨服务的交互。

语义调试:
为 AI 工具提供理解代码行为所需的上下文,从而在调试期间提供更清晰的解释,并对其选择进行更透明的推理。

不止静态分析。这是一个更丰富的知识图谱,它将整合:

  • 日志和错误报告中的生产行为
  • 系统性能指标和资源使用情况
  • 服务交互模式
  • 部署和配置上下文

Nuanced正在将这些操作数据转换为人工智能助手的结构化上下文。

Nuanced的产品


1 / Nuanced CLI 
帮助 AI 编程助手像经验丰富的开发人员一样理解您的代码。


2 / Nuanced MCP 服务器
这是最近发布的,需要付费购买,购买后会得到一个许可证密钥。使用它来验证私有的 npm 仓库并安装 TypeScript MCP 服务器。

有点意思,20美金


YC孵化

Nuanced是YC孵化的小型公司,资料显示只有2人,最早推出过检测AI图像的工具DEMO,后来转型到为AI编程工具提供语义层。



——

  • 太松散(纯自然语言) 
  • 太过死板(原始的 AST 手术) 

Nuanced 找到了中间层:基于确定性结构的对话式提示。

——

近期推荐:

涨薪30%,AI编程如何改变设计师和产品经理?