AI Capabilities Identification¶
This notebook demonstrates how to trace from user intent → AI tasks → required capabilities → intrinsic implementations.
This notebook demonstrates:
- How to use LLMs to identify AI tasks from use case descriptions
- How to discover which capabilities are needed for those tasks using AtlasExplorer
- How to find which model intrinsics/adapters implement those capabilities
- An end-to-end traceability for AI system design
1. Setup and imports¶
import os
from rich.jupyter import print
from ai_atlas_nexus.blocks.inference import (
RITSInferenceEngine,
WMLInferenceEngine,
OllamaInferenceEngine,
VLLMInferenceEngine,
)
from ai_atlas_nexus.blocks.inference.params import (
InferenceEngineCredentials,
RITSInferenceEngineParams,
WMLInferenceEngineParams,
OllamaInferenceEngineParams,
VLLMInferenceEngineParams,
)
from ai_atlas_nexus import AIAtlasNexus
/Users/ingevejs/Documents/workspace/ingelise/risk-atlas-nexus/src/ai_atlas_nexus/blocks/risk_explorer/explorer.py:8: UserWarning: Deprecated, Please use AtlasExplorer instead
warnings.warn("Deprecated, Please use AtlasExplorer instead")
/Users/ingevejs/Documents/workspace/ingelise/risk-atlas-nexus/src/ai_atlas_nexus/toolkit/job_utils.py:4: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
from tqdm.autonotebook import tqdm
2025-12-22 20:52:14,894 - INFO - PyTorch version 2.7.0 available.
2025-12-22 20:52:14,896 - INFO - Duckdb version 1.3.2 available.
2. Initialize AI Atlas Nexus¶
Initialize the ontology with the default capabilities, tasks, and intrinsics.
# Initialize AI Atlas Nexus
aan = AIAtlasNexus()
print("AI Atlas Nexus initialized:")
print(f" {len(aan.get_all("capabilities"))} capabilities available")
print(f" {len(aan.get_all("aitasks"))} AI tasks available")
print(f" {len(aan.get_all("llmintrinsics") or [])} LLM intrinsics available")
print(f" {len(aan.get_all("adapters"))} adapters available")
[2025-12-22 20:52:16:67] - INFO - AIAtlasNexus - Created AIAtlasNexus instance. Base_dir: None
AI Atlas Nexus initialized:
11 capabilities available
50 AI tasks available
9 LLM intrinsics available
19 adapters available
3. Configure an inference engine¶
Available Inference Engines: WML, Ollama, vLLM, RITS. Please follow the Inference APIs guide.
Note: RITS is intended solely for internal IBM use and requires TUNNELALL VPN for access.
inference_engine = OllamaInferenceEngine(
model_name_or_path="llama3:latest", # Change to your preferred model
credentials=InferenceEngineCredentials(api_url="http://localhost:11434"),
parameters=OllamaInferenceEngineParams(
num_predict=1000, temperature=0, repeat_penalty=1, num_ctx=8192, logprobs=False
),
)
print(f"\n# Inference engine configured: ")
print(f"# Model: {inference_engine.model_name_or_path}")
[2025-12-22 20:52:16:118] - INFO - AIAtlasNexus - OLLAMA inference engine will execute requests on the server at http://localhost:11434. [2025-12-22 20:52:16:162] - INFO - AIAtlasNexus - Created OLLAMA inference engine.
# Inference engine configured:
# Model: llama3:latest
4. Example 1: RAG use case - customer support¶
Let's analyze a real-world RAG use case and identify what AI tasks and capabilities are needed. (source?)
# Define the use case
usecase = """Generate personalized, relevant responses and recommendations for
customer support agents. The system should summarize customer claims, answer
questions about products, and provide contextual suggestions to help agents
resolve issues faster."""
print(f"\n# Use Case:")
print(usecase)
# Use Case:
Generate personalized, relevant responses and recommendations for customer support agents. The system should summarize customer claims, answer questions about products, and provide contextual suggestions to help agents resolve issues faster.
Step 1: Identify AI tasks from use case¶
Use the LLM to identify which AI tasks are needed.
# Use AI Atlas Nexus to identify tasks
task_predictions = aan.identify_ai_tasks_from_usecases(
usecases=[usecase],
inference_engine=inference_engine,
)
identified_tasks = task_predictions[0].prediction
print(f"\n# Identified AI Tasks:")
for i, task in enumerate(identified_tasks, 1):
print(f" {i}. {task}")
Inferring with OLLAMA: 100%|██████████| 1/1 [00:10<00:00, 10.37s/it]
model='llama3:latest' created_at='2025-12-22T20:52:26.567695Z' done=True done_reason='stop' total_duration=10362765875 load_duration=5009511625 prompt_eval_count=2136 prompt_eval_duration=4509644207 eval_count=32 eval_duration=686231998 response='[\n "Question Answering",\n "Summarization",\n "Text Classification",\n "Text Generation",\n "Text-to-Image"\n]' thinking=None context=[128006, 882, 128007, 271, 49812, 323, 3619, 279, 4823, 3770, 8649, 264, 1160, 315, 445, 11237, 3465, 323, 1202, 4096, 382, 58, 13922, 8366, 6234, 1232, 364, 15097, 55982, 518, 364, 8366, 11703, 1232, 364, 15097, 24790, 374, 279, 3465, 315, 61853, 264, 2440, 477, 538, 311, 264, 2728, 7855, 13, 1102, 649, 387, 1511, 369, 49183, 902, 3290, 264, 1217, 374, 7231, 477, 279, 20356, 315, 264, 5224, 11, 439, 1664, 439, 25607, 264, 19114, 3238, 2186, 5473, 8366, 6234, 1232, 364, 15097, 4791, 6830, 3310, 518, 364, 8366, 11703, 1232, 364, 15097, 4791, 6830, 3310, 374, 264, 3070, 315, 9256, 304, 902, 279, 1988, 374, 459, 7855, 323, 279, 2612, 374, 832, 477, 5361, 8066, 6264, 3614, 13, 4427, 3187, 9256, 527, 8982, 27886, 323, 2592, 25768, 3238, 2186, 5473, 8366, 6234, 1232, 364, 15097, 12, 1199, 4791, 12, 1199, 518, 364, 8366, 11703, 1232, 3436, 2186, 5473, 8366, 6234, 1232, 364, 63890, 39841, 48698, 518, 364, 8366, 11703, 1232, 364, 63890, 39841, 48698, 320, 1950, 49, 705, 1101, 3967, 439, 39841, 311, 2991, 320, 790, 51, 705, 374, 279, 3465, 315, 1380, 44631, 264, 2728, 7855, 311, 1495, 13, 1102, 706, 1690, 8522, 11, 1778, 439, 7899, 1217, 25066, 3238, 2186, 5473, 8366, 6234, 1232, 364, 20361, 9589, 5582, 518, 364, 8366, 11703, 1232, 364, 20361, 42304, 374, 279, 3465, 315, 52997, 8149, 315, 279, 6302, 3118, 304, 459, 2217, 3238, 2186, 5473, 8366, 6234, 1232, 364, 7676, 16225, 22559, 287, 518, 364, 8366, 11703, 1232, 364, 7676, 16225, 22559, 287, 320, 19171, 3967, 439, 12051, 20796, 16225, 22559, 287, 8, 374, 279, 3465, 315, 36864, 4860, 389, 2246, 5448, 13, 12051, 3488, 36864, 4211, 1935, 264, 320, 6190, 11, 3488, 8, 6857, 439, 1988, 323, 471, 459, 4320, 304, 5933, 4221, 13, 27972, 6118, 17631, 389, 7447, 26177, 4519, 11, 35271, 1495, 11, 2361, 315, 4339, 320, 62679, 12913, 288, 8, 323, 2217, 3238, 2186, 5473, 8366, 6234, 1232, 364, 9789, 12051, 20035, 838, 518, 364, 8366, 11703, 1232, 3436, 2186, 5473, 8366, 6234, 1232, 364, 14180, 95606, 518, 364, 8366, 11703, 1232, 364, 14180, 33289, 374, 279, 3465, 315, 60508, 4519, 50350, 304, 264, 1646, 3238, 2186, 5473, 8366, 6234, 1232, 364, 14788, 5364, 1091, 518, 364, 8366, 11703, 1232, 364, 12975, 291, 4221, 34579, 374, 279, 3465, 315, 79176, 1063, 315, 279, 4339, 304, 264, 11914, 323, 52997, 902, 4339, 1288, 8454, 1884, 27227, 13, 4314, 4211, 527, 5505, 994, 584, 1390, 311, 636, 264, 29564, 8830, 315, 279, 4221, 304, 902, 279, 1646, 374, 16572, 304, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1945, 55982, 518, 364, 8366, 11703, 1232, 364, 1945, 24790, 374, 279, 3465, 315, 61853, 264, 2440, 477, 538, 311, 459, 4553, 2217, 13, 12041, 527, 3685, 311, 617, 1193, 832, 538, 369, 1855, 2217, 13, 4758, 24790, 4211, 1935, 459, 2217, 439, 1988, 323, 471, 264, 20212, 922, 902, 538, 279, 2217, 17623, 311, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1945, 20595, 95606, 518, 364, 8366, 11703, 1232, 364, 1945, 4668, 33289, 374, 279, 3465, 315, 60508, 4519, 50350, 304, 264, 6500, 11376, 1646, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1945, 17652, 32199, 518, 364, 8366, 11703, 1232, 364, 1945, 17652, 32199, 65928, 459, 2217, 1139, 21282, 1405, 1855, 13252, 304, 279, 2217, 374, 24784, 311, 459, 1665, 13, 1115, 3465, 706, 5361, 27103, 1778, 439, 2937, 60852, 11, 7363, 94783, 60852, 323, 42833, 60852, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1945, 4791, 12, 1945, 518, 364, 8366, 11703, 1232, 364, 1945, 4791, 14064, 374, 279, 3465, 315, 46890, 459, 1988, 2217, 1555, 264, 8205, 315, 3284, 14951, 7607, 323, 59629, 11, 1778, 439, 2307, 64036, 11, 2217, 33444, 71959, 11, 1933, 2065, 11, 323, 810, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1945, 12, 1199, 4791, 12, 1199, 518, 364, 8366, 11703, 1232, 364, 1945, 9529, 4791, 9529, 4211, 1935, 304, 459, 2217, 323, 1495, 10137, 323, 2612, 1495, 13, 4314, 4211, 527, 1101, 2663, 11376, 44658, 4211, 11, 477, 650, 11237, 82, 13, 578, 6811, 505, 2217, 4791, 9529, 4211, 374, 430, 1521, 4211, 1935, 459, 5217, 1495, 1988, 11, 539, 65951, 279, 1646, 311, 3738, 1005, 5157, 1093, 2217, 17703, 287, 11, 323, 1253, 1101, 387, 16572, 311, 4287, 264, 10652, 439, 1988, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1945, 4791, 12, 1199, 518, 364, 8366, 11703, 1232, 364, 1945, 311, 1495, 4211, 2612, 264, 1495, 505, 264, 2728, 2217, 13, 4758, 17703, 287, 477, 29393, 3752, 18324, 649, 387, 6646, 439, 279, 1455, 4279, 8522, 315, 2217, 311, 1495, 3238, 2186, 5473, 8366, 6234, 1232, 364, 6746, 1100, 787, 58453, 518, 364, 8366, 11703, 1232, 364, 6746, 1100, 787, 18468, 374, 279, 3465, 315, 25607, 23222, 35947, 3585, 477, 4519, 304, 459, 2217, 3238, 2186, 5473, 8366, 6234, 1232, 364, 12975, 24367, 518, 364, 8366, 11703, 1232, 364, 12975, 9659, 374, 279, 3465, 315, 24038, 27227, 430, 10765, 264, 3230, 1665, 477, 5654, 315, 2802, 304, 264, 2728, 2217, 13, 62232, 527, 3629, 1511, 304, 60852, 9256, 11, 1405, 814, 3493, 264, 24473, 1648, 311, 43223, 279, 1665, 315, 2802, 369, 4726, 8863, 477, 6492, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1211, 58453, 518, 364, 8366, 11703, 1232, 364, 1211, 58453, 4211, 2187, 3932, 311, 10765, 6302, 315, 3738, 4613, 6989, 13, 3075, 18468, 4211, 5371, 459, 2217, 439, 1988, 323, 2612, 279, 5448, 449, 31718, 15039, 323, 9382, 389, 16914, 6302, 3238, 2186, 5473, 8366, 6234, 1232, 364, 10955, 55982, 518, 364, 8366, 11703, 1232, 364, 10955, 24790, 374, 279, 3465, 315, 61853, 264, 2440, 477, 538, 311, 459, 4553, 2835, 13, 20114, 527, 3685, 311, 617, 1193, 832, 538, 369, 1855, 2835, 13, 8519, 24790, 4211, 1935, 264, 2835, 439, 1988, 323, 471, 264, 20212, 922, 902, 538, 279, 2835, 17623, 311, 3238, 2186, 5473, 8366, 6234, 1232, 364, 14924, 22559, 287, 518, 364, 8366, 11703, 1232, 364, 14924, 22559, 287, 4211, 649, 17622, 279, 4320, 311, 264, 3488, 505, 264, 2728, 1495, 11, 902, 374, 5505, 369, 15389, 369, 459, 4320, 304, 264, 2246, 13, 4427, 3488, 36864, 4211, 649, 7068, 11503, 2085, 2317, 0, 25762, 5473, 8366, 6234, 1232, 364, 697, 258, 11167, 21579, 518, 364, 8366, 11703, 1232, 364, 697, 258, 11167, 6975, 374, 279, 55580, 5603, 315, 6975, 505, 1957, 555, 45830, 449, 459, 4676, 1555, 9269, 323, 1493, 323, 12588, 21845, 320, 43324, 477, 6928, 8, 439, 11302, 25762, 5473, 8366, 6234, 1232, 364, 85664, 22196, 488, 518, 364, 8366, 11703, 1232, 364, 85664, 22196, 488, 374, 279, 3465, 315, 26679, 1268, 4528, 1403, 22755, 527, 13, 80642, 38723, 4211, 5625, 1988, 22755, 1139, 23728, 320, 12529, 25624, 8, 430, 12602, 42833, 2038, 323, 11294, 1268, 3345, 320, 65387, 8, 814, 527, 1990, 1124, 13, 1115, 3465, 374, 8104, 5505, 369, 2038, 57470, 323, 59454, 54489, 287, 3238, 2186, 5473, 8366, 6234, 1232, 364, 9370, 5730, 2065, 518, 364, 8366, 11703, 1232, 364, 9370, 5730, 2065, 374, 279, 3465, 315, 17843, 264, 24210, 2373, 315, 264, 2246, 1418, 47995, 1202, 3062, 2038, 13, 4427, 4211, 649, 8819, 1495, 505, 279, 4113, 1988, 11, 1418, 1023, 4211, 649, 7068, 11622, 502, 1495, 3238, 2186, 5473, 8366, 6234, 1232, 364, 2620, 16225, 22559, 287, 518, 364, 8366, 11703, 1232, 364, 2620, 16225, 22559, 287, 320, 2620, 67008, 8, 374, 279, 36864, 264, 3488, 922, 459, 2038, 389, 264, 2728, 2007, 3238, 2186, 5473, 8366, 6234, 1232, 364, 8750, 1299, 55982, 518, 364, 8366, 11703, 1232, 364, 8750, 1299, 24790, 374, 279, 3465, 315, 538, 7922, 264, 2218, 5699, 320, 64, 1912, 8, 3196, 389, 743, 315, 8365, 3238, 2186, 5473, 8366, 6234, 1232, 364, 8750, 1299, 48570, 518, 364, 8366, 11703, 1232, 364, 8750, 1299, 31649, 374, 279, 3465, 315, 52997, 264, 35876, 907, 2728, 264, 743, 315, 8365, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1199, 55982, 518, 364, 8366, 11703, 1232, 364, 1199, 55982, 374, 279, 3465, 315, 61853, 264, 2440, 477, 538, 311, 264, 2728, 1495, 13, 4427, 1005, 5157, 527, 27065, 6492, 11, 5933, 4221, 45478, 11, 323, 47614, 69225, 62172, 58423, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1199, 24367, 518, 364, 8366, 11703, 1232, 364, 74414, 1495, 374, 279, 3465, 315, 24038, 502, 1495, 2728, 2500, 1495, 13, 4314, 4211, 649, 11, 369, 3187, 11, 5266, 304, 33243, 1495, 477, 63330, 10857, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1199, 4791, 12, 1945, 518, 364, 8366, 11703, 1232, 364, 1199, 4791, 14064, 374, 279, 3465, 315, 24038, 5448, 505, 1988, 1495, 13, 4314, 58773, 649, 1101, 387, 1511, 311, 5719, 323, 4600, 5448, 3196, 389, 1495, 52032, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1199, 4791, 6354, 40686, 518, 364, 8366, 11703, 1232, 364, 1199, 4791, 6354, 40686, 320, 51, 10155, 8, 374, 279, 3465, 315, 24038, 5933, 49227, 8982, 2728, 1495, 1988, 13, 350, 10155, 4211, 649, 387, 11838, 311, 617, 264, 3254, 1646, 430, 27983, 8982, 369, 5361, 22032, 323, 5361, 15823, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1199, 4791, 12, 10955, 518, 364, 8366, 11703, 1232, 364, 1199, 4791, 42411, 4211, 649, 387, 1511, 304, 904, 3851, 430, 7612, 24038, 13263, 8668, 315, 5448, 505, 1495, 13, 364, 2186, 5473, 8366, 6234, 1232, 364, 3404, 55982, 518, 364, 8366, 11703, 1232, 364, 3404, 24790, 374, 264, 5933, 4221, 8830, 3465, 304, 902, 264, 2440, 374, 12893, 311, 1063, 11460, 304, 264, 1495, 13, 4427, 5526, 4037, 24790, 1207, 25792, 527, 41559, 10606, 48698, 320, 14220, 8, 323, 3744, 8838, 6354, 40686, 320, 34004, 50, 8, 79253, 13, 452, 643, 4211, 1436, 387, 16572, 311, 10765, 3230, 15086, 304, 264, 1495, 11, 1778, 439, 13003, 11, 7931, 323, 7634, 26, 323, 14128, 50, 79253, 1053, 10765, 11, 369, 3187, 11, 902, 4339, 304, 264, 1495, 527, 62946, 11, 90938, 11, 323, 62603, 15785, 3238, 2186, 5473, 8366, 6234, 1232, 364, 25416, 518, 364, 8366, 11703, 1232, 364, 25416, 374, 279, 3465, 315, 34537, 1495, 505, 832, 4221, 311, 2500, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1844, 46468, 4758, 24367, 518, 364, 8366, 11703, 1232, 364, 1844, 46468, 2217, 9659, 374, 279, 3465, 315, 24038, 5448, 449, 912, 3044, 304, 904, 2317, 320, 4908, 264, 10137, 1495, 477, 2500, 2217, 570, 9843, 16572, 11, 279, 1646, 690, 1893, 5448, 430, 52280, 1202, 4967, 828, 8141, 3238, 2186, 5473, 8366, 6234, 1232, 364, 10955, 12, 1199, 4791, 12, 1199, 518, 364, 8366, 11703, 1232, 364, 10955, 9529, 4791, 9529, 4211, 1935, 304, 264, 2835, 323, 264, 1495, 10137, 323, 2612, 1495, 13, 4314, 4211, 527, 1101, 2663, 2835, 44658, 4211, 3238, 2186, 5473, 8366, 6234, 1232, 364, 9789, 16225, 22559, 287, 518, 364, 8366, 11703, 1232, 364, 9789, 16225, 22559, 287, 374, 279, 3465, 315, 36864, 1825, 84175, 4860, 3196, 389, 459, 2217, 13, 2435, 2612, 5933, 4221, 14847, 311, 5933, 4221, 4860, 3238, 2186, 5473, 8366, 6234, 1232, 364, 18483, 31361, 354, 55982, 518, 364, 8366, 11703, 1232, 364, 18483, 64630, 1495, 24790, 374, 264, 3465, 304, 5933, 4221, 8863, 1405, 264, 1646, 374, 16572, 389, 264, 743, 315, 30929, 10507, 719, 374, 1243, 3025, 311, 49229, 502, 10507, 505, 8767, 64233, 6989, 3238, 2186, 5473, 8366, 6234, 1232, 364, 18483, 31361, 354, 4758, 55982, 518, 364, 8366, 11703, 1232, 364, 18483, 64630, 2217, 24790, 374, 279, 3465, 315, 538, 7922, 8767, 64233, 6989, 2391, 4967, 315, 264, 1646, 3238, 2186, 5473, 8366, 6234, 1232, 364, 18483, 31361, 354, 3075, 58453, 518, 364, 8366, 11703, 1232, 364, 18483, 64630, 1665, 18468, 374, 264, 6500, 11376, 3465, 311, 11388, 6302, 323, 872, 6989, 304, 5448, 11, 2085, 904, 4972, 4967, 477, 6677, 315, 279, 6989, 13, 18811, 64630, 1665, 18468, 4211, 5371, 459, 2217, 439, 1988, 11, 439, 1664, 439, 264, 1160, 315, 9322, 6989, 11, 323, 2612, 279, 31718, 15039, 323, 9382, 1405, 279, 6302, 617, 1027, 16914, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1199, 4791, 12, 18, 35, 518, 364, 8366, 11703, 1232, 364, 1199, 4791, 12, 18, 35, 4211, 1935, 304, 1495, 1988, 323, 8356, 220, 18, 35, 2612, 3238, 2186, 5473, 8366, 6234, 1232, 364, 1945, 4791, 12, 18, 35, 518, 364, 8366, 11703, 1232, 364, 1945, 4791, 12, 18, 35, 4211, 1935, 304, 2217, 1988, 323, 8356, 220, 18, 35, 2612, 3238, 92, 2595, 7927, 3465, 374, 311, 10765, 832, 477, 810, 445, 11237, 9256, 369, 279, 2317, 2728, 3770, 13, 40633, 1193, 449, 264, 4823, 1160, 320, 40287, 3160, 220, 3174, 3673, 8, 8649, 279, 1455, 9959, 445, 11237, 3465, 9382, 13, 3234, 539, 2997, 4096, 13, 30379, 430, 701, 4320, 1193, 5764, 279, 3024, 1160, 382, 2014, 25, 20400, 35649, 11, 9959, 14847, 323, 19075, 369, 720, 11296, 1862, 13307, 13, 578, 1887, 1288, 63179, 6130, 8349, 11, 4320, 720, 17800, 922, 3956, 11, 323, 3493, 66251, 18726, 311, 1520, 13307, 720, 17775, 4819, 10819, 627, 5207, 25, 220, 128009, 128006, 78191, 128007, 271, 9837, 220, 330, 14924, 22559, 287, 761, 220, 330, 9370, 5730, 2065, 761, 220, 330, 1199, 55982, 761, 220, 330, 1199, 24367, 761, 220, 330, 1199, 4791, 12, 1945, 702, 60] logprobs=None
# Identified AI Tasks:
1. Question Answering
2. Summarization
3. Text Classification
4. Text Generation
5. Text-to-Image
Step 2: Explore Available Capabilities¶
Let's see what capabilities are defined in the IBM AI Capabilities Framework.
# Get all capabilities, limited to IBM AI Capabilities Framework
capabilities = aan.get_all("capabilities", taxonomy="ibm-ai-capabilities")
print(f"\n# IBM AI Capabilities Framework: {len(capabilities)} capabilities\n")
# Group by capability group
for cap in sorted(capabilities, key=lambda x: x.isPartOf):
print(f"{cap.name}")
print(f" ID: {cap.id}")
print(f" Group: {cap.isPartOf}")
if hasattr(cap, 'description') and cap.description:
# Truncate long descriptions
desc = cap.description[:100] + "..." if len(cap.description) > 100 else cap.description
print(f" Description: {desc}")
print()
# IBM AI Capabilities Framework: 11 capabilities
Domain Knowledge
ID: ibm-cap-domain-knowledge
Group: ibm-cap-domain-knowledge-and-learning
Description: Possessing and applying specialized knowledge across technical, scientific, and professional
domains...
Code Generation
ID: ibm-cap-code-generation
Group: ibm-cap-group-code
Description: The ability to write code in programming languages based on natural language descriptions,
including...
Code Understanding & Explanation
ID: ibm-cap-code-understanding
Group: ibm-cap-group-code
Description: The ability to read, understand, and explain code, including summarizing code functionality,
identif...
Reading Comprehension
ID: ibm-cap-reading-comprehension
Group: ibm-cap-group-comprehension
Description: The ability to understand written text, extract key information, and answer questions about the
cont...
Contextual Understanding
ID: ibm-cap-contextual-understanding
Group: ibm-cap-group-comprehension
Description: The ability to understand context, resolve coreferences, and interpret implicit information in
text....
Common Sense Reasoning
ID: ibm-cap-common-sense-reasoning
Group: ibm-cap-group-domain-knowledge
Description: The ability to apply everyday knowledge and practical reasoning about how the world works,
including...
Factual Accuracy
ID: ibm-cap-factual-accuracy
Group: ibm-cap-group-factuality
Description: The ability to produce factually correct information and avoid hallucinations, confabulations, or
fa...
Text Generation
ID: ibm-cap-text-generation
Group: ibm-cap-group-generation
Description: The ability to generate coherent, fluent, and contextually appropriate text. This includes
completin...
Logical Reasoning
ID: ibm-cap-logical-reasoning
Group: ibm-cap-group-logical
Description: The ability to perform deductive, inductive, and formal logical inference. Includes syllogistic
reas...
Causal Reasoning
ID: ibm-cap-causal-reasoning
Group: ibm-cap-group-logical
Description: The ability to understand cause-effect relationships, identify causal chains, and reason about
inter...
Mathematical Reasoning
ID: ibm-cap-mathematical-reasoning
Group: ibm-cap-group-mathematical
Description: The ability to solve mathematical problems, perform numerical calculations, and apply mathematical
c...
Step 3: Retrieve mapping of tasks to capabilities¶
Now we can query which capabilities are required for each task.
# Example: Get capabilities for Question Answering task
# Query instances with mutiple kwargs
qa_capabilities = aan.query(
class_name="capabilities",
requiredByTask="question-answering",
isDefinedByTaxonomy="ibm-ai-capabilities"
)
print("Question Answering task requires these capabilities:\n")
for cap in qa_capabilities:
print(f" • {cap.name}")
print(f" ID: {cap.id}")
if hasattr(cap, 'description') and cap.description:
desc = cap.description[:120] + "..." if len(cap.description) > 120 else cap.description
print(f" Description: {desc}")
print()
print(f"\n✓ Found {len(qa_capabilities)} capabilities required for Question Answering")
Question Answering task requires these capabilities:
• Reading Comprehension
ID: ibm-cap-reading-comprehension
Description: The ability to understand written text, extract key information, and answer questions about the
content. This is a found...
• Contextual Understanding
ID: ibm-cap-contextual-understanding
Description: The ability to understand context, resolve coreferences, and interpret implicit information in
text. Essential for multi...
• Logical Reasoning
ID: ibm-cap-logical-reasoning
Description: The ability to perform deductive, inductive, and formal logical inference. Includes syllogistic
reasoning, propositional...
• Domain Knowledge
ID: ibm-cap-domain-knowledge
Description: Possessing and applying specialized knowledge across technical, scientific, and professional
domains including medicine,...
• Factual Accuracy
ID: ibm-cap-factual-accuracy
Description: The ability to produce factually correct information and avoid hallucinations, confabulations, or
false statements. Esse...
✓ Found 5 capabilities required for Question Answering
Step 4: Find intrinsics that implement capabilities¶
For each capability, we can find which intrinsics and adapters implement it.
# Example: Get intrinsics for Reading Comprehension capability
intrinsics = aan.query(class_name="adapters",
implementsCapability="ibm-cap-reading-comprehension",
)
print("Reading Comprehension is implemented by:\n")
for intr in intrinsics:
print(f" • {intr.name}")
print(f" ID: {intr.id}")
print()
print(f"\n✓ Found {len(intrinsics)} implementations for Reading Comprehension")
Reading Comprehension is implemented by:
• Granite 3.3 8b Instruct - Query Rewrite
ID: ibm-factuality-adapter-granite-3.3-8b-instruct-lora-query-rewrite
• Granite 3.3 8b Instruct - Context Relevance
ID: ibm-factuality-adapter-granite-3.3-8b-instruct-lora-context-relevance
• Granite 3.3 8b Instruct - Answerability Determination
ID: ibm-factuality-adapter-granite-3.3-8b-instruct-lora-answerability-determination
• Granite 3.3 Instruct - Passage Reranking
ID: ibm-factuality-adapter-granite-3.3-instruct-lora-passage-reranking
✓ Found 4 implementations for Reading Comprehension