From Mega-Prompts to Production: Lessons Learned Scaling LLMs in Enterprise Customer Support

godaddy · E-commerce · 2024 · source Agentic: yes · promotional bias: low · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: enterprise customer-support LLM operations

GoDaddy's Digital Care team needed to operationalize LLM-powered customer support across high-volume messaging channels while controlling prompt bloat, model reliability, latency, structured-output failures, unsafe escalation decisions, memory limits, RAG quality, and testing effort.

Constraints:

Architecture

GoDaddy evolved its AI Assistant from a single mega-prompt into a controller-delegate, multi-prompt support architecture. A controller prompt manages the conversation and delegates to task-oriented prompts for support-topic classification, human-agent summaries, RAG/search, structured-response tasks, and self-help flows. Deterministic guardrails handle PII/offensive-content checks, stop phrases, interaction limits, human transfer, and external approvals. Supporting layers manage memory, model selection, retries/streaming/asynchronous response, RAG data preparation, and QA reporting for post-release review.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  messaging-channels["Messaging channels"] --> controller-prompt["Controller prompt"]
  controller-prompt --> task-oriented-delegate-prompts["Task-oriented delegate prompts"]
  controller-prompt --> memory-manager["Memory manager"]
  controller-prompt --> guardrail-controls["Guardrail controls"]
  task-oriented-delegate-prompts --> structured-output-validator["Structured-output validator"]
  task-oriented-delegate-prompts --> rag-and-search-tools["RAG and search tools"]
  task-oriented-delegate-prompts --> human-support-queue["Human support queue"]
  rag-and-search-tools --> rag-data-preparation["RAG data preparation"]
  guardrail-controls --> human-support-queue
  memory-manager --> model-selector["Model selector"]
  async-and-streaming-response-layer["Async and streaming response layer"] --> messaging-channels
  async-and-streaming-response-layer --> controller-prompt
  qa-reporting-and-review["QA reporting and review"] --> controller-prompt
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Messaging channels Receives customer-support conversations over SMS, WhatsApp, and web. Controller prompt
Controller prompt Maintains the general conversation and decides when to delegate to task-oriented prompts. Task-oriented delegate prompts, Memory manager, Guardrail controls
Task-oriented delegate prompts Handle narrow tasks such as topic-specific questions, human-agent summaries, self-help flows, and structured-response generation. Structured-output validator, RAG and search tools, Human support queue
RAG and search tools Retrieve support articles, dynamic instructions, standard questions, and Knowledge Base content when the conversation has enough context. Task-oriented delegate prompts, RAG data preparation
RAG data preparation Converts raw support content into model-useful representations, stores SPR documents in a vector store, and explores clustering to reduce duplication. RAG and search tools
Structured-output validator Validates JSON/function-style model outputs and compensates for known structured-response failure modes. Task-oriented delegate prompts
Guardrail controls Applies PII/offensive-content checks, stop phrases, interaction limits, external approvals, and default human intervention. Controller prompt, Human support queue
Human support queue Receives routed conversations and summaries for GoDaddy Guides or other support agents. —
Memory manager Controls conversation context through full retention, summarization, entity tracking, recent-message retention, tool-result pruning, and proposed delegate stacks. Controller prompt, Model selector
Model selector Explores changing providers or model context sizes dynamically for reliability, cost, context-limit, outage, and customer-priority conditions. Controller prompt
Async and streaming response layer Mitigates slow completions and upstream timeouts through retries, asynchronous acknowledgements, outbound APIs, and streaming APIs. Messaging channels, Controller prompt
QA reporting and review Aggregates LLM outputs and supports multidisciplinary review of transcripts after major releases. Controller prompt

Data flow

A customer message arrives through SMS, WhatsApp, or web chat. The controller prompt continues the conversation until it can classify the support topic or delegate to a specialized task prompt. Delegates collect information, run searches/RAG when the intent is known, produce structured outputs that are validated, or summarize context for a human Guide. Guardrails and deterministic controls can override model decisions for transfer, interaction limits, sensitive actions, PII, and offensive content, while memory and model-routing layers adjust context and serving choices.

