π Official Website: https://makerai.cimamaker.com
Most AI libraries for Delphi stop at wrapping REST calls. MakerAI is different.
Yes, MakerAI includes native, provider-specific components that give you direct, full-fidelity access to each provider's API β every model parameter, every response field, every streaming event, exactly as the provider defines it.
But on top of that, MakerAI is a complete AI application ecosystem that lets you build production-grade intelligent systems entirely in Delphi:
- RAG pipelines (vector and graph-based) with SQL-like query languages (VQL / GQL)
- Autonomous Agents with graph orchestration, checkpoints, and human-in-the-loop approval
- MCP Servers and Clients β expose or consume tools using the Model Context Protocol
- Native ChatTools β bridge AI reasoning with deterministic real-world capabilities (PDF, Vision, Speech, Web Search, Shell, Computer Use)
- FMX Visual Components β drop-in UI for multimodal chat interfaces
- Universal Connector β switch providers at runtime without changing your application code
Whether you need a simple one-provider integration or a multi-agent, multi-provider, retrieval-augmented production system, MakerAI covers the full stack β natively in Delphi.
The biggest architectural change in v3.3 is the TAiCapabilities system, which replaces scattered per-provider flags with a unified, declarative model of what each model can do and what a session needs:
ModelCapsβ what the model natively supports (e.g.[cap_Image, cap_Reasoning])SessionCapsβ what capabilities the current session requires- Gap analysis β when
SessionCapsexceedsModelCaps, MakerAI automatically activates bridges (tool-assisted OCR, vision bridges, etc.) without changing your code ThinkingLevelβ unified reasoning depth control (tlLow,tlMedium,tlHigh) across all providers that support extended thinking
| Provider | New / Updated Models |
|---|---|
| OpenAI | gpt-5.2, gpt-image-1, o3, o3-mini |
| Claude | claude-opus-4-6, claude-sonnet-4-6, claude-3-7-sonnet |
| Gemini | gemini-3.0, gemini-2.5-flash, gemini-2.5-flash-image |
| Grok | grok-4, grok-3, grok-imagine-image |
| Mistral | Magistral (reasoning), mistral-ocr-latest |
| DeepSeek | deepseek-reasoner (extended thinking) |
| Kimi | kimi-k2.5 (extended thinking) |
TAiFileCheckpointerβ persists agent graph state to disk; resume workflows after crashes or restartsTAiWaitApprovalToolβ suspends a node and waits for human approval before continuingTAIAgentManager.OnSuspendevent for building approval UIsResumeThread(ThreadID, NodeName, Input)to continue suspended workflows
- New
uMakerAi.RAG.Graph.Documents.pasβ full document lifecycle management (ingest, chunk, embed, link) directly into the knowledge graph
reasoning_contentis now correctly preserved and re-sent in multi-turn tool call conversations for all providers that require it (DeepSeek-reasoner, Kimi k2.5, Groq reasoning models)
TAiEmbeddingsConnectionβ abstract connector for swappable embedding providersTAiAudioPushStreamβ push-based audio streaming utility- Demo 027 β Document Manager
- Demo 012 β ChatWebList (chat with web-based content)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Your Delphi Application β
ββββββ¬βββββββββββββββββββ¬ββββββββββββββββββ¬βββββββββββββββββββββββββ
β β β
ββββββΌβββββ βββββββββββΌβββββββββββ ββββΌβββββββββββββββββββββββββ
β ChatUI β β Agents β β Design-Time β
β FMX β β TAIAgentManager β β Property Editors β
β Visual β β TAIBlackboard β β Object Inspector support β
β Comps β β Checkpoint/Approve β βββββββββββββββββββββββββββββ
ββββββ¬βββββ βββββββββββ¬βββββββββββ
β β
ββββββΌβββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββββ
β TAiChatConnection β Universal Connector β
β Switch provider at runtime via DriverName property β
ββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββββ
β Native Provider Drivers (direct API access, full fidelity) β
β OpenAI Β· Claude Β· Gemini Β· Grok Β· Mistral Β· DeepSeek Β· Kimi β
β Groq Β· Cohere Β· Ollama Β· LM Studio Β· GenericLLM β
ββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββΌβββββββββββββββββββββββββ
β β β
ββββββΌβββββββββ ββββββββββββββΌβββββββββ βββββββββββββΌββββββββββ
β ChatTools β β RAG β β MCP β
β PDF/Vision β β Vector (VQL) β β Server (HTTP/SSE β
β Speech/STT β β Graph (GQL) β β StdIO/Direct) β
β Web Search β β PostgreSQL/SQLite β β Client β
β Shell β β HNSW Β· BM25 Β· RRF β β TAiFunctions bridgeβ
β ComputerUseβ β Rerank Β· Documents β βββββββββββββββββββββββ
βββββββββββββββ βββββββββββββββββββββββ
MakerAI gives you two ways to work with each provider, which you can mix freely:
Full, provider-specific access to every API feature. Use when you need complete control:
| Component | Provider | Latest Models |
|---|---|---|
TAiOpenChat |
OpenAI | gpt-5.2, o3, o3-mini |
TAiClaudeChat |
Anthropic | claude-opus-4-6, claude-sonnet-4-6 |
TAiGeminiChat |
gemini-3.0, gemini-2.5-flash | |
TAiGrokChat |
xAI | grok-4, grok-3 |
TAiMistralChat |
Mistral AI | Magistral, mistral-large |
TAiDeepSeekChat |
DeepSeek | deepseek-reasoner, deepseek-chat |
TAiKimiChat |
Moonshot | kimi-k2.5 |
TAiGroqChat |
Groq | llama-3.3, deepseek-r1 |
TCohereChat |
Cohere | command-r-plus |
TAiOllamaChat |
Ollama | Any local model |
TAiLMStudioChat |
LM Studio | Any local model |
TAiGenericChat |
OpenAI-compatible | Any OpenAI-API endpoint |
Provider-agnostic code. Switch models or providers by changing one property:
AiConn.DriverName := 'OpenAI';
AiConn.Model := 'gpt-5.2';
AiConn.ApiKey := '@OPENAI_API_KEY'; // resolved from environment variable
// Switch to Gemini without changing anything else
AiConn.DriverName := 'Gemini';
AiConn.Model := 'gemini-3.0-flash';
AiConn.ApiKey := '@GEMINI_API_KEY';| Feature | OpenAI (gpt-5.2) | Claude (4.6) | Gemini (3.0) | Grok (4) | Mistral | DeepSeek | Ollama |
|---|---|---|---|---|---|---|---|
| Text Generation | β | β | β | β | β | β | β |
| Streaming (SSE) | β | β | β | β | β | β | β |
| Function Calling | β | β | β | β | β | β | β |
| JSON Mode / Schema | β | β | β | β | β | β | β |
| Image Input | β | β | β | β | β | β | β |
| PDF / Files | β | β | β | β | β | ||
| Image Generation | β | β | β | β | β | β | β |
| Video Generation | β | β | β | β | β | β | β |
| Extended Thinking | β | β | β | β | β | β | |
| Speech (TTS/STT) | β | β | β | β | β | β | |
| Web Search | β | β | β | β | β | β | β |
| Computer Use | β | β | β | β | β | β | β |
| RAG (all modes) | β | β | β | β | β | β | β |
| MCP Client/Server | β | β | β | β | β | β | β |
| Agents | β | β | β | β | β | β | β |
Legend: β Native |
β οΈ Tool-Assisted bridge | β Not Supported
Two complementary retrieval engines with their own query languages:
Vector RAG β semantic and hybrid search over document embeddings:
- HNSW index for approximate nearest-neighbor search
- BM25 lexical index for keyword matching
- Hybrid search with RRF (Reciprocal Rank Fusion) or weighted fusion
- Reranking and Lost-in-the-Middle reordering for LLM context
- VQL (Vector Query Language) β SQL-like DSL for complex retrieval queries:
MATCH documents SEARCH 'machine learning' USING HYBRID WEIGHTS(semantic: 0.7, lexical: 0.3) FUSION RRF WHERE category = 'tech' AND date > '2025-01-01' RERANK 'neural networks' WITH REGENERATE LIMIT 10
- Drivers: PostgreSQL/pgvector, SQLite, in-memory
Graph RAG β knowledge graph with semantic search over entities and relationships:
- Nodes and edges with embeddings and metadata
- GQL (Graph Query Language) β Cypher-like DSL:
MATCH (p:Person)-[r:WORKS_AT]->(c:Company) WHERE c.city = 'Madrid' DEPTH 2 RETURN p, r, c
- Dijkstra shortest path, centrality analysis, hub detection
- Export to GraphViz DOT, GraphML (Gephi), native JSON format
- Document lifecycle management (ingest β chunk β embed β link)
Graph-based multi-agent workflows with full thread safety:
TAIAgentManagerβ executes directed graphs of AI nodes via thread poolTAIAgentsNodeβ single execution unit; runs an LLM call, a tool, or custom logicTAIBlackboardβ thread-safe shared state dictionary between all nodes- Link modes:
lmFanout(parallel broadcast),lmConditional(routing),lmExpression(binding),lmManual - Join modes:
jmAny(first arrival wins),jmAll(wait for all inputs) - Durable execution:
TAiFileCheckpointerpersists state; resume after crashes - Human-in-the-loop:
TAiWaitApprovalToolsuspends execution for human approval - Supports any LLM provider via
TAiChatConnection
Full implementation of the MCP standard for both consuming and exposing tools:
MCP Server β expose Delphi functions as MCP tools, callable by any MCP client (Claude Desktop, AI agents, etc.):
- Transports: HTTP, SSE (Server-Sent Events), StdIO, Direct (in-process)
- Bridge
TAiFunctions β IAiMCPToolβ any existingTAiFunctionscomponent becomes an MCP server instantly - API Key authentication, CORS configuration
TAiMCPResponseBuilderfor structured responses (text + files + media)- RTTI-based automatic JSON Schema generation from parameter classes
MCP Client β consume any external MCP server from your Delphi app:
- Connect to Claude Desktop tools, filesystem servers, database tools, etc.
- Integrated into
TAiFunctionscomponent alongside native function definitions
ChatTools bridge the gap between AI reasoning and real-world operations. They activate automatically based on gap analysis between SessionCaps and ModelCaps:
| Tool Interface | What it does | Implementations |
|---|---|---|
IAiPdfTool |
Extract text from PDFs | Mistral OCR, Ollama OCR |
IAiVisionTool |
Describe / analyze images | Any vision model |
IAiSpeechTool |
Text-to-speech / speech-to-text | Whisper, Gemini Speech, OpenAI TTS |
IAiWebSearchTool |
Live web search | Gemini Web Search |
IAiImageTool |
Generate images | DALL-E 3, gpt-image-1, Gemini, Grok |
IAiVideoTool |
Generate video | Sora, Gemini Veo |
TAiShell |
Execute shell commands | Windows/Linux |
TAiTextEditorTool |
Read/write/patch files | Diff-based editing |
TAiComputerUseTool |
Control mouse and keyboard | Claude Computer Use, OpenAI |
Tools follow a common pattern: SetContext(AiChat) + Execute*(). They can run standalone, as function-call bridges, or as automatic capability bridges.
Drop-in FireMonkey components for building multimodal chat UIs:
TChatListβ scrollable message container with Markdown rendering, code blocks, copy buttonsTChatBubbleβ individual message bubble (user / assistant / tool)TChatInputβ text input bar with voice recording, file attachment, and send button
Compatible with all providers. Works with streaming responses.
Full Delphi IDE support via the MakerAiDsg.dpk design-time package:
DriverNameproperty shows a dropdown of all registered providers in the Object InspectorModelproperty lists all models for the selected provider- MCP Client configuration editor with transport type selection
- Embedding connection editor
- Version/About dialog
git clone https://github.com/gustavoeenriquez/MakerAi.gitCompile and install in this exact order:
Source/Packages/MakerAI.dpkβ Runtime core (~100 units)Source/Packages/MakerAi.RAG.Drivers.dpkβ PostgreSQL/pgvector connectorSource/Packages/MakerAi.UI.dpkβ FMX visual componentsSource/Packages/MakerAiDsg.dpkβ Design-time editors (requires VCL + DesignIDE)
Open Source/Packages/MakerAiGrp.groupproj to compile all packages at once.
Add all of these to Tools > Options > Language > Delphi > Library:
Source/Agents
Source/Chat
Source/ChatUI
Source/Core
Source/Design
Source/MCPClient
Source/MCPServer
Source/Packages
Source/RAG
Source/Resources
Source/Tools
Source/Utils
API keys are resolved from environment variables using the @VAR_NAME convention:
AiConn.ApiKey := '@OPENAI_API_KEY'; // reads OPENAI_API_KEY from environment
AiConn.ApiKey := '@CLAUDE_API_KEY'; // reads CLAUDE_API_KEY
AiConn.ApiKey := '@GEMINI_API_KEY'; // reads GEMINI_API_KEY
AiConn.ApiKey := 'sk-...'; // or set a literal key directly| Delphi Version | Support |
|---|---|
| 10.4 Sydney | Minimum (core framework) |
| 11 Alexandria | Full support |
| 12 Athens | Full support |
| 13 Florence | Full support (latest tested) |
Open Demos/DemosVersion31.groupproj to access all demos.
| Demo | Description |
|---|---|
010-Minimalchat |
Minimal chat with Ollama and TAiChatConnection |
012-ChatAllFunctions |
Full-featured multimodal chat (images, audio, streaming, tools) |
012-ChatWebList |
Chat with web-based content list |
021-RAG+Postgres-UpdateDB |
Build a vector RAG database with PostgreSQL/pgvector |
022-1-RAG_SQLite |
Lightweight vector RAG with SQLite |
023-RAGVQL |
VQL query language for semantic search |
025-RAGGraph |
Knowledge graph RAG with GQL queries |
026-RAGGraph-Basic |
Simplified graph RAG patterns |
027-DocumentManager |
Document ingestion and management |
031-MCPServer |
Multi-protocol MCP server (HTTP, SSE, StdIO) |
032-MCP_StdIO_FileManager |
File manager exposed via MCP StdIO |
032-MCPServerDataSnap |
MCP server using DataSnap transport |
034-MCPServer_Http_FileManager |
File manager via MCP HTTP |
035-MCPServerWithTAiFunctions |
TAiFunctions bridge to MCP |
036-MCPServerStdIO_AiFunction |
StdIO MCP server with AI functions |
041-GeminiVeo |
Video generation with Google Veo |
051-AgentDemo |
Visual agent graph builder and runner |
052-AgentConsole |
Console-based agent execution |
053-DemoAgentesTools |
Agents with integrated tool use |
- New
TAiCapabilitiessystem (ModelCaps/SessionCaps/ThinkingLevel) - Models updated: OpenAI gpt-5.2, Claude 4.6, Gemini 3.0, Grok 4, Mistral Magistral, DeepSeek-reasoner, Kimi k2.5
- Agents: durable execution (checkpoints), human-in-the-loop approval tool
- RAG: Graph Document management (
uMakerAi.RAG.Graph.Documents) - Fix:
reasoning_contentpreserved in multi-turn tool calls (DeepSeek, Kimi, Groq) - New:
TAiEmbeddingsConnection,TAiAudioPushStream - New demos: DocumentManager, ChatWebList
- Native ChatTools framework (
IAiPdfTool,IAiVisionTool,IAiSpeechTool, etc.) - Unified deterministic tool orchestration and capability bridges
- GPT-5.1, Gemini 3.0, Claude 4.5 initial support
- FMX multimodal UI components
- RAG Rerank + Graph RAG engine
- MCP Server framework (SSE, StdIO, HTTP)
- Major architecture redesign
- Visual FMX chat components
- Graph-based vector database
- Full Delphi 10.4β13 compatibility
- MCP Client/Server (Model Context Protocol)
- Agent graph orchestration
- Linux/POSIX full support
- Website: https://makerai.cimamaker.com
- Telegram (Spanish): https://t.me/MakerAi_Suite_Delphi
- Telegram (English): https://t.me/MakerAi_Delphi_Suite_English
- Email: gustavoeenriquez@gmail.com
- GitHub Issues: https://github.com/gustavoeenriquez/MakerAi/issues
MIT License β see LICENSE.txt for details.
Copyright Β© 2024β2026 Gustavo EnrΓquez β CimaMaker