An experimental Open edX plugin for AI-powered educational workflows
The AI Extensibility Framework is a proof-of-concept plugin that explores artificial intelligence integration in the Open edX platform. It provides a modular, extensible architecture for building AI-powered workflows that enhance the learning experience.
This plugin demonstrates how AI capabilities can be integrated into Open edX in a modular and extensible way, following the principle of "open for extension, closed for modification." It provides infrastructure for AI workflows while maintaining compliance with educational requirements and Open edX standards.
Warning
Experimental - This plugin is in active development and should not be used in production environments.
This is an exploratory project developed by edunext as part of FC-111 to investigate AI extensibility patterns for the Open edX platform. The plugin serves as a testing ground for AI integration concepts that may inform future development.
What Works:
- Frontend integration with Learning MFE and Authoring MFE via plugin slots
- Basic content extraction from course unit
- AI-powered content summarization
- Modular workflow-based architecture for AI processing
- Support for multiple LLM providers via LiteLLM (OpenAI, Anthropic, local models)
- Context-aware AI assistance examples integrated into the learning experience
- Observable workflows with event analytics in aspects
- Configuration-driven behavior without code changes
Documentation
Documentation is available on ReadTheDocs.
- Open edX installation (Tutor-based deployment recommended)
- Python 3.11 or higher
- Node.js 18.x or higher (for frontend development)
- API key for supported LLM provider (OpenAI, Anthropic, etc.)
Install the plugin in your Open edX environment using the provided tutor plugin:
pip install git+https://github.com/openedx/openedx-ai-extensions.git tutor plugins enable openedx-ai-extensions tutor images build openedx tutor images build mfe tutor local launch
After installation, you need to configure the plugin with your AI provider and set up workflows. The configuration involves:
- Provider Setup: Configure authentication and model routing for your chosen AI service
- Scope Configuration: Define where AI workflows will be available (courses, locations)
- Profile Configuration: Define what the AI will do and what information it will access
For detailed configuration instructions, see the Configuration Guide.
Add to your Tutor config.yml:
AI_EXTENSIONS:
openai:
API_KEY: "sk-proj-your-api-key"
MODEL: "openai/gpt-4o-mini"
PLUGINS:
- openedx-ai-extensionsThen configure scopes and profiles in the Django admin at /admin/openedx_ai_extensions/.
For automated or non-interactive environments, configure the plugin via Tutor's config.yml and build the images.
Configure the Extension: Add the repository and AI provider settings to your Tutor
config.yml:AI_EXTENSIONS: <your-config-name>: API_KEY: "your-api-key" MODEL: "openai/gpt-4o-mini"
Enable and Build: Enable the plugin and rebuild the Open edX images to bake in the dependencies:
tutor plugins enable openedx-ai-extensions tutor images build openedx tutor dev launchInitialize Database: Run migrations as a one-time setup step:
tutor dev exec lms python manage.py lms migrate openedx_ai_extensions
A set of demo fixtures is included to quickly populate the database with example AI workflow profiles and scopes. These cover several common configurations: flashcards, box chat with summary, chat with function calling, streaming chat, educator assistant, and mocked streaming.
Load them with:
tutor dev exec lms python manage.py lms loaddata demo_profiles
Important
The fixtures do not include inline API keys — they rely on the global
provider configuration in your Tutor config.yml (the AI_EXTENSIONS
block). Make sure you have configured at least one provider with a valid key
before using the profiles that call a real LLM.
If you need a per-profile API key override instead, edit the profile's
content_patch in the Django admin and add an options block:
"processor_config": {
"LLMProcessor": {
"options": {
"API_KEY": "your-api-key-here",
},
},
}
- All code, comments, and documentation must be in clear, concise English
- Write descriptive commit messages using conventional commits.
- Follow the CI instructions on code quality.
Significant architectural decisions are documented in ADRs (Architectural Decision Records) located in the docs/decisions/ directory.
We welcome contributions! This is an experimental project exploring AI integration patterns for the Open edX platform.
How to Contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Make your changes following the code standards
- Write or update tests as needed
- Submit a pull request with a clear description
See the Contributing to the Open edX Project quickstart for more details about the project's code quality standards and review norms.
For questions or discussions, please use the Open edX discussion forum.
- Open edX Conference Paris 2025 Presentation
- Open edX Plugin Development
- LiteLLM Documentation
- Architectural Decision Records (ADRs)
- AI Extension WG Demo (before v1)
- AI Extension Framework documentation
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.
This repository is covered by the Open edX maintainers program and the current maintainers are listed in the catalog-info.yaml file.
Community Support:
- Open edX Forum: https://discuss.openedx.org
- GitHub Issues
Note: As this is an experimental project, support is provided on a best-effort basis.