我如何构建了一个调试工具,以及使用该工具的代理在其中发现了 bug

1 分•作者: vladimir_si•2 个月前
这个故事本可能永远不会发生,尽管我早就有了开发调试器的想法。一直没有一个触发点。但有一天,一个足够强大的触发点出现了,我搁置了项目,开始构建调试器,发誓再也不要遭受那样的痛苦了。 一点背景:我正在为人工智能解决方案开发者构建一个平台,这样任何人都可以舒适地进入并开展自己的初创项目。要实现这一点,还有很多工作要做。 我应该提到,我完全是基于原则使用代理编码来构建这个项目的。不是“感觉编码”——那是给那些只闻到“可能性”气息的业余爱好者用的——而是真正的代理编码,拥有一个结构清晰的工作流程,代理别无选择,只能遵守我设定的规则,在我构建的边界内行事。原则上,我没有亲手写过这个项目的任何一行代码。 于是,我正在进行日常工作,修复 Prompt Studio 工具中的一个 bug。我现在甚至不记得那个 bug 具体是什么了——它顽固地抵抗了我和我 Opus 的共同努力。但它拖延了太久,以至于我当时感到的是愤怒,而不仅仅是疲惫。就在那时我意识到:如果我当初没有进行这种低效的苦苦挣扎,而是直接去构建那个调试器,我现在早就解决了这个 bug。但我还是坚持了下来,坚持了下来,直到我赢了。 不用说,我的项目被搁置了,我开始构建调试器。由于这个想法已经酝酿了很长时间,第一个 Python 原型——六个模块——很快就被集成到平台中,作为一个内置的调试子系统。然后就到了实际测试的时候。我告诉代理:“使用 Revizor 来检查它自己。”接下来的三分半钟里,发生了以下情况: 代理启动了 Revizor,激活了其中的所有跟踪点,发现了几个 bug(4 或 5 个,我不记得确切数字了),修复了它们,并使用 Revizor 自己的工具运行了 199 个测试——全部通过!我惊呆了,无法用言语形容。 那时我明白了:平台的第一款产品不应该是 Prompt Studio——而应该是 Revizor。我用 Go 重写了它,并开始使用这个二进制文件,淘汰了那个作为原型的旧子系统。 随着时间的推移,Revizor 获得了扩展其功能的新工具。现在,在代理的指导下,它可以在一瞬间检查代码中的跟踪点,添加或删除它们。代理们将使用 Revizor 描述为“X 光视野”。这是其中一个代理的真实评论: Revizor 今天节省了多少时间? ● 大约 15-20 分钟。trace_search "elevation" 在 2 秒内显示了 5 个跟踪点的完整链条,确认了 elevation 的正确工作——如果没有它,我需要深入研究代码和日志,添加临时的 print() 语句,然后重启服务器。但真正的价值不在于那几分钟——而在于确定性:我不是在猜测它是否有效。我看到了。 不要相信代理:它总是夸大任何任务所谓的耗时。但它所说的“我不是在猜测——我看到了”是有价值的。如果在我当初与导致我构建它的那个 bug 搏斗时就已经有了这个调试器,调试工作本可以快很多倍。 现在我无法想象没有它而工作。我邀请您免费试用:有一个免费的社区版,一个无限制的 14 天试用期,以及——最重要、也是我所有产品一贯秉承的——周日无限版,专为那些在周末进行个人项目或开源工作的人士设计。 使用任何主流提供商(目前有六种选择)登录即可下载。 关于安全:平台不收集或存储任何个人数据——只存储您的内部 ID 和您的身份验证提供商的哈希值,以便下次识别您。Revizor 本身除了每天的许可证检查 ping 和周日无限版的同步时间外,不会从您的机器发送任何信息。企业许可证提供完全的静默。 试用 Revizor:https://ais-platform.dev/revizor
查看原文
This story might never have happened, even though I&#x27;d been carrying the idea for a debugger for a long time. There was no trigger. But one day a trigger appeared that was strong enough that I set the project aside to build the debugger and never suffer like that again.<p>A bit of backstory: I&#x27;m building a Platform for AI-solution developers, so anyone can come in and work on their own startups in a comfortable environment. There&#x27;s a lot of work ahead to make that happen.<p>I should mention that I&#x27;m building this entire project on principle using agentic coding. Not &quot;vibe-coding&quot; - that&#x27;s for amateurs who&#x27;ve caught a whiff of &quot;possibilities&quot; - but genuine agentic coding, with a clearly structured workflow where the agent has no choice but to play by the rules I&#x27;ve set, within the boundaries I&#x27;ve built. On principle, I haven&#x27;t written a single line of this project by hand.<p>So there I was, doing routine work, fixing bugs in the Prompt Studio tool. I don&#x27;t even remember now what exactly that bug was - it stubbornly resisted the combined efforts of me and my Opus. But it dragged on so long that I was feeling anger by that point, not just fatigue. And that&#x27;s when it hit me: if instead of this unproductive slog I&#x27;d just gone and built that debugger already, I&#x27;d have beaten this bug by now. But I kept going, and kept going, until I won.<p>Needless to say, my project got pushed aside and I started building the debugger. Since the idea had been maturing for a long time, the first Python prototype - six modules - was soon built into the Platform as a built-in debugging subsystem. Then came the time to test it in action. I told the agent: &quot;Use Revizor to check itself.&quot; Over the next three and a half minutes, this happened:<p>The agent launched Revizor, activated all the trace points in it, found several bugs (4 or 5, I don&#x27;t remember exactly), fixed them, and used Revizor&#x27;s own tools to run 199 tests - all green! I was so stunned I can&#x27;t describe it.<p>That&#x27;s when I understood: the Platform&#x27;s first product shouldn&#x27;t be Prompt Studio - it should be Revizor. I rewrote it in Go and started using the binary, retiring the old subsystem that had served as the prototype.<p>Over time, Revizor gained tools that expanded what it could do. Now, under the agent&#x27;s direction, it can check code for trace points, add them or remove them - all in a fraction of a second. Agents describe using Revizor as &quot;X-ray vision.&quot; Here&#x27;s a real comment from one:<p>How much time did Revizor save today?<p>● Roughly 15-20 minutes. trace_search &quot;elevation&quot; showed the full chain of 5 trace points in 2 seconds, confirming elevation works correctly - without it, I&#x27;d have needed to dig through code and logs, add temporary print() statements, restart the server. But the real value isn&#x27;t the minutes - it&#x27;s the certainty: I wasn&#x27;t guessing whether it worked. I saw it.<p>Don&#x27;t trust the agent: it always exaggerates how much time any task supposedly took. But there&#x27;s value in what it said - &quot;I wasn&#x27;t guessing - I saw it.&quot; If I&#x27;d already had this debugger back when I was wrestling with the bug that led me to build it, the debugging would have finished many times faster.<p>Now I can&#x27;t imagine my work without it. I invite you to try it for free: there&#x27;s a free Community tier, an unlimited 14-day trial, and - most important, and always true for all my products - Sunday Unlimited, made for people working on weekend passion projects or open-source work.<p>Sign in with any major provider (six options so far) to download it.<p>On security: the Platform doesn&#x27;t collect or store any personal data - only your internal ID and a hash of your auth provider, to recognize you next time. Revizor itself sends nothing from your machine except a daily license-check ping and a time sync for Sunday Unlimited. Enterprise licenses give complete silence.<p>Try Revizor: https:&#x2F;&#x2F;ais-platform.dev&#x2F;revizor