{"slug": "six-questions-before-you-add-an-llm", "title": "Six questions before you add an LLM", "summary": "An AI implementation consultant warns against blindly adding LLMs to workflows, sharing a case where an LLM agent for prospect discovery produced 10-20% errors and was difficult to debug. The consultant proposes six questions to evaluate whether an LLM is necessary, emphasizing that LLMs trade determinism for flexibility and are not suitable for workflows requiring repeatable, identical outputs.", "body_md": "# Should you even use an LLM?\n\n## The Agent That Did Too Much\n\nI had a problem: as an AI implementation consultant, I had no automated pipeline to discover and qualify leads and insert them into my self-hosted Twenty CRM instance. I thought I could solve this whole problem using LLMs.\n\nThe first version of my prospect discovery system gave one LLM agent the full scouting pipeline: web search, deduplication, validation, and database insertion. About 10–20% of the prospects found were irrelevant, duplicated, or improperly inserted into the CRM. To make matters worse, the system was extremely difficult to debug, as each instance of the agent took a different approach and ran into its own unique process and tooling speed bumps. I ended up having to search through the entire list of 800+ prospects in the CRM manually myself, checking for duplicates and validating if the prospect was relevant. Clearly this solution wasn’t going to work as-is.\n\n## “Where Can We Use AI?” Is Backwards\n\nExecutives seem obsessed with implementing AI in any form possible. I often hear that AI adoption progress is measured using arbitrary metrics such as token usage or lines of code written, which don’t measure if AI is being used in a helpful or a harmful way. Large language models (LLMs) are fundamentally just a tool. If your CEO thinks AI is a hammer, and she wants to use that hammer for everything, then everything ends up looking like a nail. This is the wrong approach to AI solution architecture.\n\nThe goal should not be to say “we’re an AI-first company” or “our product uses AI”. The goal should be to solve the most pressing and relevant problems using the appropriate tools. LLMs are one of those tools. The first question asked should be “what problem are we solving?”, not “where can we apply AI?” When the problem to be solved is decided, only then can the solution be specified. What capabilities does the solution require? Where does the current solution, if any, fail? And is integrating an LLM into that solution actually necessary?\n\n## LLMs Trade Determinism for Flexibility\n\nEvery tool in the software development tool belt has strengths and weaknesses, and LLMs are no different. The question is not whether LLMs are useful, but whether the capabilities justify the trade offs they bring with them. LLMs provide flexibility by sacrificing determinism. They are useful when the work involved requires interpretation of natural language, synthesis across abundant or varied information, and step-by-step reasoning where the rules of a process can’t be specified before it begins.\n\nThese gains in flexibility result in losses in repeatability and determinism. LLMs produce variable output — that is, the same prompt given to the same model twice will produce tangibly different results. This makes testing and failure analysis much more difficult than for traditional code because success criteria are often subjective. Additionally, a process executed by an LLM will typically take much longer and cost more than the same workflow executed using plain code. These limitations mean that we need to evaluate the need for AI in a solution thoroughly before we blindly assume it will be helpful.\n\n## Six Questions Before You Add an LLM\n\nWhen evaluating if an LLM will be useful, it’s helpful to think through the decision using concrete questions.\n\n**Can the workflow that implements the solution be specified completely and in advance?** If yes, you may not need an LLM. Take, for example, a typical CI/CD pipeline: code is pushed to the remote, which triggers a workflow that lints, runs code tests, and deploys to a development environment. This workflow can be completely specified before it has commenced and runs the same way every time.**Must identical inputs produce identical outputs?** LLMs are nondeterministic. If your workflow needs to lead to the same output across identical inputs, you may want to consider excluding LLMs. For example: a payment system receives the same invoice, tax jurisdiction, and retry request twice. It must calculate the same total and avoid charging the customer twice.**Does the solution require interpreting ambiguity that arises during execution?** LLMs excel at ambiguity during execution. If a file isn’t located in the given folder, where should the solution look next? Deterministic rules can handle ambiguity up to a certain level, but traditional rule implementation requires thinking through in advance all the ways in which the solution’s execution could stray from the happy path. Note that this is different from “does the unexecuted solution have some ambiguity?” If the solution has ambiguity that can be resolved before execution begins, resolve the ambiguity and then use plain code.**Can the result of the solution be verified cheaply and accurately?** Everyone can vibe code now because code can be cheaply tested against explicit criteria. If the required functionality exists, the tests pass, and the server remains stable, the code can probably be deemed workable. On the other hand, verifying if a medical diagnosis is safe to recommend to a patient is time-intensive and requires specialized expertise. Generally, outputs that require large amounts of work and/or special human expertise to verify (is this legal advice correct?) or whose verification is time-bound (will this business strategy lead to success?) are often not good candidates for LLM use.**What happens when the output is wrong?**“When”, not “if”. Systems fail, and we must prepare for that. When the solution’s output is wrong, how severe are the consequences, and can the consequences be mitigated? A solution that mistakenly gives a customer a $15 discount is a much lower risk than one that gives a customer a $5000 discount. Wrong outputs can be mitigated by placing the solution further from the point of consequence: consider a chat bot that advises a human support agent about discounts they should provide instead of a bot that gives discounts directly to customers.**Does the LLM-based solution substantially outperform the simpler alternative?** I recommend the KISS methodology here (Keep It Simple, Stupid) — if there’s a code-based alternative that can achieve 95% of the quality (error rate, number of human interventions, cost, etc.) of an LLM-based solution, go with the code-based solution.\n\n## Applying the Framework to My Prospecting System\n\nIn my prospecting system, I originally had the LLM execute the entire prospecting pipeline, searching, deduplicating, validating, and DB insertion. The model would generate the search queries, execute the queries with an MCP web search tool, deduplicate the returned prospects against the ones currently in the DB, validate the prospects against my ideal client description, and then write the surviving list into the CRM. Because there were so many steps, it messed up often.\n\nLet’s use this example to think through the questions I outlined in the previous section.\n\n- Can the workflow be specified in advance? Yes — we just outlined the full workflow above.\n- Must identical inputs lead to identical outputs? Yes. If a prospect file is valid in one run, it should be valid in the next.\n- Does the solution require interpreting ambiguity that arises during execution? Yes — but not in all of the steps. Generating queries requires interpreting the types of prospects that already exist in the CRM and writing queries that will fill gaps. But other steps have no ambiguity: executing queries via Decodo search, deduplicating results from existing entries, and insertion into the CRM database.\n- Can the result of the solution be verified cheaply and accurately? Yes — I can verify if a prospect in the database fits my ideal client description by reading the name, company, and role title in ten seconds or less.\n- What happens when the output is wrong? In my case, nobody dies or loses large amounts of money. Maybe I accidentally send a message to a prospect twice, or I send a message to an invalid prospect, which can be corrected.\n- Does the LLM-based solution substantially outperform the simpler alternative? Yes — the alternative solution is that I think of queries myself, pass those to a deduplicating search script, manually validate prospects against my ideal client description and mark the most promising for insertion. Either that or I implement some sort of deterministic query-generating gap-filling system and a hacky regex keyword-matching validation system — neither of which would be very effective or time efficient.\n\n## Use the LLM Where Ambiguity Lives\n\nThe decision of whether or not to use an LLM is not straightforward. Trade offs have to be made: flexibility versus determinism, adaptability versus accuracy, cost versus performance. Even in my relatively simple prospecting system, the answers to the validation questions are not always a clear yes or no. I’ve found this often to be the case: usually a solution that contains an LLM also contains deterministic validation and process-automation code. The best solutions combine the strengths of LLMs with the strengths of deterministic code — it’s not a one-or-the-other decision.\n\nThough many problems can be solved using deterministic solutions and would not benefit from the addition of a large language model, we live in a time where many problems that previously could not be solved with a computer now can be. These solutions don’t require your engineers to spend hundreds of dollars in tokens every day — they require your team to evaluate the problem at hand and decide to use the right tool for the right job.\n\nWhere did replacing an LLM with deterministic code improve your system, and what new trade offs did that introduce?", "url": "https://wpnews.pro/news/six-questions-before-you-add-an-llm", "canonical_source": "https://cameronmpalmer.medium.com/should-you-even-use-an-llm-b4f3b7914f4d", "published_at": "2026-07-22 15:43:45+00:00", "updated_at": "2026-07-22 16:40:38.571629+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-agents", "ai-ethics"], "entities": ["Twenty CRM"], "alternates": {"html": "https://wpnews.pro/news/six-questions-before-you-add-an-llm", "markdown": "https://wpnews.pro/news/six-questions-before-you-add-an-llm.md", "text": "https://wpnews.pro/news/six-questions-before-you-add-an-llm.txt", "jsonld": "https://wpnews.pro/news/six-questions-before-you-add-an-llm.jsonld"}}