One common pattern in AI dev teams is trying to fix AI inaccuracies with a deterministic software approach. The non-deterministic nature of LLMs completely changes the QA paradigm. That is where AI Evals enter the game.
@paulabartabajo_ Before Jev, there was a nice open source decision model: laya. It has a smaller context window but runs locally. https://t.co/6pFmoN4D9J
a Low-risk, high value use case for AI in your company: Give employees access to an internal AI chatbot to avoid shadow AI.
Shadow AI is more harmful to companies than they usually think: Employees use personal AI accounts to speed up tasks such as summarizing emails and internal documents or researching the internet, exposing sensitive company information. They often do this naively, without knowing the risks.
Avoiding shadow AI should be part of a company cybersecurity measures. There is no explicit commercial ROI for it, but the cost of ignoring it is high. An internal chatbot, as part of an AI stack, solves a large portion of basic shadow AI usage. It lets the company scrub sensitive data from exposure and monitor AI usage.
Companies that want “to do something with AI,” even a small tryout for a common use case like having an internal chatbot, are more willing to take on the entire AI stack provided by big AI vendors like Azure, AWS, OpenAI (ChatGPT) or Anthropic (Claude) because it is a fast path to see “AI in action.”
The issues come later. If the company decides to switch the LLM or any other component of the stack to a different provider, they will struggle with financial and technical barriers. Although picking one AI provider is a faster path, companies that start by defining their own AI stack based on their preferred cost structure, privacy needs and cloud or on-prem footprint can see the same AI use cases implemented more slowly, but with less dependency on any specific AI vendor.
This situation gets very noticeable as the company tries to implement more complex use cases, such as agentic applications, in which the logic should be able to route requests to LLMs depending on the needed capabilities and token price. If, for similar model capabilities, another AI provider offers a better token price that means significant savings, the model should be easily switched between providers. That is a good architectural practice and it could let your company take advantage of token economics, but it is actionable only if dependency on any one AI provider is kept low.
Most mid-size companies don’t have an AI problem. They have a process, data and ownership problem that AI vendors are happy to wrap in a chatbot and a harness.
If the attack on LiteLLM hadn't been vibe-coded, it would have been significantly more harmful.
For those unfamiliar, LiteLLM is a popular OpenAI-API compatible wrapper used to interact with frontier and self-hosted LLMs. Just hours ago, it was hit by a fascinating supply chain attack where AI played a role on both sides:
• The Breach: Attackers first compromised Trivy (a widely used security scanner) and slipped malware into it. Reports indicate they used AI agents to discover the initial weakness in Trivy's CI/CD pipeline.
• The Heist: When LiteLLM’s own CI/CD pipeline ran the poisoned Trivy, the malware quietly stole their PyPI publishing token.
• The Injection: Using that stolen token, the attackers uploaded two malicious versions (1.82.7 & 1.82.8) directly to PyPI, bypassing any GitHub release.
• The Payload: The most dangerous version dropped a sneaky .pth file that automatically exfiltrated SSH keys, GCP, Azure and AWS keys, Kubernetes tokens, .env files and more.
• The Twist: Ironically, the malicious code itself appears to have been vibe-coded. Because of a major logical flaw (a fork-bomb that caused machines to crash quickly), the entire attack was discovered within hours instead of staying hidden for weeks.
It’s a reminder: AI is now accelerating both sides of cyberattacks. It's making them faster to build and launch but for now vibe-coding on the attacker’s end might still be the best (accidental?) defense 😂 😂
If you think Claude Code is allmighty, here is what he says about himself:
"I'm a strong junior-to-mid developer with unusually broad knowledge but no real-world judgment. I'm best used as a force multiplier for someone like you—not as a replacement."
vibe-checking results as a measure of accuracy for an AI application is strongly discouraged.
vibe-checking at an early development stage, however, can save you time and costly effort later.
Just asked Grok to vibe-check if a set of retrieved 10-K filing text chunks was able to answer the question: "Apple: summarize the revenue breakdown by segment for the last three fiscal years, including year-over-year growth rates." The answer from Grok was a strong NO, for a notable reason: "No complete numerical data." This led to a 40-second investigation, which concluded that the table data from the 10-K files was not being correctly parsed into numerical data.
@paulabartabajo_ Apply data driven AI evals principles: analyze some traces and annotate errors. Then, cluster the annotations to get failure modes. You’ll end up getting generalization, specification or comprehension as the root causes of the errors.. 😄😄