Challenges and Opportunities in Building Product Copilots: An Industry Interview Study

microsoft_/_github · Tech · 2023 · 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: Engineering lifecycle for AI product copilots

Microsoft and GitHub researchers found that teams building product copilots were improvising across prompt engineering, orchestration, testing, safety, and developer tooling because standard software-engineering processes had not caught up with LLM-powered product development.

Constraints:

Architecture

The paper maps a product-copilot engineering lifecycle: user-contextual prompts feed orchestration and multi-turn workflows; teams manage prompt assets, logging, test runs, and benchmarks; safety/privacy/compliance constraints wrap deployment; and proposed tools such as prompt linters, automated benchmark generation, tracing, telemetry, and integrated development workflows close the loop.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  product-copilot-interface["product copilot interface"] --> prompt-template-layer["prompt template layer"]
  product-copilot-interface --> orchestration-workflow["orchestration workflow"]
  prompt-template-layer --> orchestration-workflow
  orchestration-workflow --> llm-service["LLM service"]
  orchestration-workflow --> tool-or-product-apis["tool or product APIs"]
  orchestration-workflow --> guardrail-layer["guardrail layer"]
  llm-service --> guardrail-layer
  prompt-template-layer --> prompt-observability-logs["prompt observability logs"]
  prompt-observability-logs --> benchmark-and-evaluation-suite["benchmark and evaluation suite"]
  guardrail-layer --> benchmark-and-evaluation-suite
  benchmark-and-evaluation-suite --> developer-tooling["developer tooling"]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
product copilot interface Accepts natural-language requests from users inside a product context. prompt template layer, orchestration workflow
prompt template layer Stores and assembles prompts, dynamic examples, rules, and context. product copilot interface, orchestration workflow, prompt observability logs
orchestration workflow Coordinates intent detection, multiple prompts, multi-turn tasks, and system components. prompt template layer, LLM service, tool or product APIs, guardrail layer
LLM service Generates copilot responses and intermediate classifications or tool decisions. orchestration workflow, guardrail layer
tool or product APIs Provide product-specific context and actions for the copilot workflow. orchestration workflow
guardrail layer Represents safety, privacy, compliance, and behavior constraints around copilot output. orchestration workflow, LLM service, benchmark and evaluation suite
prompt observability logs Capture final prompts, dynamic assembly steps, model outputs, and telemetry needed to debug behavior. prompt template layer, benchmark and evaluation suite
benchmark and evaluation suite Runs flaky/nondeterministic tests, benchmarks, and performance monitoring for copilot changes. prompt observability logs, guardrail layer, developer tooling
developer tooling Proposed integrated tools such as prompt linters, tracing, telemetry, and automated benchmark creation. benchmark and evaluation suite

Data flow

A product copilot receives a user request in product context, passes through prompt templates and orchestration logic, may perform intent detection and multi-step tool/workflow calls, returns a response, and then logs prompt/output behavior into testing, benchmarking, telemetry, safety review, and prompt-improvement workflows.

3 supporting quotes
“product copilots enable users to ask questions in natural language and receive relevant responses that are specific to the user's context.”article, stated
“production copilots, single prompts were insufficient—considerable orchestration of multiple prompts and system components was necessary. Many engineers initially implemented intent detection systems where user queries were first sent to a model to determine "what kind of intent does the user have”summary, stated
“required "going through the logs and mapping the actual prompt back to the original template and each dynamic step made."”summary, stated

Why this architecture

The study argues that copilots cannot be engineered as isolated prompts: teams need lifecycle tooling because prompts are dynamically assembled, workflows are multi-step, model behavior is nondeterministic, and traditional tests are too brittle on their own.

3 supporting quotes
“software engineering processes and tools have not caught up with the challenges and scale involved with building AI-powered applications.”article, stated
“For production copilots, single prompts were insufficient—considerable orchestration of multiple prompts and system components was necessary.”summary, stated
“Testing LLM-powered systems proved fundamentally different from traditional software testing. Engineers naturally gravitated toward classical methods like unit testing but quickly discovered that "every test is a flaky test." The non-deterministic nature of”summary, stated