4 supporting quotes
“The assistant would communicate with the customer until it could classify the conversation into one of twenty support topics we use to bucket our support inquiries.”article, stated
“the mega-prompt serves as a controller that passes the conversation to task-oriented prompts (delegates).”article, stated
“During a conversation the prompt can return a response indicating an action should be invoked with a set of parameters”article, stated
“We use deterministic methods in chat systems to decide when to transfer conversations to humans.”article, stated

Why this architecture

GoDaddy moved toward controller-delegate prompts because a single prompt became too expensive, too long, and less accurate as support topics, questions, memory, and RAG context grew. The surrounding architecture exists to bound probabilistic model behavior, preserve customer experience under latency/reliability failures, and keep humans in the loop where actions are risky or uncertain.

4 supporting quotes
“The new prompt bloated to over 1500 tokens by the time we launched our second experiment, leading to high ambient costs and occasionally exceeding token limits”article, stated
“We soon realized that transitioning to task-oriented prompts could achieve greater efficiency in complicated conversational flows.”article, stated
“Allowing the controller prompt to establish when to delegate to another prompt has simplified our code base while enhancing our chatbot's capability.”article, stated
“some actions should not be left for the model to decide.”article, stated

Models used: ChatGPT 3.5 Turbo · ChatGPT 3.5 Turbo 0603 · ChatGPT 3.5 Turbo 1106 · ChatGPT 4.0 · OpenAI GPT models · Anthropic Claude · Titan · LLaMa · LLM agents with tools · Sparse Priming Representations

Scale

Alternatives considered (roads not taken)

single mega-prompt for all customer interactions

Rejected because: The prompt became costly, hit token limits in long conversations, declined in accuracy, and handled many tasks poorly.

“Essentially, we followed the mega-prompt approach – creating a single prompt to cater to all user interactions.”article, stated
“The accuracy of our prompts also declined as we incorporated new instructions and contexts.”article, stated

only task-oriented prompts

Rejected because: Task prompts improve narrow flows but are not suitable for general open-ended conversations.

“Task-oriented prompts focus on a single task, such as "collect a coffee order," enabling authors to give concise instructions with fewer tokens”article, stated
“However, the specificity of task-oriented prompts means they aren't suitable for general, open-ended conversations.”article, stated

deterministic code alone to route to prompts

Rejected because: The earliest blend was rigid, so the team moved toward controller prompts that decide when to delegate.

“Our earliest attempt at blending both strategies was somewhat rigid, depending heavily on deterministic code to decide when to direct the conversation to a specific prompt.”article, stated
“The team shifted its focus towards building a multi-prompt architecture using the Controller-Delegate pattern”article, stated

let the model decide all human-transfer decisions

Rejected because: Users were sometimes stuck with an LLM that refused to transfer, so GoDaddy moved transfer decisions into deterministic controls.

“One critical error we made in early experiments was allowing models to determine when to transfer to humans without an escape hatch for the user.”article, stated
“We use deterministic methods in chat systems to decide when to transfer conversations to humans.”article, stated

retrieve RAG documents on every prompt invocation

Rejected because: Early customer messages are often pleasantries, so premature retrieval focused the model on the wrong content and reduced accuracy.

“Our initial implementations of RAG involved executing queries on every prompt invocation based on the user's message. The results were unimpressive.”article, stated
“When we retrieved documents prematurely, we decreased the accuracy of the generation by focusing the model's attention on the wrong content.”article, stated

keep raw support content unchanged for RAG

Rejected because: Flowery and redundant source documents increase token use and may hurt prediction quality.

“Most documents (articles, websites, etc.) contain flowery language and redundant information.”article, stated
“If the model is reading that information often, the extra content will equate to more tokens used by the model and probably hurt the performance of the prediction.”article, stated

fully automated testing for natural-language conversations

Rejected because: The range of natural-language inputs is effectively infinite, and LLM-based automated testing can be cost-prohibitive at CI scale.

