Skip to main content

Creating Specialist Characters with Qui Anima

· By Qui Academy · 3 min read

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

  1. Open Qui Anima from the QUI Core dashboard (Services tab) or the system tray
  2. Click [+] in the character bar at the bottom of the Visual Builder
  3. 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 (.md or .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

  1. Open Strings from the QUI Core dashboard or system tray
  2. Create a new String
  3. Select CodeReviewer as the character
  4. 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

About the author

Qui Academy Qui Academy
Updated on Mar 22, 2026