Models used: LLMs for product copilots · GPT-4 as a rubberduck for prompt work

Scale

11 pages"

“Thu, 21 Dec 2023 18:37:43 UTC (1,453 KB)”article, stated

Alternatives considered (roads not taken)

Treat copilots as ordinary software features with existing engineering tools

Rejected because: The study found pain points across the whole engineering process because existing tools had not adapted to LLM-specific behavior.

“From our interviews, we found pain points at every step of the engineering process and the challenges that strained existing development practices.”article, stated

Manage prompts only with version control

Rejected because: Versioned prompt assets did not provide continuous validation, performance tracking, or visibility into dynamic prompt assembly.

“while prompt assets were kept in version control, there were no systems in place to continuously validate and track performance over time”summary, stated

Use traditional deterministic unit tests for LLM behavior

Rejected because: Engineers found LLM tests flaky because model responses can vary on repeated runs.

“Engineers naturally gravitated toward classical methods like unit testing but quickly discovered that "every test is a flaky test."”summary, stated

Build copilot workflows as single prompts

Rejected because: Production copilots required orchestration across prompts, intents, components, and multi-step tasks.

“For production copilots, single prompts were insufficient—considerable orchestration of multiple prompts and system components was necessary.”summary, stated

Patterns

prompt-versioning (prompt-engineering)

Teams kept prompt assets in version control but still lacked continuous validation and performance tracking for prompt changes.

“while prompt assets were kept in version control, there were no systems in place to continuously validate and track performance over time”summary, stated

prompt-chaining (orchestration)

Production copilots used multiple prompts and intent-detection stages rather than a single prompt-response call.

“considerable orchestration of multiple prompts and system components was necessary.”summary, stated
“user queries were first sent to a model to determine "what kind of intent does the user have for this specific query”summary, stated

eval-driven-development (evaluation)

The study identifies benchmarks, repeated test runs, telemetry, and automated benchmark creation as necessary supports for copilot development.

“time-consuming and fragile nature of prompt engineering, difficulties in orchestration and managing multi-turn workflows, the lack of standardized testing and benchmarking approaches, challenges in learning best practices in a rapidly evolving field, and concerns around safety, privacy, and”summary, stated
“automated benchmark creation, better visibility into model behavior, and more integrated development workflows.”summary, stated

safety-policy-enforcement (safety)

Safety, privacy, compliance, and guardrails appear as core constraints in product-copilot engineering rather than post-deployment concerns.

“standardized testing and benchmarking approaches, challenges in learning best practices in a rapidly evolving field, and concerns around safety, privacy, and compliance. The research reveals that existing software engineering processes and tools have not yet adapted to the unique challenges of”summary, stated
“need for better visibility into internal reasoning states of agents, improved tracking of multi-step tasks, and stronger guardrails on agent behavior in production systems. ## Testing and Evaluation Challenges Testing LLM-powered systems proved fundamentally different from traditional software”summary, stated

observability-tracing (operations)

Teams needed visibility into final prompt construction, dynamic steps, model behavior, and multi-step tasks to debug production copilots.

“difficulties in "inspecting that final prompt" and required "going through the logs and mapping the actual prompt back to the original template”summary, stated
“need for better visibility into internal reasoning states of agents, improved tracking of multi-step tasks”summary, stated

Tradeoffs

Use repeated stochastic test runs.

Chose Run each test multiple times and accept pass-rate thresholds over Expect a deterministic pass/fail assertion from one model call.

Rationale: LLM responses vary, so repeated trials better reflect behavior than a single brittle assertion.

“running "each test 10 times" and considering it passing only if "7 of the 10 instances passed."”summary, stated
“test is a flaky test." The non-deterministic nature of LLMs made writing assertions extremely difficult since each response might differ from the last. To address this, engineers adopted strategies like running "each test 10 times" and considering it passing only if "7 of the 10 instances”summary, stated

