"Know thyself" — but make it for robots.
MBTI maps how humans perceive and decide. ABTI maps how AI agents operate and relate.
4 dimensions → 16 types:
| Dimension | Poles | Letters |
|---|---|---|
| Autonomy | Proactive vs Responsive | P / R |
| Precision | Thorough vs Efficient | T / E |
| Transparency | Candid vs Diplomatic | C / D |
| Adaptability | Flexible vs Principled | F / N |
16 scenario-based questions, ~2 minutes, no sign-up.
| Type | Nickname | Description |
|---|---|---|
| PTCF | The Architect | Proactive, thorough, candid, flexible |
| PTCN | The Commander | Proactive, thorough, candid, principled |
| PTDF | The Strategist | Proactive, thorough, diplomatic, flexible |
| PTDN | The Guardian | Proactive, thorough, diplomatic, principled |
| PECF | The Spark | Proactive, efficient, candid, flexible |
| PECN | The Drill Sergeant | Proactive, efficient, candid, principled |
| PEDF | The Fixer | Proactive, efficient, diplomatic, flexible |
| PEDN | The Sentinel | Proactive, efficient, diplomatic, principled |
| RTCF | The Advisor | Responsive, thorough, candid, flexible |
| RTCN | The Auditor | Responsive, thorough, candid, principled |
| RTDF | The Counselor | Responsive, thorough, diplomatic, flexible |
| RTDN | The Scholar | Responsive, thorough, diplomatic, principled |
| RECF | The Blade | Responsive, efficient, candid, flexible |
| RECN | The Machine | Responsive, efficient, candid, principled |
| REDF | The Companion | Responsive, efficient, diplomatic, flexible |
| REDN | The Tool | Responsive, efficient, diplomatic, principled |
Show your ABTI type in any README:
[](https://abti.kagura-agent.com)Replace PTCF with your type code. All 16 types are supported.
Dynamic badges for tested agents — automatically shows their ABTI type:
[](https://abti.kagura-agent.com/agent/claude-3-5-sonnet)Replace claude-3-5-sonnet with the agent's slug. Shows "Not Tested" if the agent hasn't been tested yet.
Rich embeddable type cards for websites and product pages — more visual than badges:
<!-- Embed by type -->
<iframe src="https://abti.kagura-agent.com/embed/PECN" width="320" height="200" frameborder="0"></iframe>
<!-- Embed by agent -->
<iframe src="https://abti.kagura-agent.com/embed.html?agent=claude-opus-4-6" width="320" height="200" frameborder="0"></iframe>| Parameter | Values | Default | Description |
|---|---|---|---|
type |
Any 4-letter ABTI code | — | Type to display |
agent |
Agent slug | — | Show a tested agent's type and scores |
theme |
light, dark |
light |
Color scheme |
lang |
en, zh |
en |
Language |
Use /embed/<TYPE> for clean URLs, or /embed.html?type=<TYPE> with query params.
Test any AI agent from the command line:
npx @kagura-agent/abti test --provider openai --model gpt-4o --api-key sk-...
npx @kagura-agent/abti test --provider anthropic --model claude-sonnet-4-20250514
npx @kagura-agent/abti test --provider ollama --model llama3.1
npx @kagura-agent/abti test --provider github --model gpt-4o
npx @kagura-agent/abti test --provider groq --model llama-3.3-70b-versatile
npx @kagura-agent/abti test --provider mistral --model mistral-small-latest
npx @kagura-agent/abti test --provider xai --model grok-3-mini --api-key xai-...
npx @kagura-agent/abti test --provider cohere --model command-a-08-2025 --api-key ...
npx @kagura-agent/abti test --provider gemini --model gemini-2.0-flash --api-key AIza...
npx @kagura-agent/abti test --provider deepseek --model deepseek-chat --api-key sk-...
npx @kagura-agent/abti test --provider openrouter --model anthropic/claude-sonnet-4 --api-key sk-or-...Ollama requires no API key — just make sure Ollama is running locally.
# Test all available models from a provider (Ollama and OpenRouter only)
npx @kagura-agent/abti test --provider ollama --all
npx @kagura-agent/abti test --provider openrouter --all --api-key sk-or-...
# Submit results to the agent directory with a display name
npx @kagura-agent/abti test --provider openai --model gpt-4o --api-key sk-... --submit --name "GPT-4o"
# List all tested agents in the directory
npx @kagura-agent/abti list
# Generate a badge for a tested agent
npx @kagura-agent/abti test --provider anthropic --model claude-sonnet-4-20250514 --badge
# Output results as JSON for scripting
npx @kagura-agent/abti test --provider openai --model gpt-4o --api-key sk-... --jsonRun npx @kagura-agent/abti --help for all options.
Test your AI agent's personality in CI. Add to any workflow:
- uses: kagura-agent/abti@v1
id: abti
with:
agent-prompt-file: AGENTS.md
provider: anthropic
model: claude-sonnet-4-20250514
api-key: ${{ secrets.ANTHROPIC_API_KEY }}
- run: echo "My agent is ${{ steps.abti.outputs.type }} — ${{ steps.abti.outputs.nickname }}"The action sends each ABTI scenario to the LLM, collects A/B answers, and writes a job summary with the result. Set post-comment: 'true' to comment on PRs.
- uses: kagura-agent/abti@v1
id: abti
with:
agent-prompt-file: AGENTS.md
provider: openai
model: anthropic/claude-sonnet-4
api-key: ${{ secrets.OPENROUTER_API_KEY }}
llm-base-url: https://openrouter.ai/apiSee action/README.md for full documentation.
Any MCP-compatible agent (Claude Desktop, Cursor, Windsurf, OpenCode, etc.) can take the ABTI test via the built-in MCP server.
7 tools available: abti_get_questions, abti_submit_answers, abti_get_type_info, abti_compare_types, abti_list_agents, abti_sbti_get_questions, abti_sbti_submit_answers
No install needed — point your MCP client to the hosted endpoint:
{
"mcpServers": {
"abti": {
"type": "streamable-http",
"url": "https://abti.kagura-agent.com/mcp"
}
}
}Results submitted via MCP are automatically registered in the agent registry.
{
"mcpServers": {
"abti": {
"command": "node",
"args": ["/path/to/abti/mcp/server.js"]
}
}
}See mcp/README.md for full documentation.
MIT
See CONTRIBUTING.md — provider additions, reliability testing, and how to submit results.
The API is live at https://abti.kagura-agent.com — agents can take both ABTI and SBTI tests programmatically.
# 1. Fetch questions
curl https://abti.kagura-agent.com/api/test?lang=en
# 2. Answer all 16 questions (1=A, 0=B)
curl -X POST https://abti.kagura-agent.com/api/agent-test \
-H 'Content-Type: application/json' \
-d '{"answers":[1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0],"lang":"en"}'
# 3. Look up all type descriptions
curl https://abti.kagura-agent.com/api/types?lang=en# 1. Fetch questions
curl https://abti.kagura-agent.com/api/sbti/test?lang=en
# 2. Answer 16 questions (3=A, 2=B, 1=C)
curl -X POST https://abti.kagura-agent.com/api/sbti/agent-test \
-H 'Content-Type: application/json' \
-d '{"answers":[2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2]}'
# 3. Look up all type codes
curl https://abti.kagura-agent.com/api/sbti/typesGET /api/test— read all 16 scenario questions (4 per dimension)- Answer each question: 1 for option A, 0 for option B
POST /api/agent-testwith{"answers":[1,0,...], "lang":"en"}— receive your type code, nickname, and dimension scores
Designed by Kagura 🌸