Building Multilingual AI Agents with Translation Pipelines

boundary · Tech · 2026 · source Agentic: yes · promotional bias: low · source-backed · extracted with prompt 0.5.5 (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: Multilingual agent pipeline architecture

Boundary's case addresses multilingual AI applications whose core prompts, tools, output schemas, and business logic are written in English. Even if a frontier model understands many languages, a bespoke agentic pipeline with mostly English steering can respond in English to non-English users, creating a reliability gap for customer-facing multilingual agents. The challenge is to support many languages without duplicating every prompt, tool definition, evaluation suite, and business-logic pipeline per language.

Constraints:

Architecture

The recommended architecture keeps the main business-logic agent and its evals in English, then wraps it with explicit language-normalization boundaries. The front layer detects or translates the user's message into English, optionally captures intent or metadata, and can preserve the original message to reduce translation loss. The English agent performs the core task, such as travel booking, using English prompts, tools, and output schemas. The final layer localizes the English response back into the user's language and tone. For latency, a heuristic classifier can bypass translation for mostly English messages. The demo live-coded this as a travel-booking pipeline with translation capture, optional intent capture, the main travel agent, and a localization postprocessor; small models were intended for translation parts and a heavier model for the main agent.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  user-message["User message"] --> language-heuristic["Language heuristic"]
  language-heuristic --> translation-preprocessor["Translation preprocessor"]
  language-heuristic --> english-agent-pipeline["English agent pipeline"]
  user-message --> intent-capture["Intent capture"]
  translation-preprocessor --> english-agent-pipeline
  intent-capture --> english-agent-pipeline
  english-agent-pipeline --> tool-layer["Tool layer"]
  english-agent-pipeline --> localization-postprocessor["Localization postprocessor"]
  translation-preprocessor --> localization-postprocessor
  localization-postprocessor --> user-facing-response["User-facing response"]
  small-translation-model["Small translation model"] --> translation-preprocessor
  small-translation-model --> intent-capture
  small-translation-model --> localization-postprocessor
  heavyweight-main-model["Heavyweight main model"] --> english-agent-pipeline
  evaluation-suite["Evaluation suite"] --> english-agent-pipeline
  evaluation-suite --> translation-preprocessor
  evaluation-suite --> localization-postprocessor
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
User message Original user input, potentially in a non-English language or a mixed-language style. Language heuristic
Language heuristic Fast check for mostly English input so common English traffic can bypass translation latency. User message, Translation preprocessor, English agent pipeline
Translation preprocessor Normalizes non-English or mixed-language input into English while optionally preserving the original text. User message, English agent pipeline, Localization postprocessor
Intent capture Optional metadata extraction step that captures intent or other hints to feed the English pipeline. User message, English agent pipeline
English agent pipeline Core business-logic agent with English prompts, tools, schema fields, and eval coverage. Translation preprocessor, Intent capture, Tool layer, Localization postprocessor, Evaluation suite
Tool layer Application tools and tool definitions, usually written in English, used by the core agent. English agent pipeline
Localization postprocessor Converts the English agent response back to the user's original language and tone. Translation preprocessor, English agent pipeline, User-facing response
User-facing response Localized answer returned to the user in the expected language/tone. Localization postprocessor
Small translation model Lower-cost or lower-latency model intended for translation and intent-capture units. Translation preprocessor, Intent capture, Localization postprocessor
Heavyweight main model Smarter model used for the core agent task where reasoning and tool use matter more. English agent pipeline
Evaluation suite Tests for the English main pipeline and smaller translation units, with human-language evals required when tolerance demands it. English agent pipeline, Translation preprocessor, Localization postprocessor

Data flow

A user sends a message in French, Hindi plus English, Spanish, or another language mix. A lightweight preprocessor translates it to pure English and may capture intent, detected language, or metadata while preserving the original user text. The translated message and optional intent enter the main English agent, which contains the business logic and tool calls. The agent returns an English response. A localization pipeline receives the original message, the English response, and relevant language/tone context, then translates the response back to match the user's language and tone. For users who appear to be writing mostly English, a quick heuristic can skip the translation layer and send them directly to the English pipeline.

5 supporting quotes
“you take the user's input and you do a minimal amount of work uh with a system that looks like this. Oops. with a system that looks like this. But instead of all your tool calls and all your systems over here, this this miscellaneous um pipeline's only job”transcript, stated
“this miscellaneous um pipeline's only job is to basically normalize it so that it can be fed as an input to your English pipeline.”transcript, stated
“Detected languages. >> We we might not even need that actually. I think you can just do this like translate to pure English intent capture and then send it to the agent. >> Okay. >> Sorry about that. >> Right. And once you've done this, well, your agent now produces some sort at some point”transcript, stated
“response as if you're normally speaking to them and then you translate it back to match the same tone of the original language and what's fascinating about that is if the user is actually speaking like a mix of um like Hindi and English your translation unit can mimic that conversation”transcript, stated
“if it looks like it's English and then if it is then skip the classification pipeline and just send it straight to the English pipeline”transcript, stated

Why this architecture

The speakers recommend translation boundaries because duplicating pipelines per language makes evals, prompt updates, and tool-definition maintenance explode, while simply telling the model to respond in the user's preferred language relies on instruction following under a mostly English prompt. Normalizing to English keeps the expensive business logic and evals in one language, just as voice systems often use speech-to-text, an LLM text pipeline, and text-to-speech rather than direct audio-to-audio. The architecture is a little slower and more complex, but the speakers argue the accuracy, maintainability, and eval wins are worth it.

5 supporting quotes
“recommend people build this approach and the reason I don't recommend this approach is because now your eval matrix has just gone stupidly hard >> and you have to maintain prompts in every freaking language and tool definitions in every language and you're going to”transcript, stated
“you have to maintain prompts in every freaking language and tool definitions in every language and you're going to be paying like translation agencies to manage these giant translation files that map all this stuff to every language you want to support. >>”transcript, stated
“The same is true for multilingual systems. What I would recommend doing is normalize to your pipeline. build amazing evals for this. Build amazing evals for this. Yeah. >> So, it's just translate the user's input. Like what is this first step look like? >>”transcript, stated
“so even though it's a little bit slower and it's like complicated it works so much better that it's worth doing.”transcript, stated
“way better and eval for this are easier to build. There's so many everything basically just gets easier when you do the second approach. The same is true for multilingual systems. What I would recommend doing is normalize to your pipeline. build amazing evals for this. Build amazing evals for this.”transcript, stated

Models used: Claude · Anthropic Haiku · Small translation models · Heavyweight main model · BAML

Scale

Alternatives considered (roads not taken)

Build fully parallel pipelines per language.

Rejected because: This can produce higher confidence for each supported language, but it multiplies prompts, tool definitions, evals, translation files, and update coordination across every language.

3 supporting quotes
“around this, what you have to do is you have I there's a couple different approaches. Um, one is you can just build a totally parallel system. >> You just build a French version of the pipeline. >> You literally just build a French version of the pipeline. So all”transcript, stated
“just build a totally parallel system. >> You just build a French version of the pipeline. >> You literally just build a French version of the pipeline. So all of these just turn to green because like everything turns to French. >> So you just do a classification right at”transcript, stated
“recommend people build this approach and the reason I don't recommend this approach is because now your eval matrix has just gone stupidly hard >> and you have to maintain prompts in every freaking language and tool definitions in every language and you're going to”transcript, stated

Add a prompt instruction to reply in the user's preferred language.

Rejected because: The speakers say this relies on both language generation and instruction following, which reduces reliability compared with an explicit translation boundary.

3 supporting quotes
“to this. And the difference between this pipeline, the miscellaneous pipeline where you added a special instruction into your prompt like this uh that just says like, oh, use oh that's a disgusting color uh that says use the user's preferred language to reply and you inject the language in here”transcript, stated
“This pipeline relies on both the model's ability to coherently reply and follow instructions. >> You're relying on the autocomplete and the instruction following, which the instruction following was the last thing we got with models. Like the thing that made”transcript, stated
“pipeline relies on both the model's ability to coherently reply and follow instructions. >> You're relying on the autocomplete and the instruction following, which the instruction following was the last thing we got with models. Like the thing that made Chad GBT take off in a”transcript, stated

Send non-English input directly to the main LLM and expect a non-English answer.

Rejected because: The live demo showed the same travel agent still responding in English when the translation layer was bypassed, because prompts and tool definitions remained English.

3 supporting quotes
“this, I suspect. But let's do the most more interesting thing, which is now let's turn off the let's just make that thing always return true, right? >> If true. Yeah, there you go. Hell yeah. >> Um, so this will be fascinating. I wonder if you have like multilingual in”transcript, stated
“be fascinating. I wonder if you have like multilingual in the prompt anywhere or something. Oh, dude. It did respond in England. In English. >> Exactly. So, now we >> Okay, so we do need that thing. Wait, let's let's make it back to untrue and run it again. >>”transcript, stated
“just again it's like if we go back to what we were talking about earlier, >> it's just >> there's so much in the prompt is English that it's just getting too and even the world's smartest model isn't smart. I mean, I bet if you if you asked it to respond in the language that the”transcript, stated

Run every request through translation and intent capture.

Rejected because: Most users may be English speakers, so the speakers propose a cheap heuristic that routes mostly English inputs straight to the English pipeline to avoid added latency.

3 supporting quotes
“Most of our users are actually English speakers. We do have some that speak other languages. The problem with this current pipeline is it adds a lot of latency to non-English to uh to English users even though they're a higher proportion of our user base.”transcript, stated
“The problem with this current pipeline is it adds a lot of latency to non-English to uh to English users even though they're a higher proportion of our user base. What I'd like to do is write a quick little heristic that lets me know if a user mostly wants”transcript, stated
“if it looks like it's English and then if it is then skip the classification pipeline and just send it straight to the English pipeline”transcript, stated

Use direct audio-to-audio or direct non-English-to-non-English model calls.

Rejected because: The speakers argue production systems usually get better accuracy and maintainability by normalizing through text or English boundaries, even when that adds steps.

3 supporting quotes
“everyone that does this in practice knows that the system just produces way worse accuracy when you do this than when you do this.”transcript, stated
“don't use audio to LM to audio use audio to speech to text to LM to text to speech to audio similarly don't use non-English to LM to non-English use non-English to English to LM to English to non-English >> Yep >> like it's the same exact system >> this is”transcript, stated
“similarly don't use non-English to LM to non-English use non-English to English to LM to English to non-English”transcript, stated

Build multilingual evals entirely with AI for languages the team does not understand.

Rejected because: The speakers say teams either accept the model's error tolerance for small translation tasks or hire people who speak each language to build proper eval data.

3 supporting quotes
“question and this is actually a big problem point that I think a lot of people have, which is you can't build evals for things you don't understand. >> Yep. The reality of the system is now that you have good evals, the fragility of your system gets a lot smaller once”transcript, stated
“you will hire a team of people to do translations for you in every single language you want to support and build evals for that manually.”transcript, stated
“two worlds there. uh if you don't understand the language there's just like fundamentally you either have to accept the models as face fa as like at fake uh face value and say that yep these solved my problem or you have to be like I have to go build a whole team of people that speak the”transcript, stated

Patterns

prompt-chaining (pipeline)

The solution chains translation/normalization, optional intent capture, the main English agent, and localization back to the user's language/tone.

3 supporting quotes
“translate to pure English intent capture and then send it to the agent.”transcript, stated
“now you have another pro uh pipeline that's basically able to convert to the user's tone.”transcript, stated
“It did a translation capture intent and takes the original message, runs a travel agent response and matches the user's tone.”transcript, stated

query-rewriting (input-normalization)

Non-English or mixed-language input is rewritten into pure English before reaching the core agent, while the original message can be retained for context and final tone matching.

3 supporting quotes
“So you can turn this into a translation. >> Yeah. So there's like a pipeline node here basically. >> Yeah. Exactly.”transcript, stated
“you could say I translate it and I keep the original text around just in case some stuff gets lost in conversation.”transcript, stated
“include the original source message like you were saying Dexter you can actually keep the original English without with minimal translation loss.”transcript, stated

model-routing (model-selection)

The demo prompt asks for small models on translation steps and a heavier model for the main agent, reflecting task-specific model selection.

3 supporting quotes
“we want to make sure that we use small models for any of the translation parts and obviously our main agent should actually be a little bit more u heavyweight”transcript, stated
“>> The other use entropic haiku. Oo, interesting. Claude's getting more biased at wanting to use haiku. It was not doing that before.”transcript, stated
“if a very smart model like an opus model is fast enough for all of this then just use the smartest model you can until it gets too expensive”transcript, stated

latency-optimization (performance)

The design adds a cheap mostly-English heuristic so English users can bypass translation and classification steps rather than paying translation latency on every request.

3 supporting quotes
“if it if it looks like English using like a reax or a string contains we just skip it and go straight to the main pipeline.”transcript, stated
“The problem with this current pipeline is it adds a lot of latency to non-English to uh to English users”transcript, stated
“So it actually becomes a really fast pass to your system >> to classify the language. >> Exactly.”transcript, stated

eval-driven-development (quality)

The speakers emphasize building evals for the English pipeline and the smaller translation units, and using complaints to create new evals before prompt iteration.

3 supporting quotes
“Build amazing evals for this. Yeah. >> So, it's just translate the user's input. Like what is this first step look like?”transcript, stated
“these little like translation things are also really easy to like test an inval”transcript, stated
“if you're editing your prompt and you're not running tests like why are you just making life hard?”transcript, stated

structured-output-contract (interface-design)

The demo's output schema and field names affected model behavior; renaming a field from reply English was necessary because schema names act as prompt text.

3 supporting quotes
“the schema is part of the prompt because what you name the fields tells the model what they should be”transcript, stated
“what you name the fields will tell the model what they should be.”transcript, stated
“if I wrote reply English, it's going to reply in English no matter what I do and that will not be good.”transcript, stated

Tradeoffs

Normalize through English instead of duplicating every pipeline per language.

Chose Translation boundaries around one English business-logic pipeline over Separate French, English, miscellaneous, and other language-specific pipelines.

Rationale: The translation-boundary design keeps the core pipeline evaluable and maintainable in one language, while avoiding the eval and prompt-maintenance explosion of fully parallel language pipelines.

3 supporting quotes
“Well, I have a solution that I think works pretty well, which is you actually build your whole pipeline in English. And this is actually going to be a very very very similar situation to what you'll often see for voice chat bots.”transcript, stated
“this miscellaneous um pipeline's only job is to basically normalize it so that it can be fed as an input to your English pipeline.”transcript, stated
“you have to maintain prompts in every freaking language and tool definitions in every language”transcript, stated

Accept translation-boundary latency for higher correctness.

Chose Non-English to English to LLM to English to non-English over Direct non-English to LLM to non-English.

Rationale: The boundary architecture adds steps, but the speakers argue it improves accuracy, maintainability, and evalability enough to be worth the delay.

3 supporting quotes
“So yes, the user sees some delays. Um yes um the user uh is not getting the same experience as a as a system that's getting pure English into it but they were getting a much higher quality of experience >> and this pipeline would you only take the original message and the response or would you”transcript, stated
“yes um the user uh is not getting the same experience as a as a system that's getting pure English into it but they were getting a much higher quality of experience >> and this pipeline would you only take the original message and the response or would you also pull in like the intent capture”transcript, stated
“don't use non-English to LM to non-English use non-English to English to LM to English to non-English”transcript, stated

Use a fast English heuristic before translation.

Chose Common-word percentage threshold to bypass translation for mostly English messages over Always classifying/translating every message with an AI model.

Rationale: A cheap precheck can reduce latency for the majority English cohort while still routing non-English messages through the safer translation pipeline.

3 supporting quotes
“write a quick little heristic that lets me know if a user mostly wants English or not.”transcript, stated
“check if the sentence contains them. And if it does, then we can just run the English pipeline, reply back in English.”transcript, stated
“And it's really just some percentage threshold that we can set based on what we find.”transcript, stated

Use smaller models for translation only after the quality/cost tradeoff demands it.

Chose Small models for translation units and a heavier model for the main agent over Optimizing model cost too early or using the same heavyweight model everywhere forever.

Rationale: The speakers recommend throwing tokens at the problem until cost justifies engineering work, then routing simpler steps to cheaper models.

3 supporting quotes
“we use small models for any of the translation parts and obviously our main agent should actually be a little bit more u heavyweight”transcript, stated
“just use the smartest model you can until it gets too expensive and then go do the engineering”transcript, stated
“like puzzle solving and and engineering, but like part of I think the advice we give on the show a lot is like don't overengineer things until you actually have a need for it. like spend tok throw tokens at the problem until it becomes more expensive to throw tokens at the problem. Then”transcript, stated

Keep original mixed-language text available to later stages.

Chose Preserve original user message alongside the translated English message over Discarding source text after translation.

Rationale: Keeping source text reduces translation loss and lets the localization step mimic mixed-language style and tone.

3 supporting quotes
“I translate it and I keep the original text around just in case some stuff gets lost in conversation.”transcript, stated
“as long as you include the original source message like you were saying Dexter you can actually keep the original English without with minimal translation loss.”transcript, stated
“and what's fascinating about that is if the user is actually speaking like a mix of um like Hindi and English your translation unit can mimic that conversation flow >> okay >> does Does that kind of make sense >> because you brought so basically like let can we model this as like a DAG of like”transcript, stated

Gotchas (what bit them)

Multilingual capability in the base model does not guarantee multilingual product behavior.

Root cause: The application pipeline may be mostly English, so English prompt/tool/schema context dominates the user's non-English message.

Resolution: Add explicit translation boundaries instead of relying on the model to infer the desired output language from mixed context.

3 supporting quotes
“So if your system prompt is in English >> and your so like and then your uh user >> the user in yeah the tools are in English >> here we'll use English as blue >> maybe even your user message is like English French English because you're putting a custom user message that is embedding in the actua”transcript, stated
“>> right. So if your system prompt is in English >> and your so like and then your uh user >> the user in yeah the tools are in English >> here we'll use English as blue >> maybe even your user message is like English French English because you're putting a custom user message that is embedding”transcript, stated
“it's note it's super likely that the assistant response is also going to be in English.”transcript, stated

Parallel language-specific pipelines drift from the main product.

Root cause: A team may update the English pipeline faster than French or other translated versions, and may not know when an English change requires a localized update.

Resolution: Keep the core business logic in one evaluated pipeline and translate at the boundaries.

3 supporting quotes
“how do you know that updating English pipeline should also trigger an update in the French pipeline? You don't know that.”transcript, stated
“your English pipeline is updating much much faster than your French pipeline.”transcript, stated
“Your French users are just sad anyway. >> And then you ask the question of Go ahead. >> It it it's like when uh certain apps have really shitty support for Windows.”transcript, stated

Teams cannot evaluate languages they do not understand without outside help.

Root cause: AI-generated tests for another language do not remove the need to understand whether the translation is correct when the domain requires high confidence.

Resolution: Either accept the model's residual error on small translation tasks or hire language/domain experts to build eval data manually.

3 supporting quotes
“>> So, that is a great question and this is actually a big problem point that I think a lot of people have, which is you can't build evals for things you don't understand. >> Yep.”transcript, stated
“you have to take two things at face value. Either you do need to guarantee that.”transcript, stated
“hire a team of people to do translations for you in every single language you want to support and build evals for that manually.”transcript, stated

A schema field name can accidentally force English output.

Root cause: Output schema names are part of the prompt, so a field named reply English steers the model to English even if the instruction says otherwise.

Resolution: Review schema names as prompt text and remove language-biased field names before testing multilingual behavior.

3 supporting quotes
“if I wrote reply English, it's going to reply in English no matter what I do and that will not be good.”transcript, stated
“And that was literally just one word. >> This is the inverse of that thing we tal about of like, oh, there's this cool thing to where you cannot change the prompt and just change the output schema.”transcript, stated
“you can accidentally leak intent about what you want or the wrong steering into your output format”transcript, stated

Bypassing translation can still fail even with a smart model.

Root cause: The main agent's prompts and tool definitions remain English, so the model answers in English when the translation/localization layer is disabled.

Resolution: Use the explicit non-English-to-English-to-LLM-to-English-to-non-English path for high-confidence multilingual behavior.

3 supporting quotes
“Oh, dude. It did respond in England. In English. >> Exactly. So, now we >> Okay, so we do need that thing. Wait, let's let's make it back to untrue and run it again.”transcript, stated
“>> Everything is in English. Oh, whoops. >> Oh, that'll do it. [laughter] All right, let's try it again. >> Let's try it again.”transcript, stated
“this agent has no tool calls. It has nothing complicated. The model should be able to figure this out,”transcript, stated

Translation layers add latency for English users unless routed carefully.

Root cause: A universal translation/intention preprocessor makes the common English path do unnecessary work.

Resolution: Add a cheap heuristic or classifier to route mostly English messages directly to the English pipeline.

3 supporting quotes
“Most of our users are actually English speakers. We do have some that speak other languages.”transcript, stated
“it adds a lot of latency to non-English to uh to English users even though they're a higher proportion of our user base.”transcript, stated
“checking the following. We should just take the mo most common uh words in English that appear almost everywhere.”transcript, stated

Evaluation

The evaluation strategy is to build strong evals around the core English pipeline and smaller evals for the translation/localization units, then decide whether model-based translation quality is acceptable or whether humans who speak the language must create eval data. The live demo also treats test-running as prompt-editing back pressure: add a failing case, iterate prompts, and require tests to pass before trusting changes.

Metrics: Target correctness gap framed as 99% versus 99.99% · Language-output correctness when translation is bypassed versus enabled · Latency added by translation and intent-capture layers · English heuristic threshold for bypassing translation · Translation/localization quality for languages the team can or cannot read · Regression tests created from user complaints

4 supporting quotes
“build amazing evals for this. Build amazing evals for this. Yeah. >> So, it's just translate the user's input. Like what is this first step look like?”transcript, stated
“these little like translation things are also really easy to like test an inval”transcript, stated
“How to test a system that you don't speak its language, like an AI. Do you trust AI to write code to test AI in another language?”transcript, stated
“every time someone complains I just take the complaint and paste it into cloud and I'm like make a new val for this”transcript, stated

Outcomes

The source is an architecture/live-coding discussion rather than a deployed KPI report. It quantifies reliability targets conceptually with 99% versus 99.99%, uses a 20% French/80% English prompt-mix example, and discusses operational scale in terms of many languages, English-majority traffic, and cost tradeoffs once token spend becomes large.

5 supporting quotes
“It did a translation capture intent and takes the original message, runs a travel agent response and matches the user's tone.”transcript, stated
“Oh, dude. It did respond in England. In English. >> Exactly. So, now we >> Okay, so we do need that thing. Wait, let's let's make it back to untrue and run it again.”transcript, stated
“this is just like straight proof of what's going on behind the scenes.”transcript, stated
“schema is part of the prompt because what you name the fields tells the model what they should be >> but also what you name the fields will tell the model what they should be. So you can accidentally leak intent about what you want or the wrong steering into your output format and the model is”transcript, stated
“if the user is actually speaking like a mix of um like Hindi and English your translation unit can mimic that conversation flow”transcript, stated