Why Build Specialist Characters?
A general-purpose AI assistant tries to do everything and excels at nothing. A specialist character has a defined role, relevant knowledge, the right tools, and persistent memory of its domain. It delivers focused, consistent results because every part of its configuration supports one purpose.
In this tutorial, you'll build a Code Review Specialist — a character that reviews Python code, references your project's coding standards, and remembers past reviews.
Step 1: Create the Character
- Open Qui Anima from the QUI Core dashboard (Services tab) or the system tray
- Click [+] in the character bar at the bottom of the Visual Builder
- A new character appears with the Anima core node at the center
Click the core node to configure the basics:
- Name:
CodeReviewer - Description:
Reviews Python code against project standards - LLM Provider: Choose your preferred provider (Anthropic, OpenAI, Google, or X)
- Model: Pick a model suited for code analysis (e.g., Claude Sonnet, GPT-4o)
[Screenshot: Core node configuration with name and model selected]
Step 2: Define Personality and Role
Click Definition in the palette (under Basics → Attributes) to add it to the canvas. Then click the Definition node to configure.
Add a system prompt entry:
- Label:
Role & Behavior - Content:
You are CodeReviewer, a senior Python code reviewer.
Your responsibilities:
- Review code for bugs, security issues, and performance problems
- Check adherence to the project's coding standards
- Suggest concrete improvements with code examples
- Be direct and specific — no vague feedback
Format:
- Start with a severity rating (Critical / Warning / Suggestion)
- Quote the specific line or block you're reviewing
- Explain the issue and provide a corrected version
Tip: Be specific about output format. A well-structured system prompt means consistent, actionable reviews every time.
Step 3: Add Memory
Click Memory in the palette (under Cognitive Design → Memory) to add it to the canvas.
Memory gives your reviewer persistent context. After several reviews, it will:
- Remember patterns it has seen before ("we discussed this same null-check issue last week")
- Track recurring issues across reviews
- Build up domain knowledge about your codebase
Click the Memory node to configure:
- Memory kinds: Leave defaults (facts, events, general) — the system categorizes automatically
- Importance threshold: Default is fine for most uses
Step 4: Add Knowledge Base
Click Knowledge in the palette to add it to the canvas. Then click the Knowledge node and upload your project's reference documents:
- Your team's coding standards document (
.mdor.txt) - Project architecture overview
- Common patterns and anti-patterns specific to your codebase
The reviewer will search these documents on every review and reference them when pointing out issues. This is what elevates it from "generic code review" to "reviews against your standards."
Step 5: Enable Terminal Access (Optional)
If you want the reviewer to actually run your code or check test results, add the Terminal node from the palette (under Cognitive Design → Tools).
Click the Terminal node to configure the safety preset:
- read_only — can view files and run non-destructive commands (safest)
- developer — can run build commands, tests, and development tools
For a code reviewer, read_only or developer is appropriate. Avoid system_admin unless the character genuinely needs it.
Step 6: Test in Strings
- Open Strings from the QUI Core dashboard or system tray
- Create a new String
- Select CodeReviewer as the character
- Paste some code and ask for a review
Review this function for issues:
def get_user(id):
query = f"SELECT * FROM users WHERE id = {id}"
result = db.execute(query)
return result[0] if result else None
The reviewer should catch the SQL injection vulnerability, the SELECT * anti-pattern, and suggest parameterized queries — referencing your coding standards if you uploaded them.
What You Built
Your specialist character has:
| Component | Purpose |
|---|---|
| Identity | Name, role, and LLM model suited to the task |
| System prompts | Specific behavior rules and output format |
| Memory | Persistent context across reviews |
| Knowledge Base | Your project's actual coding standards |
| Terminal (optional) | Ability to read files and run tests |
This same pattern works for any specialist: swap the system prompt, knowledge base, and tools for a different domain — data analyst, support agent, technical writer, security auditor.
Next Steps
- Add Autothink for deeper reasoning on complex reviews — see Autothink
- Enable M2M so the reviewer can collaborate with other specialist characters — see M2M Messaging
- Set up the Sequencer to run automated reviews on a schedule
- Read the full Character Builder reference for all available nodes