“Since the range of inputs in natural language is infinite, it's impossible to create automated tests past the first few user interactions.”article, stated
“even this strategy seems cost-prohibitive, especially when you can run thousands of tests multiple times daily from a CI pipeline.”article, stated

Patterns

multi-agent-orchestration (architecture)

GoDaddy moved from one prompt toward a controller-delegate multi-prompt architecture where a controller decides when to hand the conversation to specialized delegates.

“The team shifted its focus towards building a multi-prompt architecture using the Controller-Delegate pattern”article, stated
“the mega-prompt serves as a controller that passes the conversation to task-oriented prompts (delegates).”article, stated

tool-use-orchestration (architecture)

The assistant uses agent-style prompts that can request actions with parameters, let software execute the action, and feed the result back into the prompt.

“An LLM Agent is a prompt paired with a set of actions (tools).”article, stated
“The software managing the Agent performs the action ("call weather.com") and provides the results back to the prompt as a new message.”article, stated

rag-retrieval (knowledge access)

GoDaddy uses RAG for support content, dynamic instructions, standard support questions, and agent-crafted search terms once enough intent information is collected.

“RAG works by retrieving information from an external source, adding the content to a prompt, and then invoking an LLM.”article, stated
“The second pattern involves allowing the model to decide when it collected enough information to craft its own search terms (implemented as an LLM Agent).”article, stated

structured-output-contract (reliability)

The team requests structured outputs when needed but validates them, uses functions when available, and considers parallel prompts for user-facing text versus machine-readable structure.

“Structured responses, such as JSON or code, should be requested as needed from the AI model.”article, stated
“However, it is crucial to validate the outputted responses.”article, stated

safety-policy-enforcement (guardrails)

GoDaddy adds guardrails for PII, offensive content, prompt instructions, bot interaction limits, sensitive-action approval, and model-independent human transfer controls.

“our chat systems (and other tools) use controls to check for personally identifiable information and offensive content in AI responses, user messages, and prompt instructions.”article, stated
“We ensure sensitive actions that could negatively impact a customer get approvals through channels external to the LLM.”article, stated

human-in-the-loop-gate (control)

Human support agents receive summaries and handle uncertain or risky situations, with deterministic transfer paths and external approvals rather than model-only decisions.

“when a user needed to transfer to a human agent, we would execute a task to extract vital information to provide a summary for the human agent.”article, stated
“when the situation is uncertain, we default to human intervention, as specific actions pose a risk not worth taking given the current capabilities of AI.”article, stated

fallback-degradation (resilience)

The team considers provider switching, retries, degraded operation, asynchronous responses, streaming APIs, and redundant calls to handle outages, failures, and slow completions.

“a multi-hour outage of ChatGPT that rendered our chatbots inoperable. In an ideal scenario, we would have been able to change providers and continue our operations”article, stated
“Implementing basic retry logic in calls to LLMs mitigates most of the reliability problems.”article, stated

context-compaction (memory)

GoDaddy manages conversation context through summarization, entity tracking, recent-context retention, tool-result removal, and possible controller/delegate memory stacks.

“For longer conversations, summarizing the earlier parts of the conversation, tracking named entities, and retaining as much of the latter conversation as possible has served us well.”article, stated
“The core idea is to provide ephemeral working memory to delegate prompts, but to reap (and summarize) the results when the focus of the conversation moves back to the controller.”article, stated

model-routing (routing)

The team explores changing models dynamically for outages, context limits, support-contact surges, dissatisfied customers, reliability, and cost.

“the need to change models dynamically to address reliability and cost concerns.”article, stated
“switching to higher context models when conversations approach memory limits”article, stated

eval-driven-development (quality)

The deployment process relies on continuous prompt testing, output aggregation, QA review, and multidisciplinary transcript swarms after releases.

“Minor changes to prompts can have a significant impact on their performance.”article, stated
“We recommend building the reporting systems necessary to aggregate LLM outputs for review by QA teams.”article, stated

latency-optimization (performance)

