{"id":50765650,"url":"https://github.com/ortus-boxlang/bx-ai-docs","last_synced_at":"2026-06-11T13:31:52.823Z","repository":{"id":333544826,"uuid":"1137711513","full_name":"ortus-boxlang/bx-ai-docs","owner":"ortus-boxlang","description":"BoxLang AI Docs","archived":false,"fork":false,"pushed_at":"2026-05-09T19:20:31.000Z","size":738,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"v2.x","last_synced_at":"2026-05-09T20:40:09.707Z","etag":null,"topics":["agents","ai","boxlang","jvm","llm","rag"],"latest_commit_sha":null,"homepage":"https://ai.ortusbooks.com","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ortus-boxlang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-19T18:21:23.000Z","updated_at":"2026-05-09T19:20:35.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ortus-boxlang/bx-ai-docs","commit_stats":null,"previous_names":["ortus-boxlang/bx-ai-docs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ortus-boxlang/bx-ai-docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ortus-boxlang%2Fbx-ai-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ortus-boxlang%2Fbx-ai-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ortus-boxlang%2Fbx-ai-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ortus-boxlang%2Fbx-ai-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ortus-boxlang","download_url":"https://codeload.github.com/ortus-boxlang/bx-ai-docs/tar.gz/refs/heads/v2.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ortus-boxlang%2Fbx-ai-docs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34201840,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai","boxlang","jvm","llm","rag"],"created_at":"2026-06-11T13:31:51.606Z","updated_at":"2026-06-11T13:31:52.809Z","avatar_url":"https://github.com/ortus-boxlang.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"---\ndescription: BoxLang AI is a comprehensive library that brings enterprise-grade artificial intelligence capabilities to the JVM ecosystem. Whether you're building chatbots, content generators, code assistants, RAG systems, or complex AI workflows, this library provides everything you need.\nicon: house-chimney-heart\n---\n\n# Introduction\n\nWelcome to the **BoxLang AI Library** - your unified gateway to integrating AI capabilities into any JVM application. This library provides an elegant, easy-to-use API for interacting with multiple AI providers, from simple chat requests to complex multi-agent systems.\n\n\u003cfigure\u003e\u003cimg src=\".gitbook/assets/image.png\" alt=\"\"\u003e\u003cfigcaption\u003e\u003c/figcaption\u003e\u003c/figure\u003e\n\n## 🙋 What is BoxLang AI?\n\nBoxLang AI is a comprehensive library that brings enterprise-grade artificial intelligence capabilities to the JVM ecosystem. Whether you're building chatbots, content generators, code assistants, RAG systems, or complex AI workflows, this module provides everything you need.\n\n```mermaid\ngraph LR\n    User[\"👤 User\"] --\u003e Agent[\"🤖 Agent\"]\n\n    Agent --\u003e Memory[\"💭 Memory\"]\n    Agent --\u003e Tools[\"🛠️ Tools\"]\n    Agent --\u003e Docs[\"📄 Documents\"]\n\n    Docs --\u003e Loaders[\"📥 Loaders\"]\n    Loaders --\u003e VectorDB[(\"📊 Vectors\")]\n\n    Memory --\u003e VectorDB\n    VectorDB --\u003e RAG[\"🔍 RAG\"]\n    Tools --\u003e RAG\n\n    RAG --\u003e AI[\"🚀 AI Models\"]\n    AI --\u003e Response[\"💬 Response\"]\n    Response --\u003e Agent\n    Agent --\u003e User\n\n    style User fill:#4CAF50,stroke:#2E7D32,stroke-width:3px,color:#fff\n    style Agent fill:#2196F3,stroke:#1565C0,stroke-width:3px,color:#fff\n    style AI fill:#9C27B0,stroke:#6A1B9A,stroke-width:3px,color:#fff\n    style Response fill:#FF9800,stroke:#E65100,stroke-width:3px,color:#fff\n    style VectorDB fill:#00BCD4,stroke:#006064,stroke-width:2px,color:#fff\n    style RAG fill:#FF5722,stroke:#BF360C,stroke-width:2px,color:#fff\n```\n\n### ✨ Key Features\n\n* 🌐 **Multi-Provider Support**: Work with OpenAI, Claude, Gemini, Grok, Groq, DeepSeek, Ollama, and more\n* 🔄 **Unified API**: One consistent interface across all providers\n* 👥 **Multi-Tenant Memory**: Enterprise-grade isolation with userId and conversationId across all 20 memory types\n* 🎨 **Multimodal Content**: Process images, audio, video, and documents alongside text\n* 🏠 **Local AI Support**: Run models locally with Ollama for privacy and offline use\n* 🔗 **AI Pipelines**: Chain operations together for complex multi-step workflows\n* ⚡ **Streaming Responses**: Get real-time responses as they're generated\n* 🛠️ **Tool Integration**: Enable AI to call functions and access real-time data\n* 🚀 **Async Support**: Non-blocking operations for better performance\n* 📝 **Template System**: Create reusable prompts with dynamic placeholders\n* 🤖 **AI Agents**: Autonomous agents with memory, tools, and reasoning\n* 📄 **Document Loaders**: Load and process various file formats for RAG\n* 🧠 **Vector Memory**: Semantic search with 12 vector database integrations\n* 🎯 **AI Skills**: Composable, reusable knowledge blocks injected into agent system messages at runtime\n* 🔌 **MCP Server Integration**: Seed agents and models directly from MCP servers — tools discovered automatically\n* 🔌 **Middleware Pipeline**: Intercept and transform AI requests/responses with a powerful middleware system\n* 🎵 **Audio \u0026 Speech**: Text-to-speech, speech-to-text, and audio translation across multiple providers\n* 🖼️ **Image Generation**: Generate images from text prompts with provider-agnostic API\n* 🌐 **Web Search**: Real-time web search integration with agent tools and structured results\n* 🗄️ **Global Tool Registry**: Register tools by name once, reference by string everywhere\n* 🛡️ **Provider Capabilities**: Type-safe capability system — providers declare what they support, BIFs enforce it\n\n### 📡 Supported Providers\n\nBoxLang supports a variety of AI providers out of the box. You can also create custom providers by following our [Custom Provider Guide](extending-boxlang-ai/custom-providers.md).\n\n| Provider | Type | Chat | Stream | Tools | Embeddings | Vision | Audio |\n| --- | --- | --- | --- | --- | --- | --- | --- |\n| **Bedrock** | Cloud | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ |\n| **Claude** | Cloud | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |\n| **Cohere** | Cloud | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |\n| **DeepSeek** | Cloud | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |\n| **Docker Desktop** | Local | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |\n| **Gemini** | Cloud | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |\n| **Grok** | Cloud | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |\n| **Groq** | Cloud | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |\n| **HuggingFace** | Cloud | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |\n| **MiniMax** | Cloud | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |\n| **Mistral** | Cloud | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |\n| **Ollama** | Local | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |\n| **OpenAI** | Cloud | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |\n| **OpenRouter** | Gateway | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |\n| **Perplexity** | Cloud | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |\n| **Voyage** | Cloud | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |\n\n\u003e **Legend:** Vision support requires a multimodal model from the provider (e.g., `gpt-4o`, `claude-3`, `gemini-2.0`). Image/Audio (transcription/TTS) support is currently in development. OpenRouter capabilities depend on the selected underlying model.\n\n### 🗃️ Supported Memory Types\n\nBoxLang AI provides 20+ memory types for conversation history and semantic search. All memory types support multi-tenant isolation with `userId` and `conversationId`.\n\n| Memory Type | Vector | Best For | Storage | Multi-Tenant |\n| --- | --- | --- | --- | --- |\n| **Windowed** | ❌ | Recent N messages, simple context | In-memory | ✅ |\n| **Summary** | ❌ | Long conversations with summarization | In-memory | ✅ |\n| **Session** | ❌ | Web sessions, survives page refresh | HTTP Session | ✅ |\n| **File** | ❌ | Persistent storage, file-based | File System | ✅ |\n| **Cache** | ❌ | Fast retrieval, distributed cache | CacheBox | ✅ |\n| **JDBC** | ❌ | Enterprise database storage | Any JDBC DB | ✅ |\n| **BoxVector** | ✅ | Development, prototyping | In-memory | ✅ |\n| **Chroma** | ✅ | Python integration, local dev | ChromaDB | ✅ |\n| **Postgres** | ✅ | Existing PostgreSQL infrastructure | PostgreSQL | ✅ |\n| **MySQL** | ✅ | Existing MySQL 9+ infrastructure | MySQL | ✅ |\n| **OpenSearch** | ✅ | AWS integration, enterprise search | OpenSearch | ✅ |\n| **TypeSense** | ✅ | Fast typo-tolerant search | TypeSense | ✅ |\n| **Pinecone** | ✅ | Production cloud-native | Pinecone Cloud | ✅ |\n| **Qdrant** | ✅ | Self-hosted, high performance | Qdrant | ✅ |\n| **Weaviate** | ✅ | GraphQL, knowledge graphs | Weaviate | ✅ |\n| **Milvus** | ✅ | Enterprise, massive scale | Milvus | ✅ |\n| **Hybrid** | ✅ | Recent + semantic combined | Vector + Standard | ✅ |\n\n**📖 Learn More**: [Standard Memory Guide](main-components/memory/) · [Vector Memory Guide](main-components/memory/vector-memory.md)\n\n### 📋 Supported Document Loaders\n\nBoxLang AI provides 12 document loaders for importing content from various sources into standardized `Document` format for RAG workflows.\n\n| Loader | File Types | Best For | Features |\n| --- | --- | --- | --- |\n| **TextLoader** | `.txt`, `.text` | Plain text files | Simple text ingestion |\n| **MarkdownLoader** | `.md`, `.markdown` | Markdown documents | Header splitting, code removal |\n| **HTMLLoader** | `.html`, `.htm` | HTML pages | Tag extraction, script/style removal |\n| **CSVLoader** | `.csv` | Tabular data | Row/column modes, filtering |\n| **JSONLoader** | `.json` | JSON data | Field extraction, array handling |\n| **XMLLoader** | `.xml` | XML documents | XPath queries, attribute extraction |\n| **PDFLoader** | `.pdf` | PDF documents | Text extraction, page splitting |\n| **LogLoader** | `.log` | Log files | Pattern matching, timestamp parsing |\n| **HTTPLoader** | URLs | Web content | HTTP/S, headers, authentication |\n| **FeedLoader** | RSS/Atom | RSS/Atom feeds | Feed parsing, item extraction |\n| **SQLLoader** | SQL queries | Database records | JDBC datasources, query execution |\n| **DirectoryLoader** | Folders | Batch loading | Recursive scanning, type detection |\n| **WebCrawlerLoader** | Websites | Web crawling | Multi-page, depth control, link following |\n\n**Key Features:**\n\n* ✅ **Fluent API** - Chain configuration methods\n* ✅ **Memory Integration** - Direct ingestion with `toMemory()`\n* ✅ **Automatic Chunking** - Split large documents\n* ✅ **Async Support** - Load documents asynchronously\n* ✅ **Multi-Memory Fan-out** - Ingest to multiple vector stores\n* ✅ **Transform/Filter** - Apply transformations during load\n\n**📖 Learn More**: [Document Loaders Guide](rag/document-loaders.md) · [Custom Loaders](extending-boxlang-ai/custom-loader.md)\n\n### 🚀 Use Cases\n\n* 💬 **Chatbots**: Build conversational interfaces with memory and context\n* ✍️ **Content Generation**: Create articles, documentation, marketing copy\n* 💻 **Code Assistance**: Generate, review, and explain code\n* 📊 **Data Analysis**: Extract insights from text and structured data\n* 📄 **Document Processing**: Analyze PDFs, contracts, and reports\n* 🎥 **Media Analysis**: Process images, audio, and video content\n* 🌍 **Translations**: Multi-language content translation\n* 📋 **Summarization**: Condense long documents intelligently\n* ❓ **Question Answering**: Build knowledge bases and FAQs with RAG\n* 🔄 **Custom Workflows**: Multi-step AI processing pipelines\n\n***\n\n## 📖 Quick Start\n\n### 🎓 Getting Started\n\n[Perfect for beginners - get up and running quickly](getting-started/quickstart.md)\n\n### 💬 Simple AI Interactions\n\n[Learn basic chat, streaming, and structured output](main-components/chatting/basic-chatting.md)\n\n### 🔗 AI Pipelines\n\n[Build complex workflows with agents, memory, and tools](main-components/pipelines/building.md)\n\n### 🤖 AI Agents\n\n[Build reusable and autonomous agents, sub-agents, and much more.](main-components/agents/getting-started.md)\n\n***\n\n## 🔧 Built-In Functions (BIFs)\n\nBoxLang AI provides a comprehensive set of BIFs for different AI operations. You can see all of our BIF reference documentation here: [BIF Reference](advanced/reference/built-in-functions/).\n\n### 💬 Chat \u0026 Conversation\n\n| BIF               | Purpose                        | Return Type | Example Use Case                         |\n| ----------------- | ------------------------------ | ----------- | ---------------------------------------- |\n| `aiChat()`        | Simple one-shot chat request   | String      | Quick Q\\\u0026A, content generation           |\n| `aiChatAsync()`   | Non-blocking chat request      | Future      | Background processing, parallel requests |\n| `aiChatRequest()` | Build structured chat requests | AiChatRequest   | Complex requests with tools              |\n| `aiChatStream()`  | Real-time streaming responses  | void        | Live chat, progressive output            |\n| `aiService()` | Get AI service instances | Service     | Multi-provider management |\n\n### 🏗️ Pipeline Components\n\n| BIF             | Purpose                   | Return Type | Example Use Case                 |\n| --------------- | ------------------------- | ----------- | -------------------------------- |\n| `aiAgent()`         | Create AI agents with tools, memory, skills \u0026 MCP servers | AiAgent     | Autonomous assistants, multi-turn |\n| `aiMessage()`       | Build message pipelines                                   | AiMessage   | Reusable prompts, templates      |\n| `aiModel()`         | Create model runnables with skills \u0026 MCP servers          | AiModel     | Pipeline integration             |\n| `aiTransform()`     | Create data transformers                                  | Transformer | Pipeline data processing         |\n| `aiTool()`          | Define callable functions                                 | Tool        | Real-time data, function calling |\n| `aiSkill()`         | Create or discover AI skill blocks from SKILL.md files    | AiSkill     | Reusable knowledge injection     |\n| `aiGlobalSkills()`  | Access the global shared skills pool                      | Array       | Cross-agent knowledge sharing    |\n| `aiToolRegistry()`  | Access the global AI tool registry singleton              | AIToolRegistry | Named tool resolution         |\n| `aiAgentRegistry()` | Access the global AI agent registry singleton             | AIAgentRegistry | Named agent resolution      |\n| `aiParallel()`      | Execute runnables (models, pipelines) in parallel         | Array          | Parallel model execution      |\n\n### 🧠 Memory \u0026 Context\n\n| BIF          | Purpose                              | Return Type | Example Use Case                                  |\n| ------------ | ------------------------------------ | ----------- | ------------------------------------------------- |\n| `aiMemory()` | Create conversation or vector memory | Memory      | Context-aware conversations, RAG, semantic search |\n\n### 📄 Document Processing\n\n| BIF             | Purpose                     | Return Type  | Example Use Case         |\n| --------------- | --------------------------- | ------------ | ------------------------ |\n| `aiDocuments()` | Load documents from sources | Array/Loader | Document processing, RAG |\n\n### 🔢 Utilities\n\n| BIF          | Purpose                    | Return Type  | Example Use Case            |\n| ------------ | -------------------------- | ------------ | --------------------------- |\n| `aiChunk()`  | Split text into chunks     | Array        | Processing large documents  |\n| `aiEmbed()`  | Generate vector embeddings | Array/Struct | Semantic search, similarity |\n| `aiPopulate()` | Populate a class instance, struct, or array from JSON data or struct.   | Any |  This is useful for testing, custom workflows, or working with cached AI responses.   |\n| `aiTokens()` | Estimate token counts      | Numeric      | Cost estimation, limits     |\n\n### ⚙️ MCP (Model Context Protocol)\n\n| BIF           | Purpose                  | Return Type | Example Use Case          |\n| ------------- | ------------------------ | ----------- | ------------------------- |\n| `MCP()`       | Connect to MCP servers   | MCPClient   | External tools, resources |\n| `MCPServer()` | Create MCP server instances | MCPServer   | Expose tools to agents    |\n\n### 🎵 Audio \u0026 Speech\n\n| BIF               | Purpose                        | Return Type | Example Use Case                  |\n| ----------------- | ------------------------------ | ----------- | --------------------------------- |\n| `aiSpeak()`       | Convert text to spoken audio   | Binary      | Voice responses, accessibility    |\n| `aiTranscribe()`  | Transcribe audio to text       | String      | Meeting notes, voice commands     |\n| `aiTranslate()`   | Translate audio between languages | String   | Multi-language audio translation  |\n\n### 🖼️ Image Generation\n\n| BIF         | Purpose                  | Return Type | Example Use Case              |\n| ----------- | ------------------------ | ----------- | ----------------------------- |\n| `aiImage()` | Generate images from text prompts | Binary/Struct | Marketing visuals, content creation |\n\n### 🌐 Web Search\n\n| BIF                 | Purpose                     | Return Type | Example Use Case                   |\n| ------------------- | --------------------------- | ----------- | ---------------------------------- |\n| `aiWebSearch()`     | Search the web in real-time | String      | Live data retrieval, research      |\n| `aiWebSearchAsync()`| Non-blocking web search     | Future      | Background web research            |\n\n***\n\n## 🚀 Quick Examples\n\n### 💬 Simple Chat\n\n```javascript\nanswer = aiChat( \"What is BoxLang?\" )\nprintln( answer )\n```\n\n### 🎨 Simple Chat with Parameters\n\n```javascript\nanswer = aiChat(\n    \"Write a haiku about coding\",\n    { temperature: 0.9, model: \"gpt-4\" }\n)\n```\n\n### 🔗 Build a Pipeline\n\n```javascript\npipeline = aiMessage()\n    .system( \"You are a helpful assistant\" )\n    .user( \"Explain ${topic}\" )\n    .toDefaultModel()\n    .transform( r =\u003e r.content )\n\nresult = pipeline.run( { topic: \"recursion\" } )\n```\n\n### ⚡ Stream Responses\n\n```javascript\naiChatStream(\n    \"Tell me a story\",\n    ( chunk ) =\u003e print( chunk.choices?.first()?.delta?.content ?: \"\" )\n)\n```\n\n### 📦 Get JSON Responses\n\n```javascript\n// Automatically parse JSON responses\nuser = aiChat(\n    \"Create a user profile with name, age, and email for Alice\",\n    { returnFormat: \"json\" }\n)\n\nprintln( \"Name: #user.name#\" )\nprintln( \"Age: #user.age#\" )\nprintln( \"Email: #user.email#\" )\n```\n\n### 🛠️ Use AI Tools\n\n```javascript\n// Let AI call functions for real-time data\ngetWeather = aiTool(\n    name: \"get_weather\",\n    description: \"Get current weather for a location\",\n    parameters: {\n        location: { type: \"string\", description: \"City name\" }\n    },\n    callback: ( args ) =\u003e {\n        return { temp: 72, condition: \"sunny\", location: args.location }\n    }\n)\n\nresponse = aiChat(\n    \"What's the weather in San Francisco?\",\n    { tools: [ getWeather ] }\n)\n```\n\n### 🔢 Generate Embeddings\n\n```javascript\n// Create vector embeddings for semantic search\nembeddings = aiEmbed([\n    \"BoxLang is a modern JVM language\",\n    \"Java is a programming language\",\n    \"Python is popular for AI\"\n])\n\n// Use embeddings for similarity comparison\nprintln( \"Generated #embeddings.len()# embeddings\" )\n```\n\n### 📄 Load Documents\n\n```javascript\n// Load documents for RAG\ndocuments = aiDocuments( source: \"docs/guide.md\" )\n\n// Use with memory\nmemory = aiMemory( type: \"vector\" )\nmemory.addDocuments( documents )\n\n// Query with context\nresponse = aiChat(\n    \"What is covered in the guide?\",\n    { memory: memory }\n)\n```\n\n### 🤖 Create an Agent\n\n```javascript\n// Build an autonomous agent\nagent = aiAgent()\n    .name( \"Research Assistant\" )\n    .instructions( \"You help research and summarize topics\" )\n    .memory( aiMemory( type: \"windowed\", size: 10 ) )\n    .tools([\n        searchTool,\n        summarizeTool\n    ])\n\n// Agent handles multi-turn conversations\nresponse = agent.chat( \"Research AI trends in 2025\" )\n```\n\n***\n\n## 🆘 Need Help?\n\n### 📚 Resources\n\n* **📖 Full Documentation**: Explore all sections above for comprehensive guides\n* **💡 Examples**: Check the `bx-ai/examples/` folder for 60+ runnable code samples\n* **🔍 BIF Reference**: See [`reference/built-in-functions/`](advanced/reference/built-in-functions/) for detailed function docs\n* **📦 Module Components**: Explore [`main-components/`](main-components/) for in-depth component guides\n\n### 🤝 Community \u0026 Support\n\n* **👥 Community**: [BoxLang Community Forum](https://community.boxlang.io)\n* **🐛 Issues**: [GitHub Issues](https://github.com/ortus-boxlang/bx-ai/issues)\n* **💬 Discussions**: [GitHub Discussions](https://github.com/ortus-boxlang/bx-ai/discussions)\n* **✉️ Email Support**: [ai@ortussolutions.com](mailto:ai@ortussolutions.com)\n\n### 🎓 Learning Paths\n\n1. **🌱 Beginners**: Start with [Quick Start](getting-started/quickstart.md) → [Basic Chatting](main-components/chatting/basic-chatting.md) → [Examples](../examples/)\n2. **🏗️ Builders**: Learn [Pipelines](main-components/pipelines/building.md) → [Memory](main-components/memory/) → [Tools](main-components/tools.md)\n3. **🚀 Advanced**: Explore [Agents](main-components/agents/) → [MCP](mcp/server/) → [Custom Providers](extending-boxlang-ai/custom-providers.md)\n\n***\n\n## 🌟 Upgrade to Plus\n\nBoxLang and BoxLang AI are both Professional Open-Source (POS) projects.  However, we also offer enterprise features, priority support, SLAs, and much more in our [BoxLang +/++ Plans.](https://boxlang.io/plans)\n\n* 🏢 **Enterprise Modules**: Advanced components and integrations\n* 🛠️ **Advanced Tooling**: Enhanced development and debugging tools\n* ⚡ **Priority Support**: Direct access to our engineering team\n* 🔐 **Enterprise Features**: SSO, audit logs, advanced security\n\n**Learn more**: [boxlang.io/plans](https://boxlang.io/plans)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fortus-boxlang%2Fbx-ai-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fortus-boxlang%2Fbx-ai-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fortus-boxlang%2Fbx-ai-docs/lists"}