从“你有个漏洞”到“这是根本原因”——在我的应用审查流程中加入人工智能代码分析

发布日期:2026-07-21 10:00:24  浏览量 :0
发布日期:2026-07-21 10:00:24  
0

太长不看版:我构建了一个应用评论处理流水线,用于分类错误和崩溃问题。它虽然有用,但仅停留在指出“出了什么问题”的层面。我对其进行了扩展,使其能够回答“代码中的哪个位置”以及“需要修改什么”——通过结合使用具备代码库探索工具的 PydanticAI 智能体实现,随后又将分析引擎设计为可插拔架构,以便使用 Grok Build、Claude Code 或 OpenAI Codex 作为后端。以下是我实现这一目标的过程、途中遇到的问题以及最终的架构设计。

起步阶段

我有一个名为 AppPulse 的命令行工具,用于监控我的应用评论和崩溃数据。每天早晨,它会执行以下操作:

  1. 从 Google Play 或 App Store 拉取新的评论

  2. 使用大语言模型对每条评论进行分类——错误、崩溃、功能请求、性能问题或好评

  3. 将评论与来自 Sentry 或 Firebase 的崩溃数据进行关联

  4. 向我发送摘要

apppulse run
# → "12 条新评论:3 个错误(1 个严重),2 个功能请求,7 个好评"

apppulse reviews --category bug
#  ID │ 评分 │ 摘要                              │ 严重程度
#  42 │  ★☆☆☆☆ │ 上传超过 10MB 的图片时照片上传崩溃 │ 严重

这确实非常有用。我知道了用户正在抱怨什么,以及哪些崩溃影响了最多的人。但该流水线仅止步于分类。当我看到“上传超过 10MB 的图片时照片上传崩溃”时,我仍然需要:

  1. 在集成开发环境中打开项目

  2. 搜索与上传相关的代码

  3. 交叉引用来自 Sentry 的堆栈跟踪信息

  4. 在脑海中将评论映射到实际代码

  5. 确定需要修改的内容

对于一个错误来说,这还可以接受。但在周一早上面对一批 5 个严重错误时,在我开始修复任何问题之前,就需要进行大量的手动工作。

我希望该流水线能更进一步——获取已分类的评论,指向导致问题的具体文件和行号,并提供一份我可以立即执行的简要报告。

第一版:具备代码库工具的 PydanticAI 智能体

核心思路很简单:通过只读工具让大语言模型智能体访问我的代码库,并让它像我自己一样调查错误。

为何选择 PydanticAI

我曾考虑过 LangGraph、LangChain,或者自行编写智能体循环。最终选择 PydanticAI 有三个原因:

  1. 默认提供结构化输出。我需要分析结果以经过验证的 Pydantic 模型形式返回,而不是需要我自行解析的自由格式文本。PydanticAI 会根据模式自动验证大语言模型的输出,如果出错,会使用修正指令进行重试。

  2. 依赖项占用极少。AppPulse 是一个轻量级的命令行工具。我不希望为了单个智能体的线性工作流而引入 LangChain 庞大的依赖树。

  3. 它已经支持我所使用的大语言模型提供商——OpenAI、Anthropic、Ollama。无需新的 API 密钥。

输出模型

每次分析都会生成一个经过验证的 AnalysisBrief

class AnalysisBrief(BaseModel):
    issue_type: str              # 错误 | 崩溃 | 功能请求
    summary: str                 # 一段话总结

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

分享到:

长按或扫码识别 分享给好友

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