构建了一个 LLM 在结构上被禁止生成最终输出的 Agent,寻求反馈以及愿意尝试“攻破”它的人
摘要
作者描述了一个基于 LangGraph 构建的 AI Agent,旨在复现生产环境中的 Python 崩溃问题。其独特之处在于架构设计:LLM 负责规划行动,而确定性 Python 函数则生成最终测试代码,以确保可靠性。
在这里发帖是因为我最终确定的这种约束机制感觉有些奇特,我想知道是否有其他人做过类似的事情,或者认为我的想法有误。
**背景:** 我构建了一个用于复现生产环境 Python 崩溃的 Agent。你只需提供一个 Sentry URL,该 Agent 就会读取堆栈跟踪(stacktrace)和帧局部变量(frame locals),决定调用哪些工具(如仓库内省、依赖准备、沙箱执行等),并在 Docker 沙箱中运行所有操作。最终,它要么生成一个确定性的失败 pytest 测试(你可以直接粘贴到你的仓库中),要么在无法完全复现时提供一份结构化的调查报告。
**奇特之处:** LLM 在结构上不被允许编写最终的测试代码或审计工件(audit artifact)。这些字节数据来自一个纯确定性的 Python 函数,该函数仅以捕获的帧局部变量作为输入。Agent 可以进行规划、调用工具、从死胡同中恢复以及推理竞态条件,但当需要输出实际的测试/工件时,执行的是非 LLM 的代码路径。该工件始终标记为 llm_in_evidence_path: false。架构采用 LangGraph Supervisor 加上 11 个工具。Agent 的评估标准基于其确定性输出,而不仅仅是推理过程。
这种分离是否值得付出额外的复杂性,还是说我过度设计了?我目前大约有 800 个单元测试,但还没有真正的外部评估框架,我知道这才是真正的短板。如果你也在构建 Agent 并对这种架构有见解,我将真诚地感谢任何反馈。
另外:如果你手头有未解决的 Python Sentry 问题(尤其是涉及 Django/FastAPI/Celery/SQLAlchemy 的),我很乐意让它运行一遍,看看会发生什么。帧局部变量是关键,因此任何使用默认 Python SDK 设置的环境应该都能适用。请直接私信或留言,哪种方式方便用哪种。
相似文章
我为一家中型律所构建了一个多智能体 AI 系统——以下是真正有效(和无效)的做法
作者分享了在律所部署基于 Claude 和 LangGraph 的多智能体 AI 系统时的经验教训,重点介绍了基于置信度评分的任务交接机制的成功应用,以及防止幻觉产生所需的人机协作监管的重要性。
@dylan_works_: 写了一些我最近一直在研究的有趣发现:当 LLM agent 反复将自身经历改写成文本形式的“经验……
这篇研究博客文章表明,反复将 LLM agent 的经历改写成文本形式的“教训”往往会降低性能,而非提升性能。作者发现,在 ARC-AGI 和 ALFWorld 等基准测试中,情景记忆保留的效果优于抽象巩固。
本地LLM实战测试:代码生成、质量与速度权衡
作者构建了一个基准测试框架,用于评估本地LLM在自动生成Go代码方面的能力,重点聚焦SIEM流水线的日志解析器生成,并发布了对比质量与速度的测试结果。
PlayCoder:让LLM生成的GUI代码可玩
PlayEval基准与多智能体框架PlayCoder,通过迭代修复LLM生成的GUI应用,端到端可玩代码最高达20.3%。
@hwchase17: https://x.com/hwchase17/status/2053157547985834227
文章概述了一个系统的“智能体开发生命周期”(构建、测试、部署、监控),以有效创建和管理 AI 智能体,重点介绍了 LangChain、LangGraph 和 CrewAI 等关键框架。