GenAI-powered agent for Zammad
27
stars
1,079
commits
Python
primary language
Sep 10, 2026
updated
Zammad-AI is a GenAI-powered integration layer for Zammad. The repository contains three Python services:
zammad-ai-workflow: the backend service for ticket triage, answer generation, Kafka processing, and the optional embedded frontend.zammad-ai-index: the indexing job that synchronizes Zammad knowledge base content into Qdrant.slm-guardrails: the content-safety service used by the workflow for prompt and response checks.The services are separated from core Zammad so prompts, retrieval, automation rules, and integrations can evolve independently.
Zammad provides native AI features (for example AI Agents, AI Ticket Summary, and AI Writing Assistant) with flexible operating models like managed AI, bring-your-own-model, or self-hosted LLMs. This repository addresses a different goal: a fully controllable integration layer for project-specific automation and knowledge retrieval workflows.
We keep this component separate from Zammad core to:
zammad-ai focuses on backend orchestration, custom business rules, and external integrations.zammad-ai is code-first and designed for custom prompts, adapters, and processing pipelines.zammad-ai adds event-driven ingest/filter/process/output flows and explicit indexing jobs.zammad-ai can be deployed, scaled, monitored, and released as independent services.zammad-ai acts as a composable AI middleware that can serve Zammad and surrounding systems.slm-guardrails.
For the Digital Citizen Service architecture, see the DBS Architecture documentation.
docker compose up -d
Available local services:
cd zammad-ai-workflow
uv sync
cp config.example.yaml config.yaml
uv run python main.py
frontend.enabled: true in zammad-ai-workflow/config.yaml. In development mode, the backend exposes:cd ../zammad-ai-index
uv sync
cp config.example.yaml config.yaml
uv run python main.py
The backend exposes the following public routes:
GET /api/v1/healthGET /api/v1/prompt_versionsPOST /api/v1/triagePOST /api/v1/answerRun the test suite:
cd zammad-ai-workflow # or cd zammad-ai-index
uv run pytest
Lint and format the code:
cd zammad-ai-workflow # or cd zammad-ai-index
uv run ruff check .
uv run ruff format .
Type check the codebase:
cd zammad-ai-workflow # or cd zammad-ai-index
uv run ty check
.env, and config.yaml in that order.ZAMMAD_AI_ prefix..env, not in config.yaml.config.example.yaml file. Defaults are defined in the source code under zammad-ai-workflow/app/settings/.Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
See the full guidelines in CONTRIBUTING.md.
If you have a suggestion that would make this better, please open an issue with the tag "enhancement", fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)More about this in the CODE_OF_CONDUCT file.
Distributed under the MIT License. See LICENSE file for more information.
it@M - opensource@muenchen.de
Python
96.8%
PowerShell
2.3%
GenAI-powered agent for Zammad
27
stars
1,079
commits
Python
primary language
Sep 10, 2026
updated
Zammad-AI is a GenAI-powered integration layer for Zammad. The repository contains three Python services:
zammad-ai-workflow: the backend service for ticket triage, answer generation, Kafka processing, and the optional embedded frontend.zammad-ai-index: the indexing job that synchronizes Zammad knowledge base content into Qdrant.slm-guardrails: the content-safety service used by the workflow for prompt and response checks.The services are separated from core Zammad so prompts, retrieval, automation rules, and integrations can evolve independently.
Zammad provides native AI features (for example AI Agents, AI Ticket Summary, and AI Writing Assistant) with flexible operating models like managed AI, bring-your-own-model, or self-hosted LLMs. This repository addresses a different goal: a fully controllable integration layer for project-specific automation and knowledge retrieval workflows.
We keep this component separate from Zammad core to:
zammad-ai focuses on backend orchestration, custom business rules, and external integrations.zammad-ai is code-first and designed for custom prompts, adapters, and processing pipelines.zammad-ai adds event-driven ingest/filter/process/output flows and explicit indexing jobs.zammad-ai can be deployed, scaled, monitored, and released as independent services.zammad-ai acts as a composable AI middleware that can serve Zammad and surrounding systems.slm-guardrails.
For the Digital Citizen Service architecture, see the DBS Architecture documentation.
docker compose up -d
Available local services:
cd zammad-ai-workflow
uv sync
cp config.example.yaml config.yaml
uv run python main.py
frontend.enabled: true in zammad-ai-workflow/config.yaml. In development mode, the backend exposes:cd ../zammad-ai-index
uv sync
cp config.example.yaml config.yaml
uv run python main.py
The backend exposes the following public routes:
GET /api/v1/healthGET /api/v1/prompt_versionsPOST /api/v1/triagePOST /api/v1/answerRun the test suite:
cd zammad-ai-workflow # or cd zammad-ai-index
uv run pytest
Lint and format the code:
cd zammad-ai-workflow # or cd zammad-ai-index
uv run ruff check .
uv run ruff format .
Type check the codebase:
cd zammad-ai-workflow # or cd zammad-ai-index
uv run ty check
.env, and config.yaml in that order.ZAMMAD_AI_ prefix..env, not in config.yaml.config.example.yaml file. Defaults are defined in the source code under zammad-ai-workflow/app/settings/.Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
See the full guidelines in CONTRIBUTING.md.
If you have a suggestion that would make this better, please open an issue with the tag "enhancement", fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)More about this in the CODE_OF_CONDUCT file.
Distributed under the MIT License. See LICENSE file for more information.
it@M - opensource@muenchen.de
Python
96.8%
PowerShell
2.3%