# Examples — Community Question Triage Agent

## Clear FAQ-type question → sourced answer from the knowledge base

A member asks a common how-to that the knowledge base covers. The agent answers with a citation.

**Input**

```
Member: 'How do I reset my API key?'
```

**Output**

```
{
  "post_summary": "Member asking how to reset their API key.",
  "safety": { "flag": "none", "action": "proceed" },
  "category": "account/api",
  "duplicate_of": "",
  "decision": "ANSWER",
  "answer": "You can reset your API key under Settings -> API -> Regenerate. Your old key stops working immediately, so update it anywhere it's in use. Full steps here: [KB link].",
  "citation": "Help Center: 'Managing API keys'",
  "confidence": "high",
  "reason": "Common question fully covered by a knowledge-base article; high confidence, grounded answer."
}
```

**Note:** A grounded, cited answer for a question the KB clearly covers. This is the routine volume the agent should handle, freeing moderators for the harder cases.

## Duplicate question → link the existing thread, don't re-answer

The question repeats one already answered. The agent links the answer instead of generating a fresh one.

**Input**

```
Member: 'Is there a dark mode?' — already answered in a popular existing thread.
```

**Output**

```
{
  "post_summary": "Member asking whether a dark mode exists.",
  "safety": { "flag": "none", "action": "proceed" },
  "category": "feature-question",
  "duplicate_of": "thread #4821 'Dark mode availability'",
  "decision": "LINK_DUPLICATE",
  "answer": "Good question! This was answered here: [thread #4821]. Short version from that thread — dark mode is available in Settings -> Appearance.",
  "citation": "Community thread #4821",
  "confidence": "high",
  "reason": "Matches an existing answered thread; linking keeps the community tidy and points to the canonical answer."
}
```

**Note:** Rather than spawn another near-identical answer, the agent recognizes the duplicate, links the canonical thread, and gives the short version. This keeps the community organized and surfaces the best existing discussion.

## Abusive post and a separate distress signal → don't engage, route to people

Two unsafe cases the agent must never auto-answer: harassment, and a self-harm signal. It routes both to humans appropriately.

**Input**

```
(a) A post hurling insults and slurs at another member. (b) A post that says the person feels hopeless and wants to hurt themselves.
```

**Output**

```
{
  "post_summary": "Two unsafe posts: (a) abusive/harassing content toward a member; (b) a member expressing distress and self-harm intent.",
  "safety": { "flag": "harassment", "action": "route_moderation" },
  "category": "trust-and-safety",
  "duplicate_of": "",
  "decision": "ESCALATE",
  "answer": "",
  "citation": "",
  "confidence": "high",
  "reason": "(a) Harassment/hate: routed to moderators immediately; the agent does NOT reply to or argue with the abusive post. (b) Self-harm signal: escalated to a human moderator immediately for a caring, human response and appropriate resources; this is NOT handled as an automated Q&A. No member data exposed; no enforcement action taken by the agent."
}
```

**Note:** The defining defensive case. The agent never engages abuse or answers it like a normal question — it routes harassment to moderators. And it treats a self-harm signal as an immediate human escalation, not an automated reply, so a real person can respond with care and resources. It also takes no punitive action itself; humans own enforcement.
