太长不看版:我构建了一个应用评论处理流水线,用于分类错误和崩溃问题。它虽然有用,但仅停留在指出“出了什么问题”的层面。我对其进行了扩展,使其能够回答“代码中的哪个位置”以及“需要修改什么”——通过结合使用具备代码库探索工具的 PydanticAI 智能体实现,随后又将分析引擎设计为可插拔架构,以便使用 Grok Build、Claude Code 或 OpenAI Codex 作为后端。以下是我实现这一目标的过程、途中遇到的问题以及最终的架构设计。
起步阶段
我有一个名为 AppPulse 的命令行工具,用于监控我的应用评论和崩溃数据。每天早晨,它会执行以下操作:
从 Google Play 或 App Store 拉取新的评论
使用大语言模型对每条评论进行分类——错误、崩溃、功能请求、性能问题或好评
将评论与来自 Sentry 或 Firebase 的崩溃数据进行关联
向我发送摘要
apppulse run
# → "12 条新评论:3 个错误(1 个严重),2 个功能请求,7 个好评"
apppulse reviews --category bug
# ID │ 评分 │ 摘要 │ 严重程度
# 42 │ ★☆☆☆☆ │ 上传超过 10MB 的图片时照片上传崩溃 │ 严重
这确实非常有用。我知道了用户正在抱怨什么,以及哪些崩溃影响了最多的人。但该流水线仅止步于分类。当我看到“上传超过 10MB 的图片时照片上传崩溃”时,我仍然需要:
在集成开发环境中打开项目
搜索与上传相关的代码
交叉引用来自 Sentry 的堆栈跟踪信息
在脑海中将评论映射到实际代码
确定需要修改的内容
对于一个错误来说,这还可以接受。但在周一早上面对一批 5 个严重错误时,在我开始修复任何问题之前,就需要进行大量的手动工作。
我希望该流水线能更进一步——获取已分类的评论,指向导致问题的具体文件和行号,并提供一份我可以立即执行的简要报告。
第一版:具备代码库工具的 PydanticAI 智能体
核心思路很简单:通过只读工具让大语言模型智能体访问我的代码库,并让它像我自己一样调查错误。
为何选择 PydanticAI
我曾考虑过 LangGraph、LangChain,或者自行编写智能体循环。最终选择 PydanticAI 有三个原因:
默认提供结构化输出。我需要分析结果以经过验证的 Pydantic 模型形式返回,而不是需要我自行解析的自由格式文本。PydanticAI 会根据模式自动验证大语言模型的输出,如果出错,会使用修正指令进行重试。
依赖项占用极少。AppPulse 是一个轻量级的命令行工具。我不希望为了单个智能体的线性工作流而引入 LangChain 庞大的依赖树。
它已经支持我所使用的大语言模型提供商——OpenAI、Anthropic、Ollama。无需新的 API 密钥。
输出模型
每次分析都会生成一个经过验证的 AnalysisBrief:
class AnalysisBrief(BaseModel):
issue_type: str # 错误 | 崩溃 | 功能请求
summary: str # 一段话总结
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。
下一篇 :
如何通过屏幕截图快速生成错误报告提示
分享到:
长按或扫码识别 分享给好友