> For the complete documentation index, see [llms.txt](https://jamiewen00.gitbook.io/ai-engineering-handbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jamiewen00.gitbook.io/ai-engineering-handbook/building-ai-products/anti-patterns.md).

# Anti Patterns

Common failures that waste time and money. Extracted from [AI Engineering Anti-patterns](https://youtu.be/tng20xPUpWg) by Chip Huyen

#### ⛔️ Using GenAI Unnecessarily

Teams adopt generative AI for status, not solutions. Companies want bragging rights: "we use AI."

Example: Energy startup built GenAI for optimisation. A simple algorithm checking cheap hours works better.

#### ⛔️ Premature Complexity

Teams rush to complex solutions first. "I must climb that mountain" mentality. Some common mistakes

* Vector databases before basics
* Agent frameworks too early
* Fine-tuning before prompting

#### ⛔️ Bad Product or Bad AI? or Both?

> 💡 Technical excellence ≠ product success.

Meeting summaries example:

* ❌ Summary length (3 vs 5 sentences)
* ✅ Action items from meetings

LinkedIn job recommendations example:

* ❌ Match accuracy scores
* ✅ Skill gap identification

Tax chatbot example:

* ❌ Users don't know what to ask
* ✅ Suggest relevant FAQs

#### ⛔️ Not Understanding Users

<mark style="background-color:purple;">User experience</mark> means understanding human behaviour.

> 💡 Users want help, not judgment.

#### ⛔️ Overcomplicating RAG Systems

Teams rush to vector databases.

* **Start here**: Keyword search, clean data, smart chunking
* **Data prep matters**: Add context, include titles and keywords

#### ⛔️ Using Agent Frameworks too early

Agent frameworks create hidden complexity.

* ❌ Framework bugs become your bugs
* ❌ Starter prompts contain typos
* ❌ Performance fluctuates with framework changes
* ❌ Hard to diagnose root causes

[Direct API calls for simple tasks](https://www.anthropic.com/research/building-effective-agents) beat frameworks.

1. Build core logic with direct API calls
2. Measure performance with 100+ test cases
3. Identify specific bottlenecks frameworks solve
4. Only then evaluate if framework complexity is worth it

#### ⛔️ Lack of Human Evaluation

AI judges help but have limits. Add human evaluation.

Limitations:

* Models change
* Hard to track progress
* Teams lose touch with users
* Tools score differently

#### ⛔️ Not Localising Failures

Multi-step AI needs failure isolation.

* ❌ Resume extraction fails. Which step? PDF to text? Text to data?
* ✅ Debug each step separately.

#### ⛔️ Overindexing on Early Success

Weekend demos don't predict launch timelines. Demo = 20% of total work.

Production needs:

* Error handling
* User testing
* Performance tuning
* Infrastructure
* Security
* Monitoring
* ...and more

#### ⛔️ Giving Up Too Early

Teams quit after first failures. Find root causes. Fix them. Common causes:

* Bad product design
* No user research
* Poor evaluation

#### Issues

* Teams [couldn't update without breaking changes](https://shashankguda.medium.com/challenges-criticisms-of-langchain-b26afcef94e7) on 0.0.\* versions
* One team built POC with LangChain, [couldn't update without major code changes](https://content.techgig.com/technology/why-developers-are-not-using-langchain/articleshow/118705898.cms)
* [Syntax errors in framework scripts](https://www.reddit.com/r/AutoGPT/comments/13gpirj/autogpt_seems_nearly_unusable/) cause unpredictable failures
* [Direct API calls outperform LangChain](https://blogs.adityabh.is-a.dev/posts/langchain-vs-openai-simplicity-vs-scalability/) by 25% on average
* Frameworks add [layers that make systems slower](https://content.techgig.com/technology/why-developers-are-not-using-langchain/articleshow/118705898.cms) and harder to manage
* [Multi-step task failures](https://arxiv.org/abs/2505.00212) due to complex state handling
* When frameworks fail, you debug [framework code instead of your logic](https://medium.com/@ken_lin/why-smart-developers-are-moving-away-from-langchain-9ee97d988741)
* Framework updates modify [starter prompts without notice](https://www.taivo.ai/__why-autogpt-fails-and-how-to-fix-it/), breaking performance
* [Excessive abstraction obscures](https://medium.com/@ken_lin/why-smart-developers-are-moving-away-from-langchain-9ee97d988741) rather than simplifies
* [CrewAI execution loops](https://github.com/crewAIInc/crewAI/issues/737)
* [CrewAI production challenges](https://timothy-urista.medium.com/crew-ai-and-the-challenges-of-cloud-agentic-frameworks-6fd49cc5d909)
* [Why developers abandon LangChain](https://medium.com/@ken_lin/why-smart-developers-are-moving-away-from-langchain-9ee97d988741)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://jamiewen00.gitbook.io/ai-engineering-handbook/building-ai-products/anti-patterns.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