GoDaddy mitigates slow model calls through retries, asynchronous acknowledgement, outbound APIs, and streaming responses while accounting for timeout limits.

“LLMs are forcing us towards asynchronous responses (i.e., acknowledge the request from the provider and send messages to customers using APIs).”article, stated
“adopting the streaming APIs provided by LLM providers. While implementing a stream API is more complex, it has the potential to provide a far better user experience.”article, stated

Tradeoffs

Prompt architecture

Chose controller-delegate multi-prompt architecture over one growing mega-prompt.

Rationale: The controller preserves open conversation while delegates keep individual tasks concise, cheaper, and more accurate.

3 supporting quotes
“We soon realized that transitioning to task-oriented prompts could achieve greater efficiency in complicated conversational flows.”article, stated
“However, the specificity of task-oriented prompts means they aren't suitable for general, open-ended conversations. We needed to strike a balance between both strategies.”article, stated
“the mega-prompt serves as a controller that passes the conversation to task-oriented prompts (delegates).”article, stated

Structured response handling

Chose validated structured outputs and native functions when available over trusting raw conversational model output.

Rationale: Structured outputs remained fallible, and validation was necessary to protect downstream systems.

3 supporting quotes
“Structured responses, such as JSON or code, should be requested as needed from the AI model.”article, stated
“Some models, including ChatGPT functions, already have integrated capabilities for generating structured outputs. However, it is crucial to validate the outputted responses.”article, stated
“we experinece invalid output on 1% of ChatGPT 3.5 and 0.25% of ChatGPT 4 requests”article, stated

Human transfer and risky actions

Chose deterministic controls and external approval channels over model judgment alone.

Rationale: Some support decisions are too risky for probabilistic model behavior, especially transfer refusal or sensitive customer-impacting actions.

“These failures clearly warned us that some actions should not be left for the model to decide.”article, stated
“We ensure sensitive actions that could negatively impact a customer get approvals through channels external to the LLM.”article, stated

Latency mitigation

Chose retry, asynchronous messaging, and streaming APIs over blocking synchronous chat calls only.

Rationale: LLM completions can fail or exceed upstream timeouts, and chat customers should not inherit poor model latency as a support problem.

3 supporting quotes
“Our system was particularly susceptible to latency because our upstream communication provider has a 30-second timeout on calls to our integration.”article, stated
“acknowledge the request from the provider and send messages to customers using APIs”article, stated
“While implementing a stream API is more complex, it has the potential to provide a far better user experience.”article, stated

Conversation memory

Chose selective summarization, entity tracking, recent-context retention, and tool-result pruning over always retaining every message and tool output in a large context.

Rationale: Large contexts cost more and can make the model fixate on repeated concepts, recent tokens, or tool outcomes.

3 supporting quotes
“More context is only sometimes better (as mentioned in the first point about mega vs. task-oriented prompts), as it may cause models to fixate on repeated concepts”article, stated
“For longer conversations, summarizing the earlier parts of the conversation, tracking named entities, and retaining as much of the latter conversation as possible has served us well.”article, stated
“Retaining the messages has led to unpredictability in the model, including a fixation on the results.”article, stated

RAG timing

Chose intent-aware RAG and agent-crafted search terms over running retrieval on every prompt invocation.

Rationale: The team found early retrieval based on pleasantries harmed generation accuracy, while waiting for enough intent context improved relevance.

3 supporting quotes
“Our initial implementations of RAG involved executing queries on every prompt invocation based on the user's message. The results were unimpressive.”article, stated
“The second pattern involves allowing the model to decide when it collected enough information to craft its own search terms”article, stated
“Using the model to craft search queries resulted in improved relevancy on Knowledge Base searches”article, stated

RAG content representation

Chose SPR-compressed and clustered representations in a vector store over raw, redundant knowledge-base documents.

Rationale: Compressed and clustered representations reduce token usage and may widen the retrieved knowledge space when many similar documents exist.

