The model is behaving impeccably. Your information architecture isn’t.
When the Model Is Flawless but the Architecture Isn't: City Lessons for AI The mistake we make when working with modern language models lies not in the realm of...
When the Model Is Flawless but the Architecture Isn't: City Lessons for AI
The mistake we make when working with modern language models lies not in the realm of technology, but in the realm of architecture. A model like GPT can generate answers that are flawless in form, but their value and accuracy depend directly on what information and in what context we provide it. This is similar to how we navigate a city: the most detailed map is useless if it lacks street names or shows the wrong district. The model behaves impeccably, but our information architecture fails.
Paradoxically, the key to understanding this problem can be found in research conducted as far back as 1960—long before the advent of artificial intelligence in its current form. Back then, they studied how people perceive and use city maps.
Lessons from 1960: Maps, Cities, and Mental Models
In 1960, Kevin Lynch, an American urban pla
er, published his work The Image of the City, where he studied how people mentally structure urban space. He discovered that navigation depends not on the absolute accuracy of a map, but on the presence of key elements: paths, edges, districts, nodes, and landmarks.
- Paths — routes of movement (streets, trails).
- Edges — barriers dividing spaces (rivers, walls).
- Districts — zones with common characteristics (historic center, industrial zone).
- Nodes — strategic points of intersection (squares, train stations).
- Landmarks — noticeable objects for navigation (tower, monument).
If a map lacked these elements or they were poorly defined, people got lost, even if the map was technically "complete." They could not build an effective mental model.
Let's draw a parallel: A language model is a conscientious and accurate "cartographer." But it draws a map exclusively based on the data provided to it—the "streets," "districts," and "landmarks." If your prompts (queries) and context are vague, unstructured, or lack key elements, the model, despite its power, will generate a "map" that ca
ot lead to the goal.
Context Architecture: How to Build a "City" for AI
Your task as a user or developer is to design the information architecture for each interaction with the model. This means consciously structuring the input (prompt and context) according to principles similar to Lynch's.
H3: Practical Tips for Prompt Design
Instead of a vague query, create a structured "city" for the AI.
Bad example (vague "district" without landmarks):
Write something about marketing.
Good example (contains a path, node, landmarks, and edges):
**Role (Landmark):** You are an experienced copywriter for B2B SaaS startups.
**Goal (Node):** Write a concise, persuasive text for a landing page (up to 150 words).
**Product (District):** New project management automation tool "FlowTeam". Key features: visual Kanban boards, Slack and Jira integration, automatic reporting.
**Target Audience (Edges):** Project managers in IT companies with 50 to 200 employees.
**Tone and Style (Path):** Professional, dynamic, focusing on efficiency and time-saving. Avoid jargon.
**Task:** Focus on pain points: routine tasks, lack of process transparency, time-consuming reporting.
H3: Code as Urban Infrastructure
When working with language model APIs, your codebase is the urban infrastructure. It must provide clear logic for feeding context.
Bad example (weak infrastructure, lack of nodes):
# Simply throw a query at the model
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": user_query}]
)
Good example (architecture with a context system and memory):
class ConversationArchitect:
def __init__(self, system_prompt):
self.messages = [{"role": "system", "content": system_prompt}]
self.context_history = []
def add_context_chunk(self, role, content, category):
# Category (district, node, landmark) helps structure memory
self.context_history.append({"role": role, "content": content, "category": category})
# Trimming history to keep a relevant context window (edges)
if len(self.context_history) > 10:
self.context_history.pop(0)
def get_structured_prompt(self, user_query):
# Assembling a structured prompt from context history
context_block = "\n".join([f"[{chunk['category'].upper()}] {chunk['content']}" for chunk in self.context_history[-3:]])
full_prompt = f"Context for the answer:\n{context_block}\n\nUser query: {user_query}\n\nAnswer based strictly on the provided context."
return full_prompt
# Usage
architect = ConversationArchitect(system_prompt="You are an assistant for product X. Always maintain a professional tone.")
architect.add_context_chunk("system", "Feature Y was updated yesterday. New parameters: A, B, C.", "FEATURE_DESCRIPTION")
user_query = "How do I configure feature Y for scenario Z?"
final_prompt = architect.get_structured_prompt(user_query)
# Send final_prompt to the model
Systemic Error: Ignoring Architecture at the Product Level
The biggest problem arises when we embed powerful models into products with poor UX architecture. A chat interface where the user only sees an empty text field is like dropping a person into an unfamiliar metropolis without a map and hoping they'll find the right bakery.
Solution:
- Provide templates — predefined prompt structures for different tasks (write an email, analyze data, brainstorm an idea). These are ready-made routes through the city.
- Visualize context — show what data and how much of it is included in the current session. What does the model "see"? What documents are loaded? This is a map with a highlighted district.
- Allow control over edges — give the user the ability to explicitly add ("include this document in the context") and exclude ("forget everything before this message") information. Setting and removing barriers.
Conclusion: From Cartography to Urban Pla
ing
Lynch's research reminds us that any complex system—be it a city or a dialogue with AI—requires thoughtful architecture for effective navigation. Modern language models have reached an impressive level of "literacy." Now our challenge is not to make them smarter, but to become better **urban pla
ers** for them. We must design interfaces, workflows, and systems that deliver information in the form of a clear, structured "city" with paths, nodes, and landmarks. Only then will the model's flawless behavior translate into a flawless result.