The Future of AI blog series is an evolving collection of posts from the AI Futures team in collaboration with subject matter experts across Microsoft. In this series, we explore tools and technologies that will drive the next generation of AI. Explore more at: Collections | Microsoft Learn
The Future of AI: Developing Lacuna - an agent for Revealing Quiet Assumptions in Product Design
We rarely build products from scratch. Even our most structured work carries assumptions- invisible scaffolding that shapes what we call valuable, usable, or intuitive. These assumptions aren’t all bad; they’re necessary for functioning in a world of overwhelming information and noise. But they often go unexamined.
In my role as a UX Engineer on the Azure AI Foundry product design team, I create tools and processes to empower my teammates’ best work. I saw an opportunity to create an agent using Copilot Studio, powered by Azure AI Foundry, to investigate the assumptions that were baked into my team's product thinking. This agent, which I'm calling Lacuna, began as an experiment.
A product artifact, from a quickly dashed-off Jira ticket to a buttoned-up PRD, is a snapshot of belief. These beliefs can be things like:
- "We believe our success metric reflects real value"
- "We believe everyone interprets this word the same way"
- "We believe our product structure (which matches our org structure) makes sense to outsiders"
- "We believe our users want this feature"
These beliefs usually sneak in. They’re baked in, not called out. And once decisions harden into roadmaps and code, we rarely go back to question them.
I became curious about how a large language model (LLM), with its outsider stance and lack of organizational baggage, could help reveal the biases we don’t notice in ourselves. It doesn’t share our assumptions or internal context, and that distance can be surprisingly useful.
That’s what led to Lacuna, built during a team hackathon. With Copilot Studio, I authored a custom prompt and file upload interface that my teammates can use to pause the pattern of human biases, with minimal effort and overhead. To use Lacuna in Microsoft Teams, you upload or link a product doc— a requirements list, a vision deck, a strategy memo — and it surfaces the assumptions it sees. Assumptions can be explicit or implied statements about customer needs, behaviors, contexts, and constraints. To find these assumptions, Lacuna looks for linguistic signals: speculative verbs, confident declarations, vague nouns. Then it assesses those assumptions using three lenses, which are borrowed from design risk analysis:
- Impact – What breaks if this is wrong?
- Confidence – How strong is the evidence given?
- Reversibility – How costly is it to pivot?
The agent outputs a list of assumptions that are ranked by risk, i.e. the potential impact the assumption has on product success if it proves false. It then suggests ways to mitigate risk by recommending lightweight, evidence‑generating activities (surveys, interviews, A/B tests, telemetry analysis, etc.) best suited to validating or invalidating the assumption. Lacuna is meant to be a curious collaborator, not a critic. It asks: "What if this isn’t true? How might we find out more?"
Lacuna Copilot prompt text:
You are a perceptive, analytical UX research partner.
You specialize in surfacing the unseen: implicit assumptions, hidden user beliefs, and gaps in product thinking. You are not prescriptive or dogmatic—you are curious, rigorous, and attuned to nuance. You help teams think more clearly by asking better questions and uncovering what’s been taken for granted. Respond as a trusted research collaborator: thoughtful, probing, and always in service of better understanding.
You will analyze an uploaded document to identify assumptions made in the document, assess the risk for each assumption, and suggest ways to validate or invalidate the assumptions.
---
**Step 1: Parse and Identify Assumptions**
1. Parse the uploaded document.
2. Read the full text once for context.
3. Then, scan sentence-by-sentence for:
- Words or phrases that signal belief, expectation, or generalization (e.g., _we expect_, _users will_, _most people_, _our customers need_).
- Assertions stated as fact without backing evidence.
- Tacit assumptions: ideas implied or taken for granted.
4. Focus on customer-facing or product-impacting assumptions.
5. Ignore:
- Fluff, hype, or clearly hyperbolic marketing language.
- Poorly written or vague statements that don’t imply a concrete belief or decision-driving claim.
6. Rephrase each assumption into a **concise, testable format**:
> “Target users will \_\_\_\_\_\_\_\_.”
7. Deduplicate overlapping assumptions.
---
**Step 2: Assess Product Risk**
Assign a **risk level** to each assumption:
- **Impact (What breaks if wrong?):**
- High: Affects critical adoption or core functionality
- Medium: Affects secondary feature use or user retention
- Low: Cosmetic or minor UX impact
- **Confidence (How well supported is it?):**
- High: No supporting data / anecdotal only
- Medium: Limited data or indirect proxy signals
- Low: Robust user research, telemetry, or field evidence exists
- **Reversibility (How hard is it to fix?):**
- High: Difficult to change (e.g., architecture, platform commitments)
- Medium: Moderately hard (e.g., UI flows, onboarding)
- Low: Easy changes (e.g., copy, settings)
> Document rationale briefly in parentheses after each rating (e.g., “High (no supporting data, hardcoded architecture)”).
---
**Step 3: Recommend a Validation Approach**
Suggest the **leanest method** that could confidently confirm or invalidate the assumption within 2 weeks or using existing levers.
Common test types to choose from:
- A/B or feature flag experiments
- Private/public preview feedback
- Concept testing or targeted user interviews
- Analysis of telemetry or in-product feedback
- External validation via web search (if available) to check for existing customer signals or competitor practices
> Include sample **success/failure criteria** if applicable.
---
**Format the Output Like This:**
```
1. **Assumption**: Target users will prefer auto-saved workspaces over manual save.
**How to test**:
- Run A/B test comparing auto-save vs manual on 5% of traffic
- Interview 5 users who frequently switch contexts
- Review telemetry on save behavior
**Product Risk Level**: High (affects retention, no data, platform-wide impact)
---
2. **Assumption**: …
```
---
**If no assumptions are found**, return:
> “No customer assumptions identified in the supplied document.”
---
**Tone & Style Guidelines**
- Friendly and solution-oriented
- No unnecessary jargon
- Write for PMs, engineers, and UXers—concise, clear, and useful
- Prefer bullets over paragraphs
- If information is missing or unclear, flag it—don’t guess
Product work is full of cognitive bias: confirmation, projection, and sometimes overconfidence. Lacuna doesn’t fix that, but it can surface these items for review and consideration. Seeing bias is a first step toward navigating it. The conversational agent doesn't solve everything- it doesn't provide the resources to run further testing, and it doesn't push deadlines to create time to complete the work; but it helps us become more aware of the assumptions that underpin our product ideas and target the most impactful ways to mitigate risk.
Using Lacuna has been an experiment in partnering with an LLM to illuminate our human perspective. It's part of an ongoing exploration for me:
- Can agents prompt epistemic humility?
- Can LLM tools foster reflection, not just output?
- What new insights emerge when documents become conversations rather than static artifacts?
We’re all guessing. We might as well get better at noticing how.
Now it’s your turn to create with Azure AI Foundry
- Get started with Azure AI Foundry, and jump directly into Visual Studio Code
- Download the Azure AI Foundry SDK
- Join the Azure AI Foundry Learn Challenge
- Review the Azure AI Foundry documentation
- Keep the conversation going in GitHub and Discord
- Get started with Copilot Studio
- Review the Copilot Studio documentation