Documentation Gaps
When to Use
Use this guide when the official documentation doesn't match actual behavior. These gaps were identified by comparing official docs to source code through 1.4.2. New in 1.4.0-rc1 and not yet in official docs: ChatProcessor plugin system, global guardrails, and
AiExceptionEvent. New in 1.4.2:ai_fileentity,ai.file_manager,AiFileProviderInterface,ChatWithPdfcapability,restrict_to_topicguardrail, andStreamableGuardrailInterface.
Core Module
| Gap | Covered In |
|---|---|
| ProviderProxy wrapping pattern | Core Architecture |
| Guardrails system developer guide | Guardrails System |
| Short-term memory plugin system | Short-Term Memory |
AiDataTypeConverter plugin system |
— (undocumented) |
Prompt config entity system (ai.ai_prompt) |
Prompt System |
ai.text_chunker service |
— (undocumented) |
| ChatProcessor plugin type (1.4) | Core Architecture |
AiExceptionEvent (1.4) |
Events System |
Global guardrails in ai.settings (1.4) |
Guardrails System |
ai_file content entity (1.4.2) |
Core Architecture |
ai.file_manager service (1.4.2) |
Core Architecture, Operation Types |
AiFileProviderInterface (1.4.2) |
Provider System |
ChatWithPdf capability (1.4.2) |
Enums & DTOs, Operation Types |
StreamableGuardrailInterface (1.4.2) |
Guardrails System |
restrict_to_topic guardrail (1.4.2) |
Guardrails System |
ai_assistant_api
| Gap | Covered In |
|---|---|
use_function_calling mode (tool calls vs JSON-in-prompt) |
AI Assistant API |
AgentRunner path (assistant delegates to ai_agents) |
AI Agents |
setVerboseMode(), setThrowException() |
AI Assistant API |
AiAssistantPassContextToAgentEvent |
AI Assistant API |
ai_chatbot
| Gap | Covered In |
|---|---|
Full POST payload schema for /api/deepchat |
AI Chatbot |
should_continue protocol for tool-call round-trips |
AI Chatbot |
verbose_mode, show_copy_icon, show_structured_results block settings |
AI Chatbot |
hook_deepchat_prepend_message |
AI Chatbot |
ai_automators
| Gap | Covered In |
|---|---|
AutomatorsTool entity and function-calling integration |
AI Automators |
All 4 events (AutomatorConfigEvent, etc.) |
AI Automators |
| Full 52-plugin inventory | AI Automators |
$settings['ai_automator_advanced_mode_enabled'] |
AI Automators |
ai_ckeditor
| Gap | Covered In |
|---|---|
module_dependencies silencing mechanism |
AI CKEditor |
AiAutomatorsCKEditor cross-module plugin |
AI CKEditor |
Global ai_ckeditor.settings prompts config |
AI CKEditor |
ai_search
| Gap | Covered In |
|---|---|
include_raw_embedding_vector feature |
AI Search |
search_api_ai_get_chunks_result query option |
AI Search |
AiVdbProviderSearchApiInterface requirements |
AI Search |
ai_translate
| Gap | Covered In |
|---|---|
Drush commands (ai:translate-entity, ai:translate-text) |
AI Translate |
hook_ai_translate_translation_alter |
AI Translate |
| Layout Builder translation integration | AI Translate |
ChatTranslationProvider plugin |
AI Translate |
ai_observability
| Gap | Covered In |
|---|---|
| All config settings | AI Observability |
AiObservabilityUtils |
AI Observability |
| OpenTelemetry spans and metrics | AI Observability |
fallback_log_message_mode config option |
AI Observability |
ai_validations
| Gap | Covered In |
|---|---|
| XTRUE/XFALSE protocol (critical) | AI Validations |
| Image classification is deny-list (not allow-list) | AI Validations |
field_widget_actions
| Gap | Covered In |
|---|---|
FieldWidgetFormActionBase modal pattern |
Field Widget Actions |
FillEditorCommand/FillSimpleFieldCommand |
Field Widget Actions |
| Config Action for Recipes pattern | Field Widget Actions |
ai_eca
| Gap | Note |
|---|---|
| Docs describe a working module | Actual code is a deprecated migration stub |
ai_logging
| Gap | Note |
|---|---|
prompt_logging_excluded_tags undocumented |
Covered in AI Logging |
| Deprecation notice missing from docs | Module is deprecated; use ai_observability |
See Also
- Reference: https://project.pages.drupalcode.org/ai/1.3.x/
- Reference: https://git.drupalcode.org/project/ai