3 supporting quotes
“Instead of using the raw content, we are refining our content using [Sparse Priming Representations (SPRs)]”article, stated
“While we have yet to operationalize this technique, early tests are promising. On average, we see an over 50% reduction in token usage”article, stated
“the approach will improve performance by reducing duplication and widening the knowledge space when content is retrieved.”article, stated

Runtime model strategy

Chose adaptive model selection over one fixed provider and context-size choice.

Rationale: Different providers, context windows, outage conditions, support surges, and dissatisfied customers create different reliability, cost, and capability needs.

3 supporting quotes
“the need to change models dynamically to address reliability and cost concerns.”article, stated
“We can apply the same concept to minimize support costs during product outages that cause surges in support contacts”article, stated
“or to leverage more accurate (and expensive) models when addressing dissatisfied customers.”article, stated

Gotchas (what bit them)

Mega-prompts became costly, brittle, and less accurate as scope grew.

Root cause: A single prompt absorbed more topics, questions, instructions, contexts, and RAG content than it could handle cleanly.

Resolution: Use task-oriented delegates at key transitions, coordinated by a controller prompt.

3 supporting quotes
“The new prompt bloated to over 1500 tokens by the time we launched our second experiment, leading to high ambient costs and occasionally exceeding token limits”article, stated
“The accuracy of our prompts also declined as we incorporated new instructions and contexts.”article, stated
“Task-oriented prompts focus on a single task, such as "collect a coffee order," enabling authors to give concise instructions with fewer tokens”article, stated

Structured responses were still invalid even with function-style support.

Root cause: LLMs designed for conversational responses can mix text and structure or produce malformed machine-readable output.

Resolution: Validate structured outputs, use native function capabilities where possible, lower temperature, and consider parallel prompts.

3 supporting quotes
“Before introducing functions, our initial trials with ChatGPT 3.5 Turbo presented significant reliability challenges.”article, stated
“ChatGPT functions boosted accuracy levels, although they weren't perfect”article, stated
“If you're utilizing models without native structured responses or using more affordable models, consider deploying two parallel prompts during a chat cycle”article, stated

Prompts did not transfer reliably across models or model versions.

Root cause: Different models and versions behaved differently under the same support prompts.

Resolution: Continuously fine-tune and test prompts against the specific model/version being used.

3 supporting quotes
“Our findings show that not only is this untrue, but even different versions of the same model”article, stated
“we tuned the prompts for each model. As a result, we noticed improved performance and fewer issues in the ChatGPT 3.5 cohort.”article, stated
“teams must continuously fine-tune and test prompts to validate their performance as intended.”article, stated

Model-controlled transfer could strand users.

Root cause: The model sometimes refused to transfer to humans when users needed an escape hatch.

Resolution: Use deterministic stop phrases, bot-interaction limits, external approvals, and default human intervention for uncertain cases.

3 supporting quotes
“allowing models to determine when to transfer to humans without an escape hatch for the user. Users were sometimes stuck with an LLM that refused to transfer.”article, stated
“we depend on code-identified stop phrases instead of the model's judgment.”article, stated
“we default to human intervention, as specific actions pose a risk not worth taking given the current capabilities of AI.”article, stated

LLM calls were slow and unreliable for real-time chat.

Root cause: Provider failures, larger-context models, growing token sizes, and upstream timeout constraints all affected chat responsiveness.

Resolution: Use retry logic, consider redundant parallel calls, move toward asynchronous responses, and adopt streaming APIs when possible.

3 supporting quotes
“A huge lesson we learned operationalizing models is that they can be slow and unreliable.”article, stated
“Implementing basic retry logic in calls to LLMs mitigates most of the reliability problems.”article, stated
“LLMs are forcing us towards asynchronous responses”article, stated

More context was not always better.

Root cause: Large contexts can be cost-prohibitive and can cause models to fixate on repeated or recent content.

Resolution: Retain short conversations whole, summarize earlier portions of long conversations, track entities, keep recent context, and remove tool outcomes when useful.

3 supporting quotes
“their use can be cost-prohibitive at scale. More context is only sometimes better”article, stated
“it may cause models to fixate on repeated concepts or prioritize the most recent tokens in the prediction.”article, stated
“For ChatGPT, we've learned that removing the outcomes of tool usage (e.g., function messages) is sometimes beneficial after the model has had a chance to respond.”article, stated

