Multi-turn conversation, relevance filtering, context from 4 VectorDB collections simultaneously โ AskProduct is more than a chatbot. It's your team's institutional memory.
Generic AI chatbots (GPT-4 playground, Claude.ai, etc.) have no knowledge of your specific codebase, your team's Epics, or your architectural decisions. Every answer they give is based on training data and any context you manually paste into the prompt. This makes them useful for general programming questions but unreliable for product-specific questions like "Why does the payment service use Redis for session management?" or "What Epic does the inventory webhook belong to?"
AskProduct is different because it operates on a semantic index built from your codebase, your product documentation, your Epics and Stories, and your architectural design documents. When you ask a question, the answer draws from real artifacts in your product workspace โ not from general knowledge. It cites the specific file, Epic, or design document it retrieved from, making every answer traceable and verifiable.
Teams using AskProduct report a 68% reduction in "who knows how X works?" Slack messages within the first month. New developers onboarding to a product can get architecture context, API contract details, and business logic explanations in seconds โ knowledge that previously required tracking down a senior engineer who wrote the code 3+ years ago.
FlowSquad maintains 4 separate VectorDB collections per product, each containing a different type of semantic content. When a user submits a question to AskProduct, FlowSquad's retrieval engine performs a parallel ANN (Approximate Nearest Neighbor) search across all four collections simultaneously, then merges and re-ranks the results before assembling the LLM prompt.
| Collection | Content Type | Avg Chunks per Product | Typical Relevance Weight |
|---|---|---|---|
| code | Function/class/module extractions (all 11 languages) | 12,000โ80,000 | High for technical questions |
| epics | Epic titles, descriptions, acceptance criteria | 50โ500 | High for feature/requirement questions |
| stories | User stories with full text and linked Epic context | 200โ2,000 | Medium โ bridges code and requirements |
| documentation | Confluence pages, README files, HLD/LLD documents | 500โ5,000 | High for architecture/process questions |
The parallel retrieval is critical: a question like "What authentication mechanism does the user login flow use?" requires context from both the code collection (the actual auth implementation) and the stories collection (the acceptance criteria that defined the auth requirements). Single-collection retrieval would give an incomplete answer missing half of the picture.
Multi-turn conversation allows AskProduct to maintain context across a series of related questions in the same session, eliminating the need to restate background in every message. This is implemented via a conversation buffer that stores the last 10 message pairs (user question + AskProduct response), which are prepended to the LLM system prompt on each new question.
The practical effect is dramatic. A developer investigating a bug can ask "How does the checkout flow handle payment failures?" โ get a detailed answer with code references โ then immediately follow up with "Does that same flow handle Stripe webhook retries?" and AskProduct understands that "that same flow" refers to the checkout payment failure flow discussed in the previous turn. Without multi-turn memory, the developer would need to re-specify full context on every message, a pattern that frustrates users and produces worse LLM outputs from truncated context.
After retrieving the top-K candidates from each VectorDB collection, AskProduct applies a cosine similarity relevance filter with a default threshold of 0.72. Any chunk scoring below this threshold is discarded, regardless of how many other chunks are available. This means the LLM may receive fewer than K chunks if the question is highly specific and only a small number of chunks are genuinely relevant โ rather than padding the context with low-signal material that degrades output quality.
The threshold is configurable per product (range 0.50โ0.95) in Product Settings โ AskProduct โ Relevance Threshold. Lowering the threshold returns more context (better for broad exploratory questions), while raising it enforces stricter relevance (better for precise technical questions in large, noisy codebases). FlowSquad's default of 0.72 was calibrated across 2,400 benchmark questions to minimize the hallucination rate while maintaining answer completeness above 91%.
AskProduct handles three broad question categories: technical implementation questions (about code structure, algorithms, and APIs), product requirements questions (about Epic/Story intent and acceptance criteria), and architectural questions (about design decisions and component interactions). Below are representative Q&A examples from real FlowSquad deployments.
src/clients/api_client.py, class RateLimitedClient (line 47). It implements a token bucket algorithm using Redis as the shared counter store โ bucket capacity of 100 requests, refill rate of 10 req/second. This allows burst capacity while maintaining sustained rate limits across horizontally scaled instances.
AskProduct answers from the indexed VectorDB state, which is updated when a re-index is triggered (manually or via Git webhook on push). Uncommitted local changes are not visible to AskProduct until they are pushed to the connected repository and FlowSquad processes the webhook event. Re-indexing a branch takes approximately 2โ5 minutes for most repositories.
When no chunks exceed the relevance threshold for a query, AskProduct responds with a transparent "no relevant context found" message rather than attempting to answer from general LLM knowledge. This prevents hallucinated answers that reference non-existent files or functions โ a critical correctness requirement for developer trust.
Conversation history is persisted in the FlowSquad application database per session. Users can return to a previous conversation thread and continue where they left off, or start a new thread with a clean context. Conversation history is subject to RBAC โ users can only view their own conversation threads, while Product Admins can view all threads within their product for quality auditing.
Yes. AskProduct conversations can be exported as Markdown or PDF from the conversation panel. Product Admins can also trigger a "Generate README" or "Generate Module Documentation" workflow that uses AskProduct's retrieval pipeline to produce documentation stubs for each major component โ these are saved as drafts in the Documentation collection for human review before publishing.
Yes. The Documentation VectorDB collection can be populated from multiple sources: Confluence space sync (via the Confluence integration), manual PDF/Markdown uploads from the Admin panel, and auto-generated HLD/LLD documents from FlowSquad's Design tab. All uploaded documents are chunked, embedded, and indexed using the same ONNX pipeline as source code.