From Vibes to Data-Driven Development: The AI Engineer Mindset
This article argues that building with LLMs requires a fundamental mindset shift from deterministic to probabilistic systems. The author introduces two concepts: the 'Vibes-Only Trough' (where demos appear to work but lack real-world coverage) and the 'Data-Driven Slope' (where systematic evaluation and user data guide improvements). Success criteria must be specific and measurable, such as 92% agreement with human labels for sentiment analysis, 95% of classifications within 500ms, and 90% match on high-confidence predictions. The key practice is collecting data from every user interaction - starting with simple thumbs up/down feedback and evolving into richer pipelines. The article honestly states that first versions usually fail due to insufficient data, and that performance volatility is inherent to probabilistic systems. The trick is tracking changes systematically and building a culture of iterative improvement based on real metrics. Aimed at engineers moving LLM apps to production and teams needing an evaluation-first culture.
Building with LLMs requires a fundamental shift in how you think about software development. You're no longer designing deterministic systems where inputs map to predictable outputs. Instead, you're working with probabilistic systems which are inherently unpredictable. To ship a great application, you need to clearly define your success criteria and build a culture of continuous improvement based on real user data.
使用 LLM 构建应用,要求你对软件开发的思考方式发生根本转变。你不再设计那种输入映射到可预测输出的确定性系统;相反,你在与本质不可预测的概率性系统打交道。要交付一款出色的应用,你需要清晰定义自己的成功标准,并建立一种基于真实用户数据持续改进的文化。
It's relatively simple to get a demo up and running. But productionizing an LLM-powered app is a different story:
The journey starts in what I call the "Vibes-Only Trough." You've got your app working with the LLM, tested it with a few examples, and it seems to be doing what you want. But when you put it in front of real users, they'll interact with it in ways you never imagined. The flexibility of natural language means users can push your system far beyond its intended use cases, exposing edge cases and failure modes you couldn't have predicted.
This is where systematic evaluation comes in. As you move up the "Data-Driven Slope," you build proper evaluation frameworks, collect data, and measure performance. You're no longer relying on vibes - you're making data-driven decisions about your app's performance.
做出一个演示(demo)相对简单,但把 LLM 应用生产化则是另一回事:
旅程从我称之为“仅凭感觉的低谷”(Vibes-Only Trough)开始。你已经让应用和 LLM 跑通了,用几个例子测过,似乎也符合预期。但当真实用户上手时,他们会以你从未想象过的方式与之互动。自然语言的灵活性意味着,用户可以把你的系统推到预期用例之外,暴露出你预料不到的边界情况和失败模式。
这时,系统性评估就该登场了。随着你走上“数据驱动的斜坡”(Data-Driven Slope),你会建立合适的评估框架、收集数据、衡量性能。你不再依赖感觉——你在基于数据对应用的表现做决策。
But the journey won't be straightforward. Your app's quality will swing wildly as you experiment. Some changes will make things better, others worse.
Don't panic - this volatility is built into the game. The trick is tracking these changes systematically and learning from each iteration. This is why we need a new approach to development, one that embraces the probabilistic nature of LLMs while maintaining rigorous evaluation practices.
但这条路不会一帆风顺。应用质量会在你的实验过程中剧烈波动:有些改动让它变好,有些则让它变差。
别慌——这种波动是这个游戏的一部分。诀窍在于系统地记录这些变化,并从每次迭代中学习。正因如此,我们需要一种新的开发方式:既拥抱 LLM 的概率性本质,又保持严谨的评估实践。
The first step in managing this probabilistic nature is defining what success looks like for your app. In traditional software, success criteria are often straightforward - a login system either works or it doesn't. But with LLM-powered apps, success is rarely binary.
Let's say you're building a sentiment analysis system that classifies customer reviews. What does "success" look like? You need specific, measurable criteria that align with your app's purpose:
Accuracy: 92% agreement with human expert sentiment labels across diverse industries
Response Time: 95% of classifications completed within 500ms
Confidence Scoring: 90% of high-confidence predictions (>0.9) should match human judgment
The key is making these criteria specific and measurable. Instead of vague "good performance" or impossible targets like 100% accuracy, use concrete numbers based on industry benchmarks. Even subjective metrics like "code quality" can be quantified - for example, "95% of generated functions pass all unit tests on first run."
Without clear, measurable success criteria, you'll never know if your changes are making things better or worse. And in the probabilistic world of LLM apps, that's a recipe for endless tweaking without real progress.
For a deeper dive into crafting effective success criteria, check out Anthropic's guide on defining success for LLM applications.
应对这种概率性本质的第一步,是明确你的应用“成功”长什么样。在传统软件中,成功标准往往非黑即白——登录系统要么能用,要么不能用。但对于 LLM 应用,成功很少是二元的。
假设你在构建一个对客户评论进行分类的情感分析系统。“成功”是什么样?你需要与产品定位一致、具体且可衡量的标准:
准确率:与人类专家情感标注的一致性达到 92%,且覆盖不同行业
响应时间:95% 的分类在 500ms 内完成
置信度评分:90% 的高置信度预测(>0.9)应与人类判断一致
关键在于让这些标准具体、可衡量。与其用模糊的“性能良好”,或者不切实际的 100% 准确率,不如依据行业基准采用具体数字。即使是“代码质量”这类主观指标也可以量化——例如:“95% 生成的函数在首次运行时通过全部单元测试。”
没有清晰、可衡量的成功标准,你永远不知道自己的改动是变好还是变坏。而在 LLM 应用的概率性世界里,这会让你陷入无休止的调参却看不到真正的进展。
想更深入掌握如何制定有效成功标准,可以看看 Anthropic 关于为 LLM 应用定义成功的指南。
Your app's performance is only as good as the data you collect about how it's being used. But collecting data isn't enough - you need to build a data-driven culture in your organization. This means making decisions based on real metrics, not gut feelings, and using that data to measure against your success criteria.
Every user interaction is a data point you can use to improve your app:
Improve Prompts: Use successful and failed responses to refine your prompt engineering
Fine-tune Models: Collect high-quality user interactions to create training data for model fine-tuning
Track Success Rates: Monitor which features or responses users find most helpful
Spot Edge Cases: Use failures to identify and handle unexpected scenarios
This can feel alien to traditional developers. Most write code, test it, and ship it. But with LLM-powered apps, you'll spend a lot of time staring at spreadsheets and tracking metrics. It's not glamorous work, but it's essential. The best AI engineers embrace this data-driven mindset, even when it means doing the boring stuff.
Start with simple feedback mechanisms like thumbs up/down buttons, then gradually build more sophisticated data collection as you learn what metrics matter most. I've heard that one of the largest code generation platforms has a dedicated Slack channel that alerts developers to investigate every downvote. Every negative interaction becomes a learning opportunity. If you can't measure it, you can't improve it.
你的应用表现,取决于你收集到的使用数据质量。但仅仅收集数据还不够——你需要在组织内建立数据驱动的文化。这意味着决策要依据真实指标,而不是直觉,并且用这些数据对照你的成功标准来评估。
每一次用户交互都是一个数据点,都能用来改进你的应用:
优化提示词:用成功和失败的响应来打磨 prompt engineering
微调模型:收集高质量的用户交互,作为模型微调的训练数据
追踪成功率:观察用户觉得哪些功能或响应最有帮助
发现边界情况:从失败中识别并处理那些未预料到的场景
这对传统开发者来说可能很陌生。大多数人写完代码、测一测,然后交付上线。但做 LLM 应用,你会花大量时间盯着电子表格、看指标。这活儿不风光,却是必不可少的。最优秀的 AI 工程师都拥抱这种数据驱动的思维方式,哪怕这意味着要做枯燥的工作。
先从简单的反馈机制开始,比如点赞/点踩按钮,然后随着你认清哪些指标最重要,再逐步搭建更精细的数据收集。我听说,最大的代码生成平台之一有一个专门的 Slack 频道,会提醒开发者去调查每一次点踩。每一次负向互动都变成一次学习机会。无法度量,就无法改进。
AI Hero · Skill System
Turn the mindset into a system
The skills that make the mindset show up in real work.
See the skill set
AI Hero · 技能系统
把思维方式变成一套体系
这些技能能让思维方式在实际工作中落地。
查看技能清单
Building LLM-powered apps requires a fundamental shift in mindset. You're moving from deterministic systems to probabilistic ones that need constant evaluation. Here's an uncomfortable truth: the first version of your app won't be great - you simply don't have enough data yet. But that's okay. The real magic happens when you build a culture of continuous improvement based on real user data.
The key isn't to eliminate uncertainty (that's impossible with LLMs), but to understand and manage it through systematic evaluation. Success comes from defining clear, measurable criteria and treating every user interaction as a learning opportunity. While this might feel foreign to traditional developers, it's essential to AI engineering.
In our next article, we'll dive deep into how to build evaluation systems - what we call "evals" - that help you understand and manage the probabilistic nature of your app. We'll explore how to create systematic ways to measure performance, track improvements, and make data-driven decisions about your app's development.
构建 LLM 应用需要思维模式的根本转变。你正从确定性系统转向需要持续评估的概率性系统。这里有个不太好接受的真相:你的第一个版本不会很好——因为你还没有足够的数据。但这没关系。真正的魔法,来自你基于真实用户数据建立持续改进的文化。
关键不在于消除不确定性(对 LLM 来说这不可能),而在于通过系统性评估去理解和管理它。成功来自定义清晰、可衡量的标准,并把每一次用户互动都当作学习机会。这也许让传统开发者感到陌生,但对 AI 工程来说至关重要。
在下一篇文章中,我们会深入探讨如何构建评估系统——我们称之为“evals”——帮助你理解并管理应用的概率性本质。我们会研究如何用系统化的方式衡量性能、追踪改进,并对应用开发做出数据驱动的决策。