Premature RAG degraded generation quality.

Root cause: Initial customer messages are often pleasantries, so early retrieval selected irrelevant documents and focused the model on wrong content.

Resolution: Wait until the model has enough conversation context to craft search terms or switch to a specialized RAG prompt after intent is determined.

3 supporting quotes
“it typically takes three or four user messages before we understand a customer's problem because most of the initial messages are pleasantries.”article, stated
“When we retrieved documents prematurely, we decreased the accuracy of the generation by focusing the model's attention on the wrong content.”article, stated
“Subsequent implementations involved switching to a specialized RAG prompt after we determined the intent of the conversation.”article, stated

Raw support documents wasted tokens and narrowed retrieval diversity.

Root cause: Knowledge-base content included redundant or flowery text, and many similar documents could crowd out broader knowledge in a short context.

Resolution: Compress documents into Sparse Priming Representations, store them in a vector store, and experiment with clustering to reduce duplication.

3 supporting quotes
“Most documents (articles, websites, etc.) contain flowery language and redundant information.”article, stated
“We store the SPR versions of the documents in a vector store and use that index for RAG.”article, stated
“we are experimenting with document clustering to bucket content and applying SPR to reduce the bucket into a single document.”article, stated

Testing natural-language LLM systems remained labor-intensive.

Root cause: Natural-language input space is infinite, prompt changes can shift behavior, and LLM-as-tester approaches can be too expensive at CI scale.

Resolution: Aggregate LLM outputs for QA review and swarm transcripts with developers, writers, product managers, business analysts, and QA after major releases.

3 supporting quotes
“testing is often more difficult and labor-intensive than building an LLM integration.”article, stated
“LLMs also don't capture the creativity of the human mind, so humans will constantly need to test, review, and monitor AI systems.”article, stated
“swarming as a team (developers, writers, product managers, business analysts, and QA) to review transcripts during the first few days after a major release.”article, stated

Evaluation

GoDaddy evaluated the assistant through experiments across prompt architectures, model versions, structured-output failure rates, latency/reliability observations, RAG quality, CI-scale test feasibility, QA reporting, and post-release transcript review.

Metrics: 60,000+ daily messaging contacts · 20 support-topic classification buckets · 1500+ token mega-prompt size · 1% invalid ChatGPT 3.5 structured output · 0.25% invalid ChatGPT 4 structured output · 1% provider chat-completion failure rate · 3-5 second ChatGPT 4 completions under 1000 tokens · up to 30 second calls before client timeout · over 50% SPR token reduction · thousands of tests multiple times daily from CI

3 supporting quotes
“we noticed improved performance and fewer issues in the ChatGPT 3.5 cohort.”article, stated
“We recommend building the reporting systems necessary to aggregate LLM outputs for review by QA teams.”article, stated
“Having a multidisciplinary review team allows us to detect and fix problems quickly.”article, stated

Outcomes

The deployment operated in GoDaddy's Digital Care environment with over 60,000 daily customer contacts across SMS, WhatsApp, and web, with experiments spanning support-topic classification, self-help, RAG, model comparison, guardrails, structured output, memory, and QA review.

6 supporting quotes
“Early experimentation demonstrates that LLMs outperform older natural language units; however, operationalizing LLMs isn't effortless.”article, stated
“Allowing the controller prompt to establish when to delegate to another prompt has simplified our code base while enhancing our chatbot's capability.”article, stated
“As a result, we noticed improved performance and fewer issues in the ChatGPT 3.5 cohort.”article, stated
“Thankfully, the implementation of ChatGPT functions boosted accuracy levels, although they weren't perfect”article, stated
“Using the model to craft search queries resulted in improved relevancy on Knowledge Base searches, improving the quality of recommendations made by the AI assistant.”article, stated
“While we have yet to operationalize this technique, early tests are promising. On average, we see an over 50% reduction in token usage”article, stated