Invest in integrated copilot development tooling.

Chose Prompt, orchestration, testing, telemetry, and benchmark tools in one workflow over Fragmented ad hoc scripts and traditional software-only tools.

Rationale: The paper finds friction across every stage, so isolated fixes do not address lifecycle-wide LLMOps needs.

“This fragmentation significantly impacted productivity and created ongoing friction in production LLM development.”summary, stated
“improved tooling, including prompt linters, automated benchmark creation, better visibility into model behavior, and more integrated development workflows. ## Long Summary ## Overview This case study represents a comprehensive research effort by Microsoft and GitHub that examined the real-world”summary, stated

Use model assistance for prompt debugging.

Chose GPT-4 as a rubberduck for prompt work over Manual prompt debugging only.

Rationale: The proposed solutions include using a stronger model to reason about prompt behavior, but only as support for engineer judgment.

“One engineer shared using GPT-4 itself as a "rubberduck" for validating prompt clarity, running a "is this clear" prompt on all prompts they write to detect ambiguous scenarios.”summary, stated

Gotchas (what bit them)

Prompt changes are hard to reason about once prompts are dynamically assembled.

Root cause: The final prompt can combine templates, examples, rules, and dynamic steps that are hard to inspect after the fact.

Resolution: Add prompt tracing, linters, and change-impact tooling rather than relying on static prompt files alone.

“created difficulties in "inspecting that final prompt" and required "going through the logs and mapping the actual prompt back”summary, stated
“suggestions included developing prompt linters to validate prompts using team-defined best practices”summary, stated

Classical tests become flaky for LLM-powered systems.

Root cause: Nondeterministic model responses undermine exact assertions and make one-scenario tests poor predictors.

Resolution: Use repeated runs, probabilistic pass criteria, benchmarks, and automated benchmark creation.

“The non-deterministic nature of LLMs made writing assertions extremely difficult since each response might differ from the last.”summary, stated
“if you do it for one scenario no guarantee it will work for another scenario”summary, stated

Multi-step copilots can lose the task thread.

Root cause: Long-running sessions and internal orchestration states are opaque, so a model may misinterpret a user turn as completion.

Resolution: Improve tracking of multi-step tasks and add guardrails around agent behavior.

“models could "completely lose the script," mistaking user prompts as indicating completion and going "off the rails."”summary, stated
“need for better visibility into internal reasoning states of agents, improved tracking of multi-step tasks, and stronger guardrails”summary, stated

Teams lack shared best practices during rapid technology change.

Root cause: LLM application engineering was new enough that existing software practices and tooling did not cover the work.

Resolution: Build integrated development workflows and shared tooling for prompts, orchestration, tests, telemetry, and safety.

“challenges in learning best practices in a rapidly evolving field”summary, stated
“leaving engineers to improvise without established best practices.”summary, stated

Evaluation

The paper itself evaluates engineering needs through interviews and brainstorming; the copilot systems studied struggled with flaky tests, weak benchmarks, repeated-run heuristics, telemetry, and prompt-change tracing.

Metrics: 26 engineer interviews · pain points across every engineering step · test pass rate over repeated LLM runs · benchmark coverage · prompt-change impact · visibility into model behavior and multi-step task state

3 supporting quotes
“we present the findings of an interview study with 26 professional software engineers responsible for building product copilots”article, stated
“We then conducted group brainstorming sessions to collaborative on opportunities and tool designs”article, stated
“automated benchmark creation, better visibility into model behavior, and more integrated development workflows.”summary, stated

Outcomes

The study reports 26 professional software-engineer interviews, an 11-page arXiv paper, and group brainstorming sessions; it does not provide production traffic, user, or latency metrics for a single copilot.

3 supporting quotes
“From our interviews, we found pain points at every step of the engineering process”article, stated
“Through brainstorming sessions, engineers identified several opportunities for improvement.”summary, stated
“prompt linters, automated benchmark creation, better visibility into model behavior, and more integrated development workflows.”summary, stated