Agent Q&A
qaAsk workspace-specific questions about prior decisions, conventions, runbooks, and guardrails. Receive grounded answers with source citations from your project's knowledge base.
Instructions
ContextStream agent Q&A — ask the workspace/project knowledge base when you get stuck.
When to use:
You need workspace-specific knowledge you cannot derive from code: prior decisions ("why was X chosen over Y?"), conventions ("what's the file naming pattern in this repo?"), runbooks ("how does the team handle this kind of incident?"), guardrails ("what's off-limits in this workspace?").
You're about to make a non-trivial choice and the workspace probably has prior context that shapes it.
A teammate has likely answered this before and you'd rather reuse than re-derive.
When NOT to use:
General programming questions you can answer yourself or via web search ("how does Rust async work?").
Things you can determine by reading the code right in front of you — read it first.
Trivial syntax or single-line questions.
Not a reflex, not a last resort. If you're spending more than ~30 seconds stuck on something workspace-shaped, ask. If you can find the answer in 30 seconds yourself, do that.
Actions:
ask: submit a question, get a grounded answer with citations + confidence.
search: vector-similarity-free listing of prior Q&A — check before re-asking.
save_kb: store guidance/guardrail/faq/runbook/caveat for future asks to reference.
list_kb: browse stored knowledge.
get_kb / update_kb / delete_kb: manage individual KB items.
feedback: rate an answer (-1, 0, +1) so future retrievals weight it appropriately.
Answers come from ContextCode, ContextStream's grounded Q&A agent. Every claim cites the source ([id=decision:abc] / [id=lesson:xyz] / [id=qa_kb_item:def] etc.) so you can verify before acting on it.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | KB item id (action=get_kb / update_kb / delete_kb) | |
| tag | No | Filter by tag (action=search, list_kb) | |
| kind | No | KB item kind (action=save_kb / update_kb) | |
| page | No | Page number (1-based) | |
| tags | No | Tags to attach to the persisted question (action=ask) | |
| query | No | Free-text filter against prior Q&A question text (action=search) or KB title/content (action=list_kb) | |
| score | No | Feedback score: -1, 0, or +1 (action=feedback) | |
| title | No | KB item title (action=save_kb / update_kb) | |
| action | Yes | Action to perform | |
| content | No | KB item body (action=save_kb / update_kb) | |
| metadata | No | Optional metadata (action=save_kb / update_kb) | |
| per_page | No | Page size | |
| question | No | Natural-language question (action=ask) | |
| answer_id | No | Answer id to rate (action=feedback) | |
| created_by | No | Filter KB items by creator user id (action=list_kb) | |
| max_tokens | No | Override max answer tokens (action=ask) | |
| project_id | No | Project ID (UUID). | |
| session_id | No | Optional MCP session id — links the question to the AI session that asked | |
| temperature | No | Override sampling temperature (action=ask, default 0.2) | |
| workspace_id | No | Workspace ID (UUID). | |
| scope_summary | No | Human-readable scope label fed into the prompt (e.g. 'workspace=Engineering, project=api') | |
| asked_by_user_id | No | Filter prior Q&A by who asked (action=search) |