Init
Some checks failed
release-tag / Resolve release metadata (push) Successful in 30s
release-tag / Build knowledge (push) Failing after 4m51s
release-tag / Build control (push) Failing after 5m0s
release-tag / Build agent (push) Failing after 5m0s
release-tag / Build agent-data-init (push) Failing after 5m5s
release-tag / Build neuroforge-worker (push) Failing after 5m7s
release-tag / Build neuroforge (push) Failing after 5m9s

This commit is contained in:
2026-08-26 18:34:41 +02:00
parent 3d8ffe6dfd
commit a6bc71fb3a
514 changed files with 199925 additions and 1 deletions

10
.cbmignore Normal file
View File

@@ -0,0 +1,10 @@
.git/
backups/
exports/
staging/
patches/
services/control/engineering-graph.json
services/agent/data/
platform/neuroforge/data/
*.zip
*.bin

110
.env.example Normal file
View File

@@ -0,0 +1,110 @@
# -----------------------------
# Mega-project core / security
# -----------------------------
NEUROFORGE_ADMIN_TOKEN=CHANGE_ME_ADMIN
NEUROFORGE_APP_API_KEY=CHANGE_ME_APP
NEUROFORGE_WORKER_TOKEN=CHANGE_ME_WORKER
NEUROFORGE_METRICS_TOKEN=CHANGE_ME_METRICS
KB_INTEGRATION_TOKEN=CHANGE_ME_KB_INTEGRATION
CONTROL_READ_TOKEN=CHANGE_ME_CONTROL_READ
NEUROFORGE_CLUSTER_TOKEN=
OPENAI_API_KEY=
# Staged vector migration: local | dual | neuroforge
KNOWLEDGE_VECTOR_BACKEND=dual
NEUROFORGE_NAMESPACE=glpi-agent
NEUROFORGE_SEARCH_K=128
# true = keep processing with local/lexical fallback if NeuroForge is unavailable
# false = semantic backend failures are blocking
NEUROFORGE_FAIL_OPEN=true
# -----------------------------
# Shared local AI runtime
# -----------------------------
OLLAMA_MODEL=gemma3
OLLAMA_EMBEDDING_MODEL=embeddinggemma
OLLAMA_TIMEOUT=10m
OLLAMA_KEEP_ALIVE=10m
OLLAMA_NUM_PREDICT=768
OLLAMA_JSON_RETRIES=1
# -----------------------------
# GLPI Agent connection
# -----------------------------
GLPI_URL=https://glpi.example.invalid
GLPI_API_VERSION=v2.3
GLPI_CLIENT_ID=
GLPI_CLIENT_SECRET=
GLPI_USERNAME=
GLPI_PASSWORD=
GLPI_AGENT_USER_ID=0
DRY_RUN=true
AUTO_CATEGORY=false
AUTO_REPLY=false
AUTO_PRIORITY=false
AUTO_ESCALATION=false
RAG_ENABLED=true
KNOWLEDGE_INDEX_MODE=incremental
KNOWLEDGE_MIN_SCORE=0.70
KNOWLEDGE_ALLOWED_SOURCES=internal-kb
# -----------------------------
# Web access
# -----------------------------
WEB_USERNAME=admin
WEB_PASSWORD=CHANGE_ME_AGENT_WEB
WEB_ALLOW_ANONYMOUS=false
BASIC_AUTH_USER=admin
BASIC_AUTH_PASSWORD=CHANGE_ME_KB_WEB
# -----------------------------
# Optional host ports
# -----------------------------
CONTROL_HOST_PORT=8070
AGENT_HOST_PORT=8080
KNOWLEDGE_HOST_PORT=8081
NEUROFORGE_HOST_PORT=8090
OLLAMA_HOST_PORT=11434
# -----------------------------
# Controlled learning / research
# -----------------------------
# Enforces: no automatic learning from raw chat input or assistant output;
# explicit validated outcomes and research evidence keep distinct provenance.
NEUROFORGE_CONTROLLED_LEARNING=true
# Ticket -> AI proposal -> technician accept/correct -> NeuroForge learn.
OUTCOME_LEARNING_ENABLED=true
# false = technician sees an error when NeuroForge cannot persist the validated outcome.
# The local outcome audit is still retained with sync_status=failed.
OUTCOME_LEARNING_FAIL_OPEN=false
OUTCOME_LEARNING_MAX_OUTCOMES=2000
# Active accepted/corrected outcomes are secondary reply evidence only.
# They never replace the approved-KB requirement for Auto-Reply.
OUTCOME_RETRIEVAL_ENABLED=true
OUTCOME_RETRIEVAL_SEARCH_K=6
OUTCOME_RETRIEVAL_MIN_SIMILARITY=0.58
# true = continue with official KB/context if experience retrieval is unavailable.
OUTCOME_RETRIEVAL_FAIL_OPEN=true
# Research is opt-in. Starting the SearXNG profile alone does not enable learning.
NEUROFORGE_RESEARCH_ENABLED=false
NEUROFORGE_SEARXNG_ENABLED=false
NEUROFORGE_SEARXNG_URL=http://searxng:8080
NEUROFORGE_RESEARCH_GOAL_ENABLED=true
# Separate switch for scheduled self-directed goal cycles.
NEUROFORGE_AUTONOMY_ENABLED=false
NEUROFORGE_AUTONOMY_INTERVAL_MINUTES=30
NEUROFORGE_RESEARCH_MAX_QUERIES=2
NEUROFORGE_RESEARCH_MAX_PAGES=4
# Required only when the optional `research` compose profile is started.
# Pin this to a version/digest in production if reproducible images are required.
SEARXNG_IMAGE=docker.io/searxng/searxng:latest
SEARXNG_SECRET=CHANGE_ME_SEARXNG_LONG_RANDOM_SECRET
SEARXNG_HOST_PORT=8888
# Optional local developer-only Codebase Memory MCP/UI. It is not required by
# production services. For a host process reachable from Docker on Linux:
CODEBASE_MEMORY_URL=
PUBLIC_CODEBASE_MEMORY_URL=http://localhost:9749

View File

@@ -0,0 +1,197 @@
name: release-tag
on:
push:
branches:
- main
tags:
- 'v*'
workflow_dispatch:
permissions:
contents: read
concurrency:
group: release-images-${{ github.ref }}
cancel-in-progress: true
env:
REGISTRY: git.send.nrw
DOCKER_ORG: sendnrw
DOCKER_LATEST: latest
jobs:
meta:
name: Resolve release metadata
runs-on: ubuntu-latest
outputs:
repo_name: ${{ steps.meta.outputs.repo_name }}
version: ${{ steps.meta.outputs.version }}
short_sha: ${{ steps.meta.outputs.short_sha }}
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Resolve repository version
id: meta
shell: bash
run: |
set -euo pipefail
repo_name="${GITHUB_REPOSITORY#*/}"
short_sha="${GITHUB_SHA::12}"
if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
version="${GITHUB_REF_NAME#v}"
else
version="$(git describe --tags --always --match 'v*' 2>/dev/null | sed 's/^v//')"
fi
# Docker tags may only contain a conservative character set.
version="$(printf '%s' "$version" | sed -E 's/[^A-Za-z0-9_.-]+/-/g')"
echo "repo_name=$repo_name" >> "$GITHUB_OUTPUT"
echo "version=$version" >> "$GITHUB_OUTPUT"
echo "short_sha=$short_sha" >> "$GITHUB_OUTPUT"
{
echo '### Release metadata'
echo "- Repository: \`$repo_name\`"
echo "- Version: \`$version\`"
echo "- Commit: \`$short_sha\`"
} >> "$GITHUB_STEP_SUMMARY"
release-image:
name: Build ${{ matrix.image }}
needs: meta
runs-on: ubuntu-latest
timeout-minutes: 45
strategy:
fail-fast: false
max-parallel: 3
matrix:
include:
- image: neuroforge
context: ./platform/neuroforge
file: ./platform/neuroforge/Dockerfile
target: server
- image: neuroforge-worker
context: ./platform/neuroforge
file: ./platform/neuroforge/Dockerfile
target: worker
- image: agent
context: ./services/agent
file: ./services/agent/Dockerfile
target: ''
- image: agent-data-init
context: ./services/agent
file: ./services/agent/Dockerfile
target: data-init
- image: knowledge
context: ./services/knowledge
file: ./services/knowledge/Dockerfile
target: ''
- image: control
context: ./services/control
file: ./services/control/Dockerfile
target: ''
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Configure insecure registry for Docker daemon
shell: bash
run: |
set -euo pipefail
sudo mkdir -p /etc/docker
printf '{"insecure-registries":["%s"]}\n' "${REGISTRY}" | sudo tee /etc/docker/daemon.json >/dev/null
sudo systemctl restart docker
docker info
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
with:
platforms: amd64
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
with:
config-inline: |
[registry."git.send.nrw"]
http = true
insecure = true
- name: Login to registry
uses: docker/login-action@v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Prepare image tags
id: image-meta
shell: bash
env:
REPO_NAME: ${{ needs.meta.outputs.repo_name }}
VERSION: ${{ needs.meta.outputs.version }}
SHORT_SHA: ${{ needs.meta.outputs.short_sha }}
IMAGE_COMPONENT: ${{ matrix.image }}
run: |
set -euo pipefail
image="${REGISTRY}/${DOCKER_ORG}/${REPO_NAME}-${IMAGE_COMPONENT}"
{
echo 'tags<<EOF'
echo "${image}:${VERSION}"
echo "${image}:sha-${SHORT_SHA}"
if [[ "${GITHUB_REF}" == "refs/heads/main" ]]; then
echo "${image}:${DOCKER_LATEST}"
fi
echo 'EOF'
} >> "$GITHUB_OUTPUT"
echo "image=$image" >> "$GITHUB_OUTPUT"
- name: Build and push
id: build
uses: docker/build-push-action@v7
with:
context: ${{ matrix.context }}
file: ${{ matrix.file }}
target: ${{ matrix.target }}
platforms: linux/amd64
push: true
pull: true
tags: ${{ steps.image-meta.outputs.tags }}
labels: |
org.opencontainers.image.title=${{ needs.meta.outputs.repo_name }}-${{ matrix.image }}
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.version=${{ needs.meta.outputs.version }}
cache-from: type=gha,scope=${{ matrix.image }}
cache-to: type=gha,mode=max,scope=${{ matrix.image }}
provenance: mode=max
sbom: true
- name: Publish build summary
if: always()
shell: bash
env:
IMAGE: ${{ steps.image-meta.outputs.image }}
VERSION: ${{ needs.meta.outputs.version }}
DIGEST: ${{ steps.build.outputs.digest }}
run: |
{
echo "### ${{ matrix.image }}"
echo "- Image: \`$IMAGE\`"
echo "- Version: \`$VERSION\`"
if [[ -n "$DIGEST" ]]; then
echo "- Digest: \`$DIGEST\`"
fi
} >> "$GITHUB_STEP_SUMMARY"

9
.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
.env
*.log
.DS_Store
backups/*
!backups/.gitkeep
staging/*
!staging/.gitkeep
coverage.out
bin/

513
MANIFEST.sha256 Normal file
View File

@@ -0,0 +1,513 @@
27dc46be5cbb1b171deff7fbd2f28bff1be802dff403797535fd8968bb98c8eb ./.cbmignore
6975891550d0f9343d69faaa5fa7966d016a0b84d31546e6ecb26a9ddfe23398 ./.env.example
f86e1fe23360c211f7229745743fc8728cadc9b3df4547187a0e15774a66a0b4 ./.github/workflows/release-tag.yml
e1ff71187cc3411a85067b964264011db7bd109a585ef7b9ea5b08bda039d813 ./.gitignore
9c18555764b03bdb004098bf6b8ca7f3eaebdccb8c17f15a11d2cebbab28cbd3 ./Makefile
546df743afd5858157b568194c3e588bd490d4438e1ffc33b91abcdb71b652c4 ./README.md
4858caa52c0fb6cf302a1c581d07d448e5e90e0daa797e5819610fd6223bd348 ./RELEASE-NOTES-v1.1.0.md
01163462f46314f57660677fdef407c6c2884412ea850aab13a4f650e8c29f50 ./RELEASE-NOTES-v1.2.0.md
4da388ce660aa3b7a0d8075ec066a025b5437960973397360fcb9a5d4cb58c96 ./RELEASE-NOTES-v1.3.0.md
257d6d3ea1d22b8ab97adb5d35ca5ac806702d75cea66982dc711754040fc7a2 ./RELEASE-NOTES-v1.4.0.md
78b591400c56b7b67b8cb3b2b8a8e65e9093897f02ce0878e6b5405c68620fa7 ./VERSION
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./backups/.gitkeep
8127e9db5e5e0af1d88770dc8fa60b381de45dbcc843262698cf9501409b4d58 ./deploy/searxng/settings.yml
6d020933eedaa08772262b861c43c50944a596ae11bef3f623041769c68cf09b ./docker-compose.yml
0f2adaa0765ff00d9c3a1133840c7a768a011f9d8f820f8a340b43600c7649d8 ./docs/ARCHITECTURE.md
9467a3c0796a87bada0eab6ad191913e628b4abc05520cbb4b73fac76d334481 ./docs/CODEBASE-MEMORY-MCP.md
765c39f0db69165a70d8175d1fe7686ff6dd512669db088a6fdf6a93de5404f6 ./docs/CONTROL-CENTER.md
ea8a6d298d33ac3f23825dc58f2bc12dc369ed9487b7b96c4b28a8febf1299c0 ./docs/CONTROL-MATRIX.md
c34f750f1d06fe3b750ad7e7de0aef5cad919e389517eb0f8881eae452ac80b5 ./docs/CONTROLLED-AUTONOMY.md
2465c837c243ef03856ad1297b540d6df90005c74b9f4a9bba223066a612009f ./docs/IMPLEMENTED.md
9c38807cc12fba6f94cadc4694996de58e6d2d5396e55fc0c4bd404bb13f53ad ./docs/MIGRATION-CUTOVER.md
a71d28353529906cee08cf90f35e0b0cf97bbc94ccfcef830145a2d561b21a9c ./docs/MIGRATION-MANIFEST.md
4330b3adefd8c40d174e1e878ff7cf075d99a44ec51251953d1a58d3a0fa8ca3 ./docs/MIGRATION-v1.1.0-to-v1.2.0.md
46672e5984cdcf5f31e88dccc273041aa277552cc9c5ecbf59a46b3de133da7b ./docs/MIGRATION-v1.2.0-to-v1.3.0.md
3738dc79be0598316dc397f1fcc71cedda67b604a3038b116c2ea001dc3105ce ./docs/MIGRATION-v1.3.0-to-v1.4.0.md
2a01fb10a3e04eae1800a7c7e0aafc31e9bbb23584cea54d849b004716ef81b4 ./docs/OBSIDIAN-EXPORT.md
040010a807178d33797106e04716822f8d147d7d5833c1ba70865a1827f8484a ./docs/OPERATIONS.md
69ea49bc76690ac489aea908f4e784a14293e92d62478a240eabea53c5f90820 ./docs/QUALITY-REPLAY-example.json
bd2d3c43a09a89fefd0e844433064d7d7384a414179a754c6de94232d738fb04 ./docs/QUALITY-REPLAY.md
be749a09ddbcd4cf427316c6fe531f138e9bfaa6c104f4c11a08f7555231e8b2 ./docs/UNIFIED-GRAPH.md
25396a0a80f232d6073530e1ef3222e565efd0a24e2c66ea0866285d03332d70 ./docs/VALIDATION.md
be4810451750abb676eee0edcc6f164d86f372f32b185f6f730bf84538cef4a8 ./exports/knowledge-obsidian-snapshot.zip
dfa65e55e9ccf642ae5ef8ef91c62f4220b31ce4304ea4e1061f2e7d8c1b0fb4 ./exports/knowledge-obsidian-snapshot.zip.sha256
99ffd5f497239a5e17b4e4bc79c7a1b5e1e41fdaf9b3f07beb7179050bbddcc4 ./go.work
5a81ef73b2de4ff60c440a7a5e42da68e8ca30fab7bc62de63757157d498d72a ./knowledge/01_active-directory.json
70b176be0117d51a35a699ab50c2ad9dc944dec807e4a193e1adbbf0ece888fc ./knowledge/01_arbeitsplatzdrucker.json
96cf6b96e462db5e4be8345e9b18afee4e7dd5d51bcbd59e6817266725b92318 ./knowledge/01_fachanwendung-storung.json
521a4e7d6b1362bacc8d3b8dafe73d081fad9ed06825376b57460d163db31aa6 ./knowledge/01_festnetztelefon.json
88610d1d8b75017251e040f7627a141865b7f45a874073355bb6b30ba68c63a8 ./knowledge/01_hardwarebeschaffung.json
4e2310d9d3fc5dba392f1869887a7ab61ce4af69822dffae5892a3797252b39d ./knowledge/01_kennwort-zurucksetzen.json
5eb15ac8d8c6525d6eb21c29189d1561b8b6e23d81c096d012fe5f9015534c53 ./knowledge/01_lan.json
95a46a2f250c94a380be3c259f98e83a9042201d9e3fcf2f310f7e87a293af14 ./knowledge/01_neue-it-anforderung.json
ee98f46f39bbd60cd4fdd2b97ca6037a89719fd7a6936ebffb356b633ef2d1a6 ./knowledge/01_padagogisches-netzwerk.json
f64d5d7bbbc67d3f958f59c94ff9a99f48801f4d31a041ed12f503c923f4a7a6 ./knowledge/01_pc-und-notebook.json
ae9d1634baaa057f8b043558874a6d91b49d06edf8a101d0bb94096e51b062bc ./knowledge/01_sonstiges-und-unklare-zuordnung.json
5116a7096a289685d4a320a72a99beeaa6dffa0bd640013061a9a973446d8ea8 ./knowledge/01_verdachtige-e-mail-und-phishing.json
5b414f4fccc87f0a9abd3bc4e66a2deeadf0dad87752de19496ed9df217364bb ./knowledge/02_benutzerkonto-anlegen-andern-oder-loschen.json
ff7275f53dee116e4194c08b482ff014e86ed31f3d127aed8e2b8dd67a1eed68 ./knowledge/02_fachanwendung-bedienung-und-beratung.json
0377ef73fe676606dfb70605a4547b7484c3fa7109474955db6566c7c1812212 ./knowledge/02_gruppenrichtlinien.json
4f3fa6ec2a9e15ef5b002bde7b1caa9f6a0352fdd15bfe6638a14ab7f4ea8220 ./knowledge/02_monitor-und-dockingstation.json
bd4de92a6dcb5cb79fc1c6eb5d47f54b4585da5b586fecb74dbe50d52d8f7fe7 ./knowledge/02_netzwerkdrucker.json
7b31d78a0019c00e360012ba1ba7257f18862297f2fdfeb173dc86154ff16191 ./knowledge/02_rufnummer-und-nebenstelle.json
efc4eb64f60404796106fa20770b1b426698c602f2665cb2c458d30fab3eb206 ./knowledge/02_schadsoftware-und-virenfund.json
2b1b802004ce185a6d4222848f84fe13bbe993946946e1c9119e5fa590f5ac99 ./knowledge/02_schulverwaltungsnetz.json
830bf169fab29b06ff5f6d208c3df4cd0431fe49b0ad6a7e6fa574ac71cc2555 ./knowledge/02_softwarebeschaffung.json
fb45cf8cacb1e9c9a8dc9f61cde9d399c607129f9bb1171b214b829c0cced2d5 ./knowledge/02_wlan.json
26a059eac1654315c9efe982d3e441d3d667558be5d3d6643ea17efe756f96a9 ./knowledge/03_ad-gruppen-und-gruppenrichtlinien.json
b0348c630524118be4e6efcfac879f0d7ec9494e0e85651088200012ad10669a ./knowledge/03_dateiablagen-und-netzlaufwerke.json
0d3fee8511a1958a5be1a0c1fdbb7e13821ac8ec6fa842e75931a426186b6d9c ./knowledge/03_digitale-tafeln-und-prasentationstechnik.json
a57924a695e382796ef15960e371cee6ebc61bf282402f69e07fd59072aa5ce4 ./knowledge/03_fachanwendung-berechtigung.json
f75f00b6f15ce8a6211b953efb224540f6d8bac2da19570fb27c0e72d6ed24d0 ./knowledge/03_internetzugang.json
5a76dfb0abd1f3927b070ed5e3a035d6c7c95ffe7a63b1c9a4dbf7c22aef33b6 ./knowledge/03_lizenzbestellung.json
d4b595bb8069dde2ca4f241180178a82253a8beaa958811c18f3ae94c26ab02b ./knowledge/03_multifunktionsgerat-und-kopierer.json
c190b86667330c1d2926cdb98ee9bf437efcce6dcbbcb63d3987230a3e3c2f54 ./knowledge/03_rufgruppe-und-weiterleitung.json
b0d830dcd42919754fb73db0b17b2b3211be6a21b01734daba571dafde9ed01f ./knowledge/03_sicherheitsvorfall.json
ca1b3b608c0506457e607f09e4daf827df4ac340d528eb296190822ac846cf5b ./knowledge/03_tastatur-maus-und-zubehor.json
7bf663850628f0046edde52a80c2e32362fa5060e7a541162a63e78b3385f0f6 ./knowledge/04_anwendungsberechtigung.json
6d0205eff7ba230918fe72d19c833eee32de4de50d4e3657b1849cb576afdfa2 ./knowledge/04_computerraume.json
36eacce8dbf33a7e061b3baea0d43a5f3468bef003dc18d8e972f8844ca04043 ./knowledge/04_fachanwendung-konfiguration.json
a45d9b3c16c0342a9f7cb12cee286f7f34348929d54644aa82779084da41c3a2 ./knowledge/04_lizenzverwaltung.json
e7d40406ed649ae4764e26f3dc14170d5b9910810f8f304025cb030424205aeb ./knowledge/04_mobile-endgerate.json
adad80ff68baa3a998b80926e03956e8200d714a2aed9a1fe6aa72228c31faa8 ./knowledge/04_mobilfunk.json
1cc331f2d03971b6cc92202b6fac1eccf031acc81d8f3c60549b36e1628fcefc ./knowledge/04_scanner.json
658ea20f369985931ef590bbfacbe365da24ab06c7a7433bc546511306bde33c ./knowledge/04_schwachstelle.json
5feb14bdd59e0237832561b2d542afcdb877637bdfe6c9c2063e367fd0460025 ./knowledge/04_serverbetrieb.json
ab7d1a11ab1e66fa6d26eb1c8783ad11a319ce77f99be48ebc71d39f3b017c3d ./knowledge/04_standortanbindung.json
9c97b4ae44a0f0d14292a7a0bf882f2da62dcce0535f37ae36173acd31fda937 ./knowledge/04_standorteroffnung-und-umzug.json
8dafc6d816dc06e9e384fca9d504021c2a3ab3b25f67f3556b93f98be955e5ed ./knowledge/05_dienstliches-smartphone.json
47d689c3c7f3d5be8de0ee31e781664ed9e230dd6f9d10a287d3f5d462981f43 ./knowledge/05_digitalisierungsvorhaben.json
4edd62233b8784ffc0e7271300d7ce96709bfa8bb73f41f945d6420ec989d838 ./knowledge/05_druckertreiber.json
74bbb7b99036c7f9311fe912f73aea78d426fefc0ce37d841d907c0dd731e8b0 ./knowledge/05_fachanwendung-schnittstelle-und-datenaustausch.json
a9a244145670b544f578a49c72f5ccc10bfcdf11b67080659f3c305a2d48d2b5 ./knowledge/05_hypervisor.json
0bdd46fe6c5f13d562299b07ff9f2e18ba3a6a90f8d124c0934197245c59ba3e ./knowledge/05_remotezugriff-und-vpn.json
9c124626a953b7c9812b576f9f22f5fd075a7b9ce591bd20b06b717f29ab87d7 ./knowledge/05_schuler-und-lehrkraftekonten.json
2dcae54e57b9acd92c681be31a3a0f2386844322c4bdb1d5d01f85216ef6b703 ./knowledge/05_softwareinstallation-am-arbeitsplatz.json
9178eb0fc81af7823503f87f6b63d9c57bef29490b264895f6ae2cb20cf8e075 ./knowledge/05_telekommunikationsvertrag.json
fbc426c129b187cd0943f4924b08d127a9f8c2ef0977a1c05062d2b912f90e33 ./knowledge/05_virenschutz.json
e9833109731fab66468e6fa1b5c22ded747b477edc0e852336691ba60cecc560 ./knowledge/05_vpn.json
153150769b692cff7cf506978ff47aa929c01423fcf10abaaac48a22f8ae0793 ./knowledge/06_betriebssystem-am-arbeitsplatz.json
d33e8db3bb4f32e30ede4d4cd604b90159bc9dbb66fe1f9baea441dda3168ce9 ./knowledge/06_dns-und-dhcp.json
b3e9b7646617aedf3beb955dc94aaa99ce931bdf4a8749e118c2d5eb78dd45c9 ./knowledge/06_fachanwendung-bericht-und-auswertung.json
77f0f12f2f216cb52c5d6d394eba485e690fd0e2c74bff8f38213b6310779108 ./knowledge/06_mobile-schulgerate.json
e96d1285c9be2cd4a151fcbdb4745181fc2ab20e42dff97f54fc4e9ff9857a53 ./knowledge/06_scan-to-mail-und-scan-to-folder.json
cadd71e26b643ce1fd7276fb72ef9d2e43e8ba57ddf01d44337fcefb79c9800a ./knowledge/06_sicherheitsupdate.json
ef09af49f08090c9a82bbd9e94c735426a371f31002cb1d461e1f7f94da2c21b ./knowledge/06_videokonferenz.json
e496efbe113881d38d97c20c199206e52ff9b936d7cdacfc186c585bb9aaa68c ./knowledge/06_virtuelle-maschinen.json
71802acd7b2287d3edb968636a05b2651f6386faca3a820e47ac4476244e4874 ./knowledge/06_wartungs-und-supportvertrag.json
ad1cd6d0728da647a4e819b4cd74b5a2302398a3a7becaed147e9e8942080c30 ./knowledge/07_angebot-und-wirtschaftlichkeitsprufung.json
2924cfc43a83c7fb4856096f5005ba8bdbdf2179e3e94b0fa81fc36a09dcc06a ./knowledge/07_datensicherung.json
46883e5655761c31bbe1a55a9e5d9cd3929b660ed44ae827ea54ef5c1f761e4e ./knowledge/07_fachanwendung-update-und-release.json
8001bb3da012ad43f87f8606610e8144999b740ac247050a7f100c2ed17aa2a4 ./knowledge/07_firewall-freischaltung.json
03d25806ed7a3098d4dd004e05d3fbcd81c338de7a7ff4a3d888705a96128541 ./knowledge/07_funktions-und-sammelpostfacher.json
a87af380b0d3e3afe7e1c63b4a164ca6565259c7b5936c4227b11e7b7ef7cf8f ./knowledge/07_geratewechsel-und-umzug.json
9b5723928527fd21fba2be5f5fa51cba6722563465f74e498478b1b2e334c955 ./knowledge/07_mobile-device-management-fur-schulen.json
48f71d04c5e20d9c2aa2976569ac9912da2fb4af3f949fbc896915d2de701c24 ./knowledge/07_projektunterstutzung.json
ae521cc69bd2a957189486a85bc4a9ad16bf960d5d91ca3e40757ba6b1304515 ./knowledge/07_storage.json
2058ccf0315975a480de2b1dcdb4a480445144abe330855ba04a8a9122849ce2 ./knowledge/07_telefonkonferenz-und-softphone.json
748b64297c5c59f20a78f0405bf798b1462934a1f05a411634133225c1c56b3c ./knowledge/07_verbrauchsmaterial.json
7fe889fcff1c0745f1e6dc1f01f84a7580eb8b75a667ed0c60e0c529f24a0b6b ./knowledge/08_datenbanken-plattformbetrieb.json
59e1e03acd3b87b41132a047acf14afb190e5752066c6a3c2f39831d132ca30c ./knowledge/08_datenwiederherstellung.json
7e9fa4d0803f8c7075cfeb6db447b63bf99119dae2c2bb232bc82037c5af6943 ./knowledge/08_fachanwendung-neue-anforderung.json
f17afbc9c495993c1dba9ef99b70ef448c9b863202e5875772d281d7624358ab ./knowledge/08_hardware-neubeschaffung.json
b2a11fdacec61937d4d5efa717c31b71b991f46e935341de2e6317292253b5b8 ./knowledge/08_netzwerksegment-und-vlan.json
1aebfa9a90184e3006709550e55bf538bc7d1a5fcd3bf7abb3902878db8ea13f ./knowledge/08_neues-drucksystem.json
b1393289055a6afa0f08ac1705fae9b12a1f74eb6d91d19d6c35045575a2df72 ./knowledge/08_padagogische-lernplattformen.json
ee49a806543115536081ae2cda509400e095253f9f4145b2e4f7bb58984127c8 ./knowledge/08_rechnung-und-kostenstelle.json
3e0ea96e6eb9d1c78e74c34fcb07fd10147a00cdbd099cc2b6fbf2f7d0bc0967 ./knowledge/08_telekommunikationsbeschaffung.json
0fd6d1281879b334b2f5f2afc8b40bb4f2ce2e3484f92362ad682a9b522f19c4 ./knowledge/09_container-und-docker.json
4c50cad1c6116b42b1149aaeb24a117eb97e6a0ab7df2590dfe1ccb797b567a8 ./knowledge/09_fachanwendung-einfuhrung-einer-anwendung.json
91b7be1bc88abd9631802a12eca2cb08a4bfb6f5890929512253deae443f81c7 ./knowledge/09_inventarisierung.json
d4df65a13c1554e630351ebd8b4c0f6a088893c20fd894165010417ddef6d4fb ./knowledge/09_protokollierung-und-auswertung.json
267d66313420fef443e9645b696e9fe6f7aba60af4e3b26f0f6b2df06f36c979 ./knowledge/09_prufungs-und-klausursysteme.json
27e88b61055a44007777bd4318ad19b3e5b6f017974cb75fca968ef928206a8e ./knowledge/09_ruckgabe-und-aussonderung.json
eb721fd2e91e5198cca4862f980c6692846405fe43107e49f2d85dfd080a8a52 ./knowledge/10_haushalts-und-budgetplanung.json
523b27e6fdbae8de9c680fffb538e23082463028b5f5329a2cd7610358467f4a ./knowledge/10_kubernetes.json
1e43fcd4bf900b2118d7977425fc7c55ac426eade471a8656841313e390eec62 ./knowledge/10_microsoft-word.json
8b708ca4da157dd73a77ae051716efce330662fcff64a073fc625d68eb034935 ./knowledge/10_schulverwaltungsanwendungen.json
813c045cacc6a0e3cdbceea69436d65cb8ac5b6009b060039488eefdfcc0007d ./knowledge/11_devops-und-automatisierung.json
213d466c3e0a3f864268bc1b4ddcdc117f7b8dbcdf5e8a50032913de706a606a ./knowledge/11_microsoft-excel.json
a615dc9c1ee5754c2ffa8eae113311cd857dd1422104eced8c41ffc42eb716de ./knowledge/12_microsoft-powerpoint.json
e3a2d2154b2c9adde57874aa0c515b99c2c4fa8171da188162de421f309ab7b6 ./knowledge/12_monitoring.json
2231a0a90369fc5208f721d91bbda702c9f58aea7f1bcccd0becf5f79a89fb8c ./knowledge/13_outlook-client.json
cb3cde795233c0d4842dc7451c5855d1c071e459efbde3be0cabac32a837ba1b ./knowledge/14_office-vorlagen.json
9b345483a41489babc35aca19a147c343a895eae40702bbd86075eb86538bb5d ./knowledge/15_office-add-ins-und-makros.json
7f1d67faf4a6cea0c41c84d7b275d8a8979b19420b52db4925d8e2cd71ead3e0 ./knowledge/16_office-aktivierung-und-lizenzierung.json
f1eab883370e0a40ef52a6b6d785a510d8ed48a19d25e0a2bc95f4f2cc8e329e ./knowledge/17_serienbriefe-und-dokumentfunktionen.json
5a0b3d5d5bc712e30a67a4de3432f69070f7e43dd99931f675e72c213006b363 ./knowledge/example-vpn.json
5345a8f54fb5f1f80196eb3662332b39e9d2869e2c5dbb56fadad846eaf15293 ./mega-project.json
8531264c1fa1fb0e5067701dc874729db510fc870726c73457eabfb0d61883f4 ./patches/SHA256SUMS
47a6fa2c79bbba0c04af86dfa65d58529f492c698060fe586456c22a4eadb877 ./patches/glpi-agent-mega.diff
9b411c90d96a86c80f088ee4637046eeefaf31c62059d11aa1a999d6eb08b5b4 ./patches/glpi-knowledge-mega.diff
f0491de3cb6201f98ca6be8e865237adbba4772471f7fc7165d030e0c045fdb6 ./patches/neuroforge-mega.diff
576e75ca9191bbef7f136abde90c10a1c6bf2e36450a421fd3796e988bd2af00 ./patches/v1.1.0-to-v1.2.0.diff
7a5e0ae1d09b268d3ac62a51f92bfedf6771be26b909605a347f26d47d6fa8cb ./patches/v1.2.0-to-v1.3.0.diff
163a8a990aacd986bacb385494c2b2062ac10a9a8f0a456d19a6d1746c2fc500 ./patches/v1.3.0-to-v1.4.0.diff
564817f8edabde0c4e4a1a427a3aa5418aae7bf12e9463044a7e6e0f13973657 ./platform/neuroforge/.env.example
39319b6f2058e4c8d6656a9cf01675374f81a04075b956b093a2befb5e05ada4 ./platform/neuroforge/.gitignore
189486a885c7fb78e0eb878d93cda0c70ca6d7ff9bfdfb3f5f32487cf03a9688 ./platform/neuroforge/BENCHMARK-v0.5.0.md
b9cfe0119f316b8143ebd33e9f66a8da36493a2c6c17acf2519ecba023223424 ./platform/neuroforge/BENCHMARK-v0.5.1.md
fc3aaadc0675ebb6dfeb42d9612a68c1905ac575e2c33299ca6e1522d8bdbeb9 ./platform/neuroforge/CHANGELOG-v0.7.0.md
9a1923b4c01a02d18b982aab3579ee7a976a95a6997dcc60647ae4283dd1e863 ./platform/neuroforge/CHANGELOG.md
0cf6f4a2f51b3f9ef1d985375476de68ec96338f85f8070c555807cd42e0abc3 ./platform/neuroforge/Dockerfile
9a9fd7708b61027e3677044ab1cbf7177119eac796df4d8786d39011da28729f ./platform/neuroforge/IMPLEMENTATION-NOTES-v0.6.0-dev.md
3146656e702607501cb348c77dadff608f9c152c4104647230848004e2692251 ./platform/neuroforge/MIGRATION-SQAR-VECTOR-JOURNAL.md
ee7f52ec20dcce87b751637229fe26c65d5cb0a926ac32915f46bf1b5eedad3d ./platform/neuroforge/MIGRATION-v0.2-to-v0.3.md
3095ca2e4512744ccfb2c3c71d80dfdbd42fe24e556a374061a76b80cbc33213 ./platform/neuroforge/MIGRATION-v0.3-to-v0.4.md
680eb77c8d645c3a2afa4e92e3062d1dadaa079425ed8c3f0d73393931354b59 ./platform/neuroforge/MIGRATION-v0.4-to-v0.5.md
0a21148446a057c773700fcfb026230fa771e970482bd6bdebb9cb9a3c11f4d9 ./platform/neuroforge/MIGRATION-v0.5.0-to-v0.5.1.md
59d223ec40991ef152f32b8bec26fa283bfa6318942e33a1a2169a85b361d9da ./platform/neuroforge/MIGRATION-v0.6-to-v0.7.md
4fc6e6f43fa70f4fa8a085225ecdc7ecd460bbcebca01dde70fed48a4c933c68 ./platform/neuroforge/MIGRATION-v0.7.2-to-v0.7.3.md
02bc0ac5316d063304b17bc51780f2fe55fbdfc44abbb151bac2397a642174ba ./platform/neuroforge/MIGRATION-v0.7.3-to-v0.8.0.md
9dc61428742d401d226d2eb8a74577b881309e67bb5c609d01b5152a18cb0bb1 ./platform/neuroforge/MIGRATION-v0.8.0-to-v0.8.1.md
7bbec66a7539fa9f65d8448e2c59c2f76797679f24d3b96691dc8c68e81d560f ./platform/neuroforge/MIGRATION-v0.8.1-to-v0.8.2.md
ffc6d8b40c9f77c7de1bd1d22c2161b5687b1a484fe6a8fcbe15ade1d2e5c9d3 ./platform/neuroforge/PRODUCTION.md
9f53f3a2d7212d47fed2cd88bf06bbbe2e1d37a3a2181afdb922148de4ab3eed ./platform/neuroforge/README.md
38bdb771c428636d18cb4640653ff7028715d5bfc5ca06d5ebc59f8ddcd095b2 ./platform/neuroforge/VALIDATION-v0.7.0.txt
73b7f0b287ae15f230a7ad2996ec305e787e7a8b096f7654fc69cf4daee12673 ./platform/neuroforge/VALIDATION-v0.7.3.txt
c3d34504b1b8a4ef73382df061c7b272a55c2a3a7a720435c6050254da3f22e0 ./platform/neuroforge/VALIDATION-v0.8.0.txt
0371dc02e4ac40b3197104f0aea41fb1b7be9b60caad4fc203eae1de1ac8191a ./platform/neuroforge/VALIDATION-v0.8.1.txt
b4896439112f9ca0f0a43d55d43cb3a2c4c802c568b65a96d04a3ca9d841c358 ./platform/neuroforge/VALIDATION-v0.8.2.txt
ceb9b2c03afb769df3b1e518520c4e1798e9a3313a1c5ffffcb054fef5d6d6fb ./platform/neuroforge/VERSION
0c5308f5a3d37ac23dce162fd5fab78ce598e41671db5dd50c9c4ae7f215d49f ./platform/neuroforge/cmd/bench/main.go
f28372e15f8e3a5a2403f50e2ddc410c0dbe37a236e74720b7a58dcc4560fc91 ./platform/neuroforge/cmd/server/main.go
1043f1658a672f9cdfa3f68ca3d19c1b81ca5d69f240d01924ddf393613c7f75 ./platform/neuroforge/cmd/worker/main.go
e3dacdaec3c629dd432f24218a50fa4de5e1698ac7f27e84b14f776b50beeb83 ./platform/neuroforge/deploy/learning-policy.example.json
3765a5faea1faeb72aad7878ff0159a56fa1b0ca1fc94a348a8c599e460b61dd ./platform/neuroforge/deploy/model-routing.example.json
dcb7f80239cf955941ede9bcdc3bda8f39d81db5e5b0e0962b373036b40a0df5 ./platform/neuroforge/deploy/neuroforge.service.example
72443642fd4c498554ad6e46db2a096c97530fba1ba20b842a478345fe54c46c ./platform/neuroforge/deploy/prometheus-alerts.yml
c30e5b2fd39e72894db22499259b6f97d225c5929a7f3472277853a348cab9be ./platform/neuroforge/deploy/prometheus.yml.example
dbbaa7fd4430b9cdb5302144b6d40f7ac4ab9f73e81da4ddb51e788dd373d95e ./platform/neuroforge/deploy/searxng/settings.yml.example
f94bc850fc5cc5004f71b1dd591a75b9f9488b7f9fb39d643d904c9d67b7380b ./platform/neuroforge/docker-compose.yml
fc993dc95fa49802ecb62994e4140dff18a27438e8a4f3c6352229c79b041710 ./platform/neuroforge/go.mod
e109864c7beed6ef1ae7e6ce968b82553ca13138e829926ab5256b6b2aabe603 ./platform/neuroforge/internal/brain/brain.go
976288422c0c4116d8c98af8a9b164ac670f9caf03eddc2d5e2e48747456d3b4 ./platform/neuroforge/internal/brain/consolidation_test.go
359955653c647125559afd6dc3ebe69aa5ca19ff7e825ce801b7bc24e5fbcfcb ./platform/neuroforge/internal/brain/policy.go
27e87af473d2d71ba94ffb9bf7a70934776f8c23ce45496ca0998ad3000fc156 ./platform/neuroforge/internal/brain/policy_test.go
0a3c8f7d149e814e091595982dbaa69467f6bf11eec631471d133a9b21585ae4 ./platform/neuroforge/internal/brain/research_trace.go
9cc8633d094d1e6563a787a2a51c2c959634be03449dca042117fcfff720f296 ./platform/neuroforge/internal/brain/v3.go
3ae13251512ecad1423a33ce09889f961130fefaed9342170b2d5cc6b3b51893 ./platform/neuroforge/internal/brain/v3_test.go
4bc58463b659bd7e51db4c7dbeba053de90fcb41f392a7d6e62a8cd84ddaa092 ./platform/neuroforge/internal/brain/v4.go
a9619d9571f6ab6363b36af9fdf1690f9f88e9333eb6f2773ae68580b19666d8 ./platform/neuroforge/internal/brain/v4_cluster_test.go
76319080d3faaf856e9fe5e1aac5e06be433d2f06cc6b152bac5f05dcc943fff ./platform/neuroforge/internal/brain/v5.go
816b725594ea5f6938999799394eaea9dd619addaeec5447d8e7707da4c28c69 ./platform/neuroforge/internal/brain/v5_cluster_test.go
cd8f1281e25ce42ae8918abbed16d4bf57ada9c3a3cc1212edd28f77ccc9328f ./platform/neuroforge/internal/brain/v6.go
edfedb67b1f55b2fa8a4a4d29b809b53083b36752e8dc087fa8603f4ec26154e ./platform/neuroforge/internal/brain/v8.go
3f01ce1b13b63489dcff2e0d63862ce27d6eda5609e0a2432f1d092de377cfe0 ./platform/neuroforge/internal/brain/v8_test.go
1160f871882d6510f9521b47a9064851c95f63e52d170e82c34b5766c8c48250 ./platform/neuroforge/internal/core/types.go
65a8b8196343e7cfd9444ca314da4a83c81bc046d9478b8b93217d9cc68ba562 ./platform/neuroforge/internal/cost/cost.go
b9bb2934e01ed2bfb6b16e4139e10e51f1387112eb8654f7f692779a2fd2d273 ./platform/neuroforge/internal/cost/cost_test.go
fb66ce4ab760b979eacd4f7f17dedc41916f93c53ba582be572d250f99654695 ./platform/neuroforge/internal/httpapi/admin_app_auth_test.go
4071eb134f63f19c95bba709c505e3748fcb7613264b6876350f49e6b693d61b ./platform/neuroforge/internal/httpapi/httpapi.go
79fce5bfbeb5d39e71047b2244fcac9c26595e20ca48f47d068cae83bbf29a18 ./platform/neuroforge/internal/httpapi/index.html
20f4a6cc30d5ce84ceed4fbdfc9f5c57ab5f82274e0c54464817d571e0e881b0 ./platform/neuroforge/internal/httpapi/integration.go
7f6e4767dfcb948570e05baadca6917f27a406fe57ef82eeb63e3b3979ec94b6 ./platform/neuroforge/internal/httpapi/integration_api_test.go
f8cfcc7a2bc781394231c25e36e75c41563f5250a1387e5687880d2591efd93b ./platform/neuroforge/internal/httpapi/integration_graph.go
532529043062ebc5a919abc58b68ed2c578dc7bd0105cbcdfce3f432ce776293 ./platform/neuroforge/internal/httpapi/integration_graph_test.go
b1a9df15a4d0263dd90b47672866f3e4e308498ae99002ba63ce128b759c8ad9 ./platform/neuroforge/internal/httpapi/knowledge.go
409dd8d7c5ca93cc82ce2b7bf17a12655c97dd27ad9767aa40619502830a0ab2 ./platform/neuroforge/internal/httpapi/knowledge_integration_test.go
9935c98831e586aefc9d1439ba16cad836103546b1343de646a61c17648d8cef ./platform/neuroforge/internal/httpapi/knowledge_policy_test.go
cf8d0808d3f37de187c4acb5e50e094f8b43d2b7e731eecf99368ab8a1325d41 ./platform/neuroforge/internal/httpapi/metrics.go
c40412c77dd8635bbd4bf9c6d7eb11b0d7902aee896bdd1ee99e5cdfb72c7453 ./platform/neuroforge/internal/httpapi/metrics_test.go
83033a18a319ffb162c7cdefb2efe108a47dba81095ac34662349e232f8c22da ./platform/neuroforge/internal/httpapi/model_routing_test.go
38a9388b6907975aec933697ad87ddeb9e7016a279523f2526db3810df70b006 ./platform/neuroforge/internal/httpapi/outcomes.go
093f6c37c1021cb252501d2aa9c0f42a75444ed69748b455847623da122947b1 ./platform/neuroforge/internal/httpapi/outcomes_test.go
b3b1f5cfd6b0ec04341978898d72856af03a95b8922daf9864caeb27e37f1925 ./platform/neuroforge/internal/httpapi/research_live.go
b37f7ec3be867666999a9ec314139dd1bc4c74efb53edfa224b4fe8119858aac ./platform/neuroforge/internal/httpapi/research_live_test.go
8a2251d4f4ae8114ac3f5e98fe2e1d6ce24e7817adcfbfc1f383d770e6ce139c ./platform/neuroforge/internal/httpapi/v3.go
b1587e066b56ef72f17162583698614d31c413e2ac7e75359b731c2e882a50ee ./platform/neuroforge/internal/httpapi/v4.go
1ef5cacb0652f2a6301c57f8987dd848fbe590abb73cab44899d9152ccce45d0 ./platform/neuroforge/internal/httpapi/v5.go
1d534726d7a75f21f7ad28a959f73a3402c021f7f4a1b554f0600cf3abf669d1 ./platform/neuroforge/internal/httpapi/v6.go
fdf937aae569dd48d09da63085fa2656299a3ab2f55c7fc7f718c46df39a2683 ./platform/neuroforge/internal/httpapi/v8.go
0c8c389b085e4546c3269b1bf0c539414f3603522ddfd0665261a6448f31b514 ./platform/neuroforge/internal/httpapi/v8_1_test.go
889b82a7f90be0590d0087ccac06aad330710c19f31c43b12c28480a94659be5 ./platform/neuroforge/internal/httpapi/v8_test.go
60fd100c9057c14d78f91d636f7f23aaf2767088c46b7670b4266ce22cbb5ae1 ./platform/neuroforge/internal/ingest/extract.go
7576df6ad6f8b692f14db739958fabe583cc5bb547c6068739fd47c45910d2ce ./platform/neuroforge/internal/ingest/extract_test.go
3fa7c62712de215f219153c6ec842dfb6da073de3dc52804a976866c148debe0 ./platform/neuroforge/internal/provider/provider.go
66649b5f82e1985b895d9f416545848d7bf29ddbb1a5321c442a7eea3d5620f5 ./platform/neuroforge/internal/provider/routing_test.go
baace266205a584a53463af76038e97771f088a38e42fe333bb548e43856e719 ./platform/neuroforge/internal/provider/runtime_test.go
024d4983420ac32fb0e29ff1cf145c45756af28076e937b07c272fcec28749dc ./platform/neuroforge/internal/research/searxng.go
e890897c662b070997c3b18134bafbee5bf9b3fa5220045ac09dc6e3dfd4ac41 ./platform/neuroforge/internal/research/searxng_test.go
49f89a674ab1a4387c67efd6f22406f3ab9067befc75114fe12c4801dfd1f005 ./platform/neuroforge/internal/store/batch.go
8e7a029a904ca1c22821c5e4871c72958f0d2645786871d75f3e00c186b00778 ./platform/neuroforge/internal/store/cluster.go
6637e541f61a58f624baca31d972095ea01a95491ddb30492d9ac055740213c5 ./platform/neuroforge/internal/store/diskann.go
1858ed8045b16282de815a6668ff6027c7a3a3795e38659c753c504d0f2a8383 ./platform/neuroforge/internal/store/diskann_test.go
d49925fda3cbe3ceeffde3369073bce5a5bc67a23defb6827e27cd4a7f4c59f5 ./platform/neuroforge/internal/store/index_segments.go
478efaeb260cb5e970af8b3bb99f232ef846f54c6e4ff9deb5499df6e008e1c1 ./platform/neuroforge/internal/store/index_segments_test.go
6c3e185cd9679789c10ce1b1b766045fbafa5282446efb49bfc040eb7809b8c6 ./platform/neuroforge/internal/store/knowledge.go
c9cc70e43cea30c70029fd6767308f4b2a7e7d4ba8fac749edff1f838bfb9079 ./platform/neuroforge/internal/store/knowledge_test.go
43de0f541fb47633b02b25686544d44887c17b47e8d01cb23f8e57567cebdcd7 ./platform/neuroforge/internal/store/mmap_linux.go
9ce033d691157037fc6df719b5ecd8fb29d6d881d1862e2d50dc0c6c573b5f66 ./platform/neuroforge/internal/store/mmap_linux_test.go
ef6135a9039fb45361e57107d3968272b4b365ac833e9e2e58b0875566bf5a07 ./platform/neuroforge/internal/store/mmap_other.go
fe98dca9f919cb52140a916de08e76b88bd0d08b6b83fc8b4e5220411998b0fc ./platform/neuroforge/internal/store/observability.go
66d612efe2462d76d79cc51b8b6835b5990d4a79a2dc036c26b040554357ae29 ./platform/neuroforge/internal/store/pagecache.go
5df97ac71adcea7627756a52d295d682900d3b812a977dbe9a4911e4c4118809 ./platform/neuroforge/internal/store/raftlog.go
fd6769bdcf1f7d22ced9ea426fd4dbc52b50b5483b4be42ac3b6adf637c926ab ./platform/neuroforge/internal/store/raftstate.go
f8d1a8c913a10ab2a658416bee7e94c2a08d5805e7329e459c3fac3055f57e19 ./platform/neuroforge/internal/store/research_runs.go
6a40b93c094b69af94e608d0dab777551d58091d07e1c48a8b6d1c5d77557fa5 ./platform/neuroforge/internal/store/segment.go
ebd58daf6dab70d87c7591903355d65716b323157c39454d8c34a4d9dd0733dc ./platform/neuroforge/internal/store/segment_test.go
18f4f033ec9c65cef88a235905bfcb69d89ff3d0a2c27e70d2aa3c8b78bea553 ./platform/neuroforge/internal/store/source_index.go
4d41586c15bfdd13139e19bfa102613f18ddc6120e4214a1f45dd9e2eaa195af ./platform/neuroforge/internal/store/sources.go
0ff464ef7fab01324d77ee4e406a8c15451b3333b75d4afa444be3c3c94f016b ./platform/neuroforge/internal/store/sources_test.go
61cd82b106e74f2aa0a7591d757a0872491a635dc1fccc78c66d41c052d0c9d2 ./platform/neuroforge/internal/store/sqar_vector.go
ae157a764f4970c6d8c5935b6370f682de79cee6c751e476b936aaa05dbb59f7 ./platform/neuroforge/internal/store/store.go
f86b648e8b4845ab83e672ae3fcfb0bcb0dc1bf891abf4bd30d380304f0b259a ./platform/neuroforge/internal/store/tiering.go
2fac412008f68b4fe98b2a433a0bd669ba108ce4c894c8bc81151664a5c318e6 ./platform/neuroforge/internal/store/v3.go
091e4c9cacfc76786a76f6afc4eb2b697e5a641e611475b6dab97e99371360ea ./platform/neuroforge/internal/store/v3_test.go
7f0bca5419a895258b7921e940c3fd69cce04dedcb0b9d8f1127cd24b9c9e201 ./platform/neuroforge/internal/store/v5_test.go
b3a0115907719a8a7aa9e6b244eec55be71a2535ba20db65907987d5fb78dc77 ./platform/neuroforge/internal/store/vector_journal.go
bcc12eb91682f3c0a626f5baeea64cb3809e56f087b9f1178a6c2546f5e301b3 ./platform/neuroforge/internal/store/vector_journal_test.go
ee2e72f00281f3b30e069abadbad2140fc841769aea27fa40f1c9f07ec877451 ./platform/neuroforge/internal/store/wal.go
7f0d5667c4a0e5f87f5ae86a6eb246a7a448891ccdaa3501ec81933b0430794c ./platform/neuroforge/internal/vector/hnsw.go
4bfd79da525c6d7901db01bc09c823608b641970e40aff9fdaac33da15d4432f ./platform/neuroforge/internal/vector/hnsw_test.go
6eac7fabc0f8a3cab53c758502895576fae158e3d672f8c87ad58588523919c2 ./platform/neuroforge/internal/vector/pq.go
275b0dd3b8cc3589541e3cfb52a2f1a372e40446e2e0c9c902388fa832e4f0dd ./platform/neuroforge/internal/vector/pq_test.go
c854f70f4141344dc2c6fbec4419afe5dfe25fd1bc2da11e41781730a21c8834 ./platform/neuroforge/internal/vector/recall_test.go
32f55e82419e4b043d15682c82ade1c4bc9694bfa372f925c131c2611f48d744 ./platform/neuroforge/internal/vector/snapshot_test.go
c5463c525f5ea703ea1f6df74cabc30f937f3846b1f75f237adeee2700baa977 ./platform/neuroforge/internal/vector/vector.go
276cb34ddd9f87abdac17be110e2bf15135ab83ba66bf91663d59d61fbd81125 ./platform/neuroforge/neuroforge-v0.7.3-rtx4090-example.json
250f3b7736f0adba4490dfe7104da2b14e3804f616a3f4cb9119d8a567ee12c7 ./platform/neuroforge/openapi.yaml
6f1d21b7aea3265a088256801aa37a00931157523d8bd834aa4f473e99511f04 ./scripts/codebase-memory-ui.sh
5abbc6b60bca94fcb880abebae19c85c6a220c9eabb9865928b23ae86246705b ./scripts/export-obsidian.sh
1295b1364f93ae4da70969716c2a99b54c248f5eb022363d15b2fbd8d6f1eaae ./scripts/generate-secrets.sh
fe35fa5db6dabf06e6266e0de4c372604160180366d4c0a8042c7ee54b7c6dcd ./scripts/propose-draft.sh
1744be0629e845c8d94dc2a06e91ca2cc9ce5928db00300b7fb894445aeda9ff ./scripts/quality-replay.py
0835b14909b5d001ef93a1678be968a87a525b6836c2c6fe8885a8bf889b4718 ./scripts/research-up.sh
457c349025a9508cc67154d571533dcd1ee77b5e0b89927de0846f0355e6a7e8 ./scripts/status.sh
2970d5f5049323b14a3f3983c2f4eb5392d745b4fea34742e3cf56e52d740f17 ./scripts/validate.sh
17d7149607bf40ccc6f64a3c4cf3e4023a8325675918c18df0be309ea9731a36 ./services/agent/.dockerignore
b0851a029d0f5634a5237c80eb6156beef46b9d71284c6616677dbf1c4e85421 ./services/agent/.env.example
236713daf159ff0a8067e80a442ae3404fa28a5251ae6f24782f263bcfc17005 ./services/agent/.gitea/workflows/registry.yml
9ee46f2156ee805c4ff40e418b004ead5cfbc3a9b6df3968a1b772fe1b313cdc ./services/agent/.gitignore
4c893d6049499eb70ca755a333e97f0a726dd212e4ded4a9d4acabf0a25d9bd8 ./services/agent/BETRIEBSANLEITUNG_GLPI_AI_AGENT.md
9339ce57dfc58d4731ea02c8d0ab9f2835e5966a29c071062fc6a2effd17da2c ./services/agent/BETRIEBSANLEITUNG_GLPI_AI_AGENT_OLLAMA_POOL.md
4813b4c07ab63a2931142ebc0b028b9c26a73fbbade7294a1fd225365e9a2b85 ./services/agent/Dockerfile
2ec93f81187ebf92665a6a15a6672b2f7dfce23bfea1546f2d4188f49de5dce0 ./services/agent/EMERGENCY-HOTFIX-TICKETVERARBEITUNG.md
2bce6e10780004bc12042a416b8a05b417130db2d730d01a95d9d86a564e01cd ./services/agent/ESCALATION.md
bc344ff4486bd38356fab0d2da46590d9f738ece0f712d043597012f215bae49 ./services/agent/HOTFIX-GLPI-KB-AUTO-REPLY.md
3f51b802804e9004d17cb74a7e0b8fc668537e75bc95e7344923e77d5f05f13b ./services/agent/HOTFIX-GLPI-KB-SIMPLE-AUTO-REPLY.md
65408599c64a4364f41fe0876f6531b861c352eaee4afabfeae52a5a72f28f6b ./services/agent/HOTFIX-GLPI-KB-UNCATEGORIZED-AUTO-REPLY.md
dacf2060df228b5c137fb5ac5c5f7377226f937aadaae4b01b662fc54abea11e ./services/agent/HOTFIX-POLL-DIAGNOSE.md
6b2188c579db7c47cf7be54328f2671a8fe7aa17f21556483f751fe2457db1c5 ./services/agent/HOTFIX-PRIORITAET.md
30a29a59cf3c409bf33e3adc96789b9281a19fa86f961c727dcdfab07ff6a327 ./services/agent/HOTFIX-TRIAGE-KONSISTENZ.md
c0e13c6703cf3feda57a9eaaa718e501280fbb526f466040eb685a27700b5797 ./services/agent/IMPLEMENTATION.md
1126322e2cc8d165adc4c792eeb195717de2bcc7b39be1ce77959d78e87ef685 ./services/agent/LICENSE
0ed7ee0e4846be09994dd5f3b49ffdca6b59177b9018b1947388949f0dd49a14 ./services/agent/Makefile
80b20d2c2c78badc0dcc47e485e46bfd647877445c35faf261fb677ad58e8359 ./services/agent/OLLAMA-POOL.md
80b20d2c2c78badc0dcc47e485e46bfd647877445c35faf261fb677ad58e8359 ./services/agent/OLLAMA_POOL_BETRIEB.md
a7a3f969150005ef062e7a77cf852371931bc2fa5ca4be01cb0e9eb07d35335c ./services/agent/README.md
aeac85d1adc92a8b34ffa5a95f7f19c2c6fb94742a7359a7fd452529d59ad87b ./services/agent/SECURITY.md
edb92cdf2d1863df53ea8045657f64e415f206d503c8da3b45ea96b7f7f0960d ./services/agent/UPGRADE.md
8cce9f5a3872854605e163579ec07b94d07bca39cf507211eef155e27dfc7f4c ./services/agent/cmd/agent/main.go
98be0fd63dd4fde52342c5385da113c926ac29195aedb657c0ca0f98e1593fff ./services/agent/compose_local.yml
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./services/agent/data/.gitkeep
b74f901cca99eae4bed1b168f1f077a28bf1134a71c867d263c7834f6d896684 ./services/agent/deploy/glpi-ai-agent.service
e8327a246f048c70f3b2b426f5f942bf16c41e49ac385d49c296eb994dc0cfd8 ./services/agent/docker-compose.registry.yml
29134dbd1bb19a0fd87b242a184b989a70f3a4c784254d86e2a0f5fbdaaa0497 ./services/agent/docker-compose.yml
a0105475dc054977223fac36618b8cd8137c55be1d11fddcd24e9a4d3074c170 ./services/agent/glpi-ai-agent-neural-brain.patch
8a7805be0da45875d45a5e5b26780fe659f671edd2d6b72c0d7da9606bf15755 ./services/agent/go.mod
e34ac0033c53effcf654689641a15a92deae1a987e3d92e9921b7b030efab3d0 ./services/agent/internal/agent/agent.go
789e55accdbfbb99ef8179f5680aa340e67a055c71686533302558389dabfb8a ./services/agent/internal/agent/agent_test.go
a8eedc80f57b174fbad3850d787346f7b370236b4c2eef67905ef6b60a1ced64 ./services/agent/internal/agent/analysis_runs.go
46a8dfe5e80569aac48f9a098acb2c1089ea4ab9521ed6c92f53b020e0c76ccd ./services/agent/internal/agent/analysis_runs_test.go
05ce267b4827cc5b89332b72fa6ecbcd80bd3796b5143bc40398b932f5f45867 ./services/agent/internal/agent/candidates_test.go
76fd850dc9bedf73db32e9b2d49edfb04624709507e0b67fea1f88730e87720c ./services/agent/internal/agent/category_mapping_audit_test.go
d8aab6fa743e6ed8246ac6e20f993fc3642c635a1cb349c4fb6579b863a2bd63 ./services/agent/internal/agent/escalation.go
c4bf8fcb4ba6eb7962ec55cacff806a8a99561d134ab5238abd012763a2f9c74 ./services/agent/internal/agent/escalation_actions.go
471cf47af1220f50fce99ea41c59adf257cd29417ce23fafb4728f0037d33842 ./services/agent/internal/agent/escalation_actions_test.go
7a65f676bacd5a7b879862e4c1a157632f541a570a71bd8b57864e603bb4cd60 ./services/agent/internal/agent/outcome_learning_test.go
5175e4fa9c394c0a8df94c29c69c5f896b3227a7d8de67d214aea4634ba0fad8 ./services/agent/internal/agent/policy.go
5434e1c4dc61eee33d6dceaff69156a5b9ab4a9fbb555cd056c8cf0444601606 ./services/agent/internal/agent/policy_test.go
6b70a29176602e499935a85ac8831dbe36bf75fddb130a56cda376e124ecb7db ./services/agent/internal/agent/status_reply.go
6f95bd3c85b42f1b2b098f05828c0b9e3dbb2e57f1f89b3dc4d1806453e0c4ce ./services/agent/internal/agent/status_reply_test.go
9057a742c3fe8e0fa76efd6dd9bcdf9fcdf7ab2c37ed823822808946e8649566 ./services/agent/internal/brainactivity/client.go
1b0ac9efe4cc3b0d98cdb943379974e96be0fce07c670c542cad042aa04abe06 ./services/agent/internal/config/config.go
c5f23c579a35d25e9f319588093f08a04951a759843c0f8f6574adfe500facaa ./services/agent/internal/config/config_test.go
6fe7335b0e66b60d5f6f27583b1ac11a0948719cfa657d51e77de0b337aab5d5 ./services/agent/internal/contextdata/collector.go
12e9eb6fd567b5d4173a63fa2b89be913b6d1c97e17b69048f46d119e88dce26 ./services/agent/internal/contextdata/collector_test.go
5eee0e130a9cb8452a07e9f5d4c76048ad2eb62aa411ea61c9dc6066fadff934 ./services/agent/internal/glpi/client.go
6499b2e19547d7d874dbaa64f0c905643ffe4d822329c6cd710df0a30a3a9755 ./services/agent/internal/glpi/client_test.go
247324ba41f3cd991a3582ed270d0b0d6c4c92c36f11e7742c20d3e59b982928 ./services/agent/internal/glpikb/sync.go
9836e2bf9153df638ead57d92c152b87f831e5a3696bcda4b1f650ff38e9ac70 ./services/agent/internal/glpikb/sync_test.go
787ab6b53623aa36ef6628f4eada11dcb4ed3011b34effd691bf07ba5d8f214d ./services/agent/internal/knowledge/category_mapping.go
d3a9909672ea420db87be29ce669f3cd973125ff15bb46ca90a54c3aa98d9e73 ./services/agent/internal/knowledge/neuroforge_backend.go
7bcd33bfcfb99fb06762fe75f4646308428957ed7eca26a266891ab580c3a929 ./services/agent/internal/knowledge/persistent_index.go
df1ac214ebb88bf3ce7f68112129cf9ffc300dd725380c38661b85b04908ecdf ./services/agent/internal/knowledge/store.go
63e47d86bcc89178fdc0f91e07ecb30bd01ee4b84bf29bfc660debbf26f8a40b ./services/agent/internal/knowledge/store_test.go
807996228b38e1cd97ec2516cb1ecfc4bd945b638fcde465a0991051df2f1a00 ./services/agent/internal/learning/outcomes.go
2917b3dab63783af4c92c48f269f097dc94b989008a5451f46d6c1b309ccdc9b ./services/agent/internal/learning/outcomes_test.go
cd8c7379d6ca50fed77a7eafb6ab34b12b9ce2fe56025da534f54e6db246430d ./services/agent/internal/learning/store.go
c540f2e554d66f36d79d2ce32c74a18b27b2940e96a40e89eae10abccd0bd2a5 ./services/agent/internal/learning/store_test.go
5030ec3f51830f7decfb24c27f9b243cb64f97302a6a51df096bc957f24b3fae ./services/agent/internal/metrics/metrics.go
809c3f2833ed2093bf1f9e4466eb3d855f2a84d827cb21deb698dd0e7b63b403 ./services/agent/internal/model/model.go
975d5846fa38bf2478fa3ab9696660740c8d9a0549ce8d4f3443d4ca917c4aba ./services/agent/internal/model/reason_codes.go
821850d649c7661f1665dc6be030ebeeacb60e4e007e1e84891d4b779b9a5d0d ./services/agent/internal/model/reason_codes_test.go
c89248224adf72720289215684b916eb209387c1d38b757d64804a8d3148011c ./services/agent/internal/obsidian/export.go
b75ffec53e9a94505ee57ecb9361bffbb6805cfd06ea05a7bf68b6b28b268c09 ./services/agent/internal/obsidian/export_test.go
f4e32c5653b5fc3e046f1536513d376a7c0ac11b392210a107e12bd0ee63e179 ./services/agent/internal/ollama/client.go
3522e7687e38db771dcf7e05b8dc52ad99a2fbc53d98dbdf07ded781d68b248e ./services/agent/internal/ollama/client_test.go
efbee1deb5b452da5ba8a9005cfc8b0f74dbdebddf8d251c71d63265c9ccfe9e ./services/agent/internal/ollama/pool.go
401db60148c8307516c091a56cf8acd21a95230c69fc50a6999bbb0292f2b06f ./services/agent/internal/ollama/pool_test.go
ab29c5808a06f6b21a0776355eeaa030f69be5eee251e7b1dbd7e00c71045c61 ./services/agent/internal/prioritysignals/signals.go
149bfefd67291ee288beed89a27235f58d3c33d87a1eff98cb2b7cc312fbd6b2 ./services/agent/internal/prioritysignals/signals_test.go
93f31d9e7062a03990f96bb950cae54a3fc24176a723a2f634312653a0692434 ./services/agent/internal/queue/queue.go
147146bf5fa222d54812d84ff799555fd4c2d57ccbf8337e960708524f0ecd86 ./services/agent/internal/queue/queue_test.go
171f346e674ac5ebfa562a55e47060a462a0460db86e741085e2ee85533d3193 ./services/agent/internal/state/store.go
592b00ad638b2e523d5e24d0d73286e547ee09c5027da4f6c13fe3885daed020 ./services/agent/internal/state/store_test.go
209c5ce33b17403289c897932ecfa14b1e8f036f89746715d41cca3c607cf405 ./services/agent/internal/uptimekuma/client.go
c849df7e346e1bd1e122037a4eafc30fe461add9b1876d7b9d63a02e33d831ad ./services/agent/internal/uptimekuma/client_test.go
5f0375f33c4c3f0804e58bb7b3a8699a450a05100274fbb19762d59f4d5d0034 ./services/agent/internal/web/control_graph.go
cb68a23bef549186d251766a3d3820b611defd55e8f7386b8b87490a78b9e11d ./services/agent/internal/web/control_graph_test.go
b4f7d72022d5009fce43b5879483de92dacfee2b3bf527306902187c3d26486b ./services/agent/internal/web/server.go
1f517bcb30f95831a06dc2fe0fd9cd633a0c42fc795f67e5ce53de7a2eebd2b1 ./services/agent/internal/web/server_test.go
21b32b0b863ed62ae352011d7dd85f0134bf9909c23ee80b1c7e3c3605ef8cc4 ./services/agent/internal/web/templates/category-mappings.html
d0561b87acd8fe8c0ab7f1f0bb82e1df840db8342f91798e8cb0a0408064abcc ./services/agent/internal/web/templates/dashboard.html
fb5a4e2e1846046032bb878f1e878eb792497e321df6a8ce16209c07a925fdcd ./services/agent/internal/web/templates/diagnostics.html
5a81ef73b2de4ff60c440a7a5e42da68e8ca30fab7bc62de63757157d498d72a ./services/agent/knowledge/01_active-directory.json
70b176be0117d51a35a699ab50c2ad9dc944dec807e4a193e1adbbf0ece888fc ./services/agent/knowledge/01_arbeitsplatzdrucker.json
96cf6b96e462db5e4be8345e9b18afee4e7dd5d51bcbd59e6817266725b92318 ./services/agent/knowledge/01_fachanwendung-storung.json
521a4e7d6b1362bacc8d3b8dafe73d081fad9ed06825376b57460d163db31aa6 ./services/agent/knowledge/01_festnetztelefon.json
88610d1d8b75017251e040f7627a141865b7f45a874073355bb6b30ba68c63a8 ./services/agent/knowledge/01_hardwarebeschaffung.json
4e2310d9d3fc5dba392f1869887a7ab61ce4af69822dffae5892a3797252b39d ./services/agent/knowledge/01_kennwort-zurucksetzen.json
5eb15ac8d8c6525d6eb21c29189d1561b8b6e23d81c096d012fe5f9015534c53 ./services/agent/knowledge/01_lan.json
95a46a2f250c94a380be3c259f98e83a9042201d9e3fcf2f310f7e87a293af14 ./services/agent/knowledge/01_neue-it-anforderung.json
ee98f46f39bbd60cd4fdd2b97ca6037a89719fd7a6936ebffb356b633ef2d1a6 ./services/agent/knowledge/01_padagogisches-netzwerk.json
f64d5d7bbbc67d3f958f59c94ff9a99f48801f4d31a041ed12f503c923f4a7a6 ./services/agent/knowledge/01_pc-und-notebook.json
ae9d1634baaa057f8b043558874a6d91b49d06edf8a101d0bb94096e51b062bc ./services/agent/knowledge/01_sonstiges-und-unklare-zuordnung.json
5116a7096a289685d4a320a72a99beeaa6dffa0bd640013061a9a973446d8ea8 ./services/agent/knowledge/01_verdachtige-e-mail-und-phishing.json
5b414f4fccc87f0a9abd3bc4e66a2deeadf0dad87752de19496ed9df217364bb ./services/agent/knowledge/02_benutzerkonto-anlegen-andern-oder-loschen.json
ff7275f53dee116e4194c08b482ff014e86ed31f3d127aed8e2b8dd67a1eed68 ./services/agent/knowledge/02_fachanwendung-bedienung-und-beratung.json
0377ef73fe676606dfb70605a4547b7484c3fa7109474955db6566c7c1812212 ./services/agent/knowledge/02_gruppenrichtlinien.json
4f3fa6ec2a9e15ef5b002bde7b1caa9f6a0352fdd15bfe6638a14ab7f4ea8220 ./services/agent/knowledge/02_monitor-und-dockingstation.json
bd4de92a6dcb5cb79fc1c6eb5d47f54b4585da5b586fecb74dbe50d52d8f7fe7 ./services/agent/knowledge/02_netzwerkdrucker.json
7b31d78a0019c00e360012ba1ba7257f18862297f2fdfeb173dc86154ff16191 ./services/agent/knowledge/02_rufnummer-und-nebenstelle.json
efc4eb64f60404796106fa20770b1b426698c602f2665cb2c458d30fab3eb206 ./services/agent/knowledge/02_schadsoftware-und-virenfund.json
2b1b802004ce185a6d4222848f84fe13bbe993946946e1c9119e5fa590f5ac99 ./services/agent/knowledge/02_schulverwaltungsnetz.json
830bf169fab29b06ff5f6d208c3df4cd0431fe49b0ad6a7e6fa574ac71cc2555 ./services/agent/knowledge/02_softwarebeschaffung.json
fb45cf8cacb1e9c9a8dc9f61cde9d399c607129f9bb1171b214b829c0cced2d5 ./services/agent/knowledge/02_wlan.json
26a059eac1654315c9efe982d3e441d3d667558be5d3d6643ea17efe756f96a9 ./services/agent/knowledge/03_ad-gruppen-und-gruppenrichtlinien.json
b0348c630524118be4e6efcfac879f0d7ec9494e0e85651088200012ad10669a ./services/agent/knowledge/03_dateiablagen-und-netzlaufwerke.json
0d3fee8511a1958a5be1a0c1fdbb7e13821ac8ec6fa842e75931a426186b6d9c ./services/agent/knowledge/03_digitale-tafeln-und-prasentationstechnik.json
a57924a695e382796ef15960e371cee6ebc61bf282402f69e07fd59072aa5ce4 ./services/agent/knowledge/03_fachanwendung-berechtigung.json
f75f00b6f15ce8a6211b953efb224540f6d8bac2da19570fb27c0e72d6ed24d0 ./services/agent/knowledge/03_internetzugang.json
5a76dfb0abd1f3927b070ed5e3a035d6c7c95ffe7a63b1c9a4dbf7c22aef33b6 ./services/agent/knowledge/03_lizenzbestellung.json
d4b595bb8069dde2ca4f241180178a82253a8beaa958811c18f3ae94c26ab02b ./services/agent/knowledge/03_multifunktionsgerat-und-kopierer.json
c190b86667330c1d2926cdb98ee9bf437efcce6dcbbcb63d3987230a3e3c2f54 ./services/agent/knowledge/03_rufgruppe-und-weiterleitung.json
b0d830dcd42919754fb73db0b17b2b3211be6a21b01734daba571dafde9ed01f ./services/agent/knowledge/03_sicherheitsvorfall.json
ca1b3b608c0506457e607f09e4daf827df4ac340d528eb296190822ac846cf5b ./services/agent/knowledge/03_tastatur-maus-und-zubehor.json
7bf663850628f0046edde52a80c2e32362fa5060e7a541162a63e78b3385f0f6 ./services/agent/knowledge/04_anwendungsberechtigung.json
6d0205eff7ba230918fe72d19c833eee32de4de50d4e3657b1849cb576afdfa2 ./services/agent/knowledge/04_computerraume.json
36eacce8dbf33a7e061b3baea0d43a5f3468bef003dc18d8e972f8844ca04043 ./services/agent/knowledge/04_fachanwendung-konfiguration.json
a45d9b3c16c0342a9f7cb12cee286f7f34348929d54644aa82779084da41c3a2 ./services/agent/knowledge/04_lizenzverwaltung.json
e7d40406ed649ae4764e26f3dc14170d5b9910810f8f304025cb030424205aeb ./services/agent/knowledge/04_mobile-endgerate.json
adad80ff68baa3a998b80926e03956e8200d714a2aed9a1fe6aa72228c31faa8 ./services/agent/knowledge/04_mobilfunk.json
1cc331f2d03971b6cc92202b6fac1eccf031acc81d8f3c60549b36e1628fcefc ./services/agent/knowledge/04_scanner.json
658ea20f369985931ef590bbfacbe365da24ab06c7a7433bc546511306bde33c ./services/agent/knowledge/04_schwachstelle.json
5feb14bdd59e0237832561b2d542afcdb877637bdfe6c9c2063e367fd0460025 ./services/agent/knowledge/04_serverbetrieb.json
ab7d1a11ab1e66fa6d26eb1c8783ad11a319ce77f99be48ebc71d39f3b017c3d ./services/agent/knowledge/04_standortanbindung.json
9c97b4ae44a0f0d14292a7a0bf882f2da62dcce0535f37ae36173acd31fda937 ./services/agent/knowledge/04_standorteroffnung-und-umzug.json
8dafc6d816dc06e9e384fca9d504021c2a3ab3b25f67f3556b93f98be955e5ed ./services/agent/knowledge/05_dienstliches-smartphone.json
47d689c3c7f3d5be8de0ee31e781664ed9e230dd6f9d10a287d3f5d462981f43 ./services/agent/knowledge/05_digitalisierungsvorhaben.json
4edd62233b8784ffc0e7271300d7ce96709bfa8bb73f41f945d6420ec989d838 ./services/agent/knowledge/05_druckertreiber.json
74bbb7b99036c7f9311fe912f73aea78d426fefc0ce37d841d907c0dd731e8b0 ./services/agent/knowledge/05_fachanwendung-schnittstelle-und-datenaustausch.json
a9a244145670b544f578a49c72f5ccc10bfcdf11b67080659f3c305a2d48d2b5 ./services/agent/knowledge/05_hypervisor.json
0bdd46fe6c5f13d562299b07ff9f2e18ba3a6a90f8d124c0934197245c59ba3e ./services/agent/knowledge/05_remotezugriff-und-vpn.json
9c124626a953b7c9812b576f9f22f5fd075a7b9ce591bd20b06b717f29ab87d7 ./services/agent/knowledge/05_schuler-und-lehrkraftekonten.json
2dcae54e57b9acd92c681be31a3a0f2386844322c4bdb1d5d01f85216ef6b703 ./services/agent/knowledge/05_softwareinstallation-am-arbeitsplatz.json
9178eb0fc81af7823503f87f6b63d9c57bef29490b264895f6ae2cb20cf8e075 ./services/agent/knowledge/05_telekommunikationsvertrag.json
fbc426c129b187cd0943f4924b08d127a9f8c2ef0977a1c05062d2b912f90e33 ./services/agent/knowledge/05_virenschutz.json
e9833109731fab66468e6fa1b5c22ded747b477edc0e852336691ba60cecc560 ./services/agent/knowledge/05_vpn.json
153150769b692cff7cf506978ff47aa929c01423fcf10abaaac48a22f8ae0793 ./services/agent/knowledge/06_betriebssystem-am-arbeitsplatz.json
d33e8db3bb4f32e30ede4d4cd604b90159bc9dbb66fe1f9baea441dda3168ce9 ./services/agent/knowledge/06_dns-und-dhcp.json
b3e9b7646617aedf3beb955dc94aaa99ce931bdf4a8749e118c2d5eb78dd45c9 ./services/agent/knowledge/06_fachanwendung-bericht-und-auswertung.json
77f0f12f2f216cb52c5d6d394eba485e690fd0e2c74bff8f38213b6310779108 ./services/agent/knowledge/06_mobile-schulgerate.json
e96d1285c9be2cd4a151fcbdb4745181fc2ab20e42dff97f54fc4e9ff9857a53 ./services/agent/knowledge/06_scan-to-mail-und-scan-to-folder.json
cadd71e26b643ce1fd7276fb72ef9d2e43e8ba57ddf01d44337fcefb79c9800a ./services/agent/knowledge/06_sicherheitsupdate.json
ef09af49f08090c9a82bbd9e94c735426a371f31002cb1d461e1f7f94da2c21b ./services/agent/knowledge/06_videokonferenz.json
e496efbe113881d38d97c20c199206e52ff9b936d7cdacfc186c585bb9aaa68c ./services/agent/knowledge/06_virtuelle-maschinen.json
71802acd7b2287d3edb968636a05b2651f6386faca3a820e47ac4476244e4874 ./services/agent/knowledge/06_wartungs-und-supportvertrag.json
ad1cd6d0728da647a4e819b4cd74b5a2302398a3a7becaed147e9e8942080c30 ./services/agent/knowledge/07_angebot-und-wirtschaftlichkeitsprufung.json
2924cfc43a83c7fb4856096f5005ba8bdbdf2179e3e94b0fa81fc36a09dcc06a ./services/agent/knowledge/07_datensicherung.json
46883e5655761c31bbe1a55a9e5d9cd3929b660ed44ae827ea54ef5c1f761e4e ./services/agent/knowledge/07_fachanwendung-update-und-release.json
8001bb3da012ad43f87f8606610e8144999b740ac247050a7f100c2ed17aa2a4 ./services/agent/knowledge/07_firewall-freischaltung.json
03d25806ed7a3098d4dd004e05d3fbcd81c338de7a7ff4a3d888705a96128541 ./services/agent/knowledge/07_funktions-und-sammelpostfacher.json
a87af380b0d3e3afe7e1c63b4a164ca6565259c7b5936c4227b11e7b7ef7cf8f ./services/agent/knowledge/07_geratewechsel-und-umzug.json
9b5723928527fd21fba2be5f5fa51cba6722563465f74e498478b1b2e334c955 ./services/agent/knowledge/07_mobile-device-management-fur-schulen.json
48f71d04c5e20d9c2aa2976569ac9912da2fb4af3f949fbc896915d2de701c24 ./services/agent/knowledge/07_projektunterstutzung.json
ae521cc69bd2a957189486a85bc4a9ad16bf960d5d91ca3e40757ba6b1304515 ./services/agent/knowledge/07_storage.json
2058ccf0315975a480de2b1dcdb4a480445144abe330855ba04a8a9122849ce2 ./services/agent/knowledge/07_telefonkonferenz-und-softphone.json
748b64297c5c59f20a78f0405bf798b1462934a1f05a411634133225c1c56b3c ./services/agent/knowledge/07_verbrauchsmaterial.json
7fe889fcff1c0745f1e6dc1f01f84a7580eb8b75a667ed0c60e0c529f24a0b6b ./services/agent/knowledge/08_datenbanken-plattformbetrieb.json
59e1e03acd3b87b41132a047acf14afb190e5752066c6a3c2f39831d132ca30c ./services/agent/knowledge/08_datenwiederherstellung.json
7e9fa4d0803f8c7075cfeb6db447b63bf99119dae2c2bb232bc82037c5af6943 ./services/agent/knowledge/08_fachanwendung-neue-anforderung.json
f17afbc9c495993c1dba9ef99b70ef448c9b863202e5875772d281d7624358ab ./services/agent/knowledge/08_hardware-neubeschaffung.json
b2a11fdacec61937d4d5efa717c31b71b991f46e935341de2e6317292253b5b8 ./services/agent/knowledge/08_netzwerksegment-und-vlan.json
1aebfa9a90184e3006709550e55bf538bc7d1a5fcd3bf7abb3902878db8ea13f ./services/agent/knowledge/08_neues-drucksystem.json
b1393289055a6afa0f08ac1705fae9b12a1f74eb6d91d19d6c35045575a2df72 ./services/agent/knowledge/08_padagogische-lernplattformen.json
ee49a806543115536081ae2cda509400e095253f9f4145b2e4f7bb58984127c8 ./services/agent/knowledge/08_rechnung-und-kostenstelle.json
3e0ea96e6eb9d1c78e74c34fcb07fd10147a00cdbd099cc2b6fbf2f7d0bc0967 ./services/agent/knowledge/08_telekommunikationsbeschaffung.json
0fd6d1281879b334b2f5f2afc8b40bb4f2ce2e3484f92362ad682a9b522f19c4 ./services/agent/knowledge/09_container-und-docker.json
4c50cad1c6116b42b1149aaeb24a117eb97e6a0ab7df2590dfe1ccb797b567a8 ./services/agent/knowledge/09_fachanwendung-einfuhrung-einer-anwendung.json
91b7be1bc88abd9631802a12eca2cb08a4bfb6f5890929512253deae443f81c7 ./services/agent/knowledge/09_inventarisierung.json
d4df65a13c1554e630351ebd8b4c0f6a088893c20fd894165010417ddef6d4fb ./services/agent/knowledge/09_protokollierung-und-auswertung.json
267d66313420fef443e9645b696e9fe6f7aba60af4e3b26f0f6b2df06f36c979 ./services/agent/knowledge/09_prufungs-und-klausursysteme.json
27e88b61055a44007777bd4318ad19b3e5b6f017974cb75fca968ef928206a8e ./services/agent/knowledge/09_ruckgabe-und-aussonderung.json
eb721fd2e91e5198cca4862f980c6692846405fe43107e49f2d85dfd080a8a52 ./services/agent/knowledge/10_haushalts-und-budgetplanung.json
523b27e6fdbae8de9c680fffb538e23082463028b5f5329a2cd7610358467f4a ./services/agent/knowledge/10_kubernetes.json
1e43fcd4bf900b2118d7977425fc7c55ac426eade471a8656841313e390eec62 ./services/agent/knowledge/10_microsoft-word.json
8b708ca4da157dd73a77ae051716efce330662fcff64a073fc625d68eb034935 ./services/agent/knowledge/10_schulverwaltungsanwendungen.json
813c045cacc6a0e3cdbceea69436d65cb8ac5b6009b060039488eefdfcc0007d ./services/agent/knowledge/11_devops-und-automatisierung.json
213d466c3e0a3f864268bc1b4ddcdc117f7b8dbcdf5e8a50032913de706a606a ./services/agent/knowledge/11_microsoft-excel.json
a615dc9c1ee5754c2ffa8eae113311cd857dd1422104eced8c41ffc42eb716de ./services/agent/knowledge/12_microsoft-powerpoint.json
e3a2d2154b2c9adde57874aa0c515b99c2c4fa8171da188162de421f309ab7b6 ./services/agent/knowledge/12_monitoring.json
2231a0a90369fc5208f721d91bbda702c9f58aea7f1bcccd0becf5f79a89fb8c ./services/agent/knowledge/13_outlook-client.json
cb3cde795233c0d4842dc7451c5855d1c071e459efbde3be0cabac32a837ba1b ./services/agent/knowledge/14_office-vorlagen.json
9b345483a41489babc35aca19a147c343a895eae40702bbd86075eb86538bb5d ./services/agent/knowledge/15_office-add-ins-und-makros.json
7f1d67faf4a6cea0c41c84d7b275d8a8979b19420b52db4925d8e2cd71ead3e0 ./services/agent/knowledge/16_office-aktivierung-und-lizenzierung.json
f1eab883370e0a40ef52a6b6d785a510d8ed48a19d25e0a2bc95f4f2cc8e329e ./services/agent/knowledge/17_serienbriefe-und-dokumentfunktionen.json
5a0b3d5d5bc712e30a67a4de3432f69070f7e43dd99931f675e72c213006b363 ./services/agent/knowledge/example-vpn.json
7418ad39aa0899a85e69a9910d99ff1cb01757d5ae2edaa885c5ff7a815cb580 ./services/agent/knowledge-category-map.example.json
895f8400aaad550ff2b96262eaa54e954d603129682e97aa4964539eb19bd7c2 ./services/agent/run.ps1
5e2ea444f8321b723313184f8ae12219c319435cdac8904596a4481fd2be8822 ./services/control/Dockerfile
f30ddf9251860d92717276483f7a2c2d7405f0516940ca62abc21d97ff3f3ad2 ./services/control/cmd/engineering-graph/main.go
a15b1d7b785eb12dc5fef341e57ffef5bd457015b77a8a8495ac0bf7b0c1f5a0 ./services/control/engineering-graph.json
ba44c599b9faf861eca647614c4abd18548e2708233cf462b11eb277e96449b8 ./services/control/go.mod
da37393e58ff53847f26b1051f6d3a5270571d290b33d79360bae0dcb3513829 ./services/control/graph.go
e6a8021a44219219fe37ab5edc45d1908fc6579f653aa80c9966810d891ad27d ./services/control/graph_test.go
0b426441ec627c2cf2d7466ce2177864593717d8550ca0b0f86d1b24f597488b ./services/control/index.html
b1832a0f0e2acb73d2dcf011b6a93ca50504cb4b27cf90d01f3b67e8151c58ea ./services/control/main.go
457fa6b4c81a62197eb1e76a5472cd571d5c69659110fcd9bc016582f1b5dfa1 ./services/knowledge/.dockerignore
e82cbdb6336e424c4b9d8db5d149016d606579292184582788a9bf295895cda4 ./services/knowledge/.env.example
236713daf159ff0a8067e80a442ae3404fa28a5251ae6f24782f263bcfc17005 ./services/knowledge/.gitea/workflows/registry.yml
e45bab225ede9bacef0b53f84fb0577235d9a81967ae2a53ab7c7f4d66bd4ccd ./services/knowledge/.gitignore
d3becb2b7565ba0b1d32bd8d3b085dca6adec2d2b153583c8c6855e0eea43b66 ./services/knowledge/CHANGELOG.md
a8cb88ef493c9cf7167f819502baf8e932fd8b2fa2dfadddf659b3e7d703b5a4 ./services/knowledge/Dockerfile
31f5067cf8e45271081ff08bf0d9afffef74d300628ddc1bd1db6e87e6d4e922 ./services/knowledge/Makefile
d50e9892824dc9e2f86b7f4fbfdc81165a8c6b403e4b2b9f6fd5bd2f22c295f0 ./services/knowledge/QUALITY_REPORT.txt
bcafd8739157e677416bd4e7c3693eafb1572d72384830ab839dd4dcef74d3ee ./services/knowledge/README.md
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./services/knowledge/backups/.gitkeep
6670b6dd385468e9cd630025091d0031938185678bf3f9fd1fa77dbfee5d37c9 ./services/knowledge/cmd/server/app.go
7e122cc4550244ba431ebf4bcddda945b8cf52550aa7b4abb09bb65cb6b8b665 ./services/knowledge/cmd/server/app_test.go
f7349dae3b79794010a594fdff23fb9379171b950d2049f9eef17dd5e81e51eb ./services/knowledge/cmd/server/main.go
1867f5c83786628441a1c9e3bb96d90d496f5cab24b6dd62a80376f256bfa497 ./services/knowledge/cmd/server/viewer/app.js
9537e946b22208a5a78f11a29a92c8f379805f51f3de3d3c74a7cd068d876418 ./services/knowledge/cmd/server/viewer/index.html
58f16f955f1287bc077933980e50eaae238ab2eb40599242abd820a31aca79f5 ./services/knowledge/cmd/server/viewer/style.css
0269039e6baffbf8ecc423fe021e91827924a9c47decbd0816257aa052702303 ./services/knowledge/cmd/server/web/app.js
7b1cdf4c71867e0563eb0eca460c60be34ab839099793e0ad9faf4a84b29c5e7 ./services/knowledge/cmd/server/web/index.html
c6e48f5098243eee4de816d515cd71d8f8904deeedb335966b1db320d574e2e1 ./services/knowledge/cmd/server/web/style.css
6e2430ead0897eba9ffb7b3df18e61136f54a8da6b4fb9e711490623fca31a12 ./services/knowledge/docker-compose.dual.yml
f5d6b8c7891ac8ab237423914f67bff5b91f7e3abd255622eeef26ec83feda37 ./services/knowledge/docker-compose.yml
5a49eb8794bdb76d14c29060ed6c4a9f0126d4daa2f2ae45b11b8d1e7ccaba45 ./services/knowledge/go.mod
06893c64974dac010903569e7554b1a245a8862538e3dc1b10375932eae6e5b9 ./services/knowledge/internal/aifallback/ollama.go
60727530c541fdce632fe071173c4846c3a4029929619caf9389f31f27e3c1b0 ./services/knowledge/internal/aifallback/ollama_test.go
9057a742c3fe8e0fa76efd6dd9bcdf9fcdf7ab2c37ed823822808946e8649566 ./services/knowledge/internal/brainactivity/client.go
ff6d65a0a4648464a89c67e06f5c33a4ec87d7a41e84d894725e8ed582d64acb ./services/knowledge/internal/obsidian/export.go
e8e91a8ce16c1905c963ac57a156006e92323be80615637a7b1b477b89464012 ./services/knowledge/internal/obsidian/export_test.go
fcd53ac3b88e1899819951686c644ca3c54ab2881a6aa78e4b503567243fc7d5 ./services/knowledge/internal/staging/staging.go
d5edaf3501405393604a4e79643ec107cfa64c2365917c87a07997871fa84727 ./services/knowledge/internal/staging/staging_test.go
f8db5f01b1ff61108f9d642002ef01f1946918468e644a6146ff4afabaa5688b ./services/knowledge/internal/store/store.go
c98bd048680978d06d34303db9729b130eb7cfc0750f15ee1a4e7abfe582dca1 ./services/knowledge/internal/store/store_test.go
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./services/knowledge/knowledge/.gitkeep
81893d2cba93d7a30c5c728559e81a7b7e2eca87cae8f9e239aeefcaaf604d60 ./services/knowledge/run.ps1
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./services/knowledge/staging/.gitkeep
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./staging/.gitkeep

43
Makefile Normal file
View File

@@ -0,0 +1,43 @@
SHELL := /bin/sh
.PHONY: test vet build up research-up down logs status ps engineering-graph engineering-graph-check
test:
cd platform/neuroforge && go test ./...
cd services/agent && go test ./...
cd services/knowledge && go test ./...
cd services/control && go test ./...
vet:
cd platform/neuroforge && go vet ./...
cd services/agent && go vet ./...
cd services/knowledge && go vet ./...
cd services/control && go vet ./...
build:
docker compose build
up:
docker compose up -d --build
research-up:
./scripts/research-up.sh
down:
docker compose down
logs:
docker compose logs -f --tail=200
ps:
docker compose ps
status:
./scripts/status.sh
engineering-graph:
cd services/control && go run ./cmd/engineering-graph -root ../.. -out engineering-graph.json
engineering-graph-check:
@tmp=$$(mktemp); trap 'rm -f $$tmp' EXIT; \
cd services/control && go run ./cmd/engineering-graph -root ../.. -out $$tmp >/dev/null && cmp -s engineering-graph.json $$tmp || { echo "engineering-graph.json is stale; run: make engineering-graph"; exit 1; }

172
README.md
View File

@@ -1,2 +1,172 @@
# glpi-neuroforge-mega
# GLPI NeuroForge Mega v1.4.0
Ein kontrolliertes Monorepo aus **GLPI AI Agent**, **GLPI AI Knowledgebase** und **NeuroForge + SQAR**. Ziel ist nicht ein untrennbarer Monolith, sondern eine gemeinsame Plattform mit klaren Zuständigkeiten, getrennten Credentials und nachvollziehbaren Failure-Modi.
## Unified Graph Explorer (v1.4.0)
Das read-only Control Center visualisiert Runtime/Trust, Ticket-Evidence, Learning-Lineage, Research-Provenance, einen redigierten NeuroForge-Brain-Graph sowie einen reproduzierbaren Engineering-Graph aus Go-AST und Compose. Für Dateien/Symbole/Routen gibt es zusätzlich eine statische Change-Impact-/Blast-Radius-Sicht. 2D ist der operative Default; 3D ist ein optionaler, gebundener Explorer.
Der Agent stellt diese Daten ausschließlich über einen eigenen `CONTROL_READ_TOKEN` bereit. Ein optionales `codebase-memory-mcp` kann lokal für tiefere Developer-Analyse betrieben werden, ist aber keine Produktionsabhängigkeit. Siehe `docs/UNIFIED-GRAPH.md` und `docs/CODEBASE-MEMORY-MCP.md`.
## Leitprinzipien
- **Maximale Kontrolle:** GLPI-Schreibregeln, Auto-Reply-Gates, Eskalation, Idempotenz und Audit bleiben im Agenten. NeuroForge liefert semantische Evidenz, entscheidet aber nicht über Sicherheits- oder Kommunikationsregeln.
- **Maximale Effizienz:** Chunk-Vektoren können zentral in NeuroForge/HNSW/Disk-PQ liegen; das NFVJ2 Vector Journal nutzt die integrierte SQAR-Kompression. Dokument-Updates werden batchweise synchronisiert.
- **Maximale Transparenz:** `local`, `dual` und `neuroforge` erlauben einen messbaren Cutover; Fehlerverhalten ist explizit `fail-open` oder `fail-closed`; das Control Center ist read-only.
- **Human Governance:** Maschinell erzeugte Research-Vorschläge dürfen ausschließlich ins KB-Staging. Produktiv wird Wissen erst nach menschlicher Freigabe.
## Komponenten
| Komponente | Aufgabe | Schreibrechte |
|---|---|---|
| `services/agent` | GLPI-Triage, Policies, Antworten, Eskalation, Hybrid-Reranking | GLPI nach vorhandenen Policy-Gates |
| `services/knowledge` | Knowledge Authoring, Suche, Staging, Review, Promotion | Knowledge-Dateien + Staging |
| `platform/neuroforge` | semantisches Gedächtnis, HNSW/Disk-PQ, Learning, Research, SQAR-Vector-Journal | eigenes Brain-Storage |
| `services/control` | Status, aktive Migrationsparameter, Links | **keine**; read-only |
| `ollama` | gemeinsamer lokaler Inference-Endpunkt | Modellcache |
## Schnellstart
```bash
cp .env.example .env
./scripts/generate-secrets.sh
# Werte in .env übernehmen und GLPI-Zugangsdaten setzen.
docker compose config
docker compose up -d --build
./scripts/status.sh
```
Standardmäßig bindet der Stack nur an `127.0.0.1`:
- Control Center: `http://127.0.0.1:8070`
- GLPI Agent: `http://127.0.0.1:8080`
- Knowledgebase: `http://127.0.0.1:8081`
- NeuroForge: `http://127.0.0.1:8090/admin`
- Ollama: `http://127.0.0.1:11434`
Vor dem ersten produktiven Start bleiben in `.env.example` alle automatischen GLPI-Aktionen deaktiviert und `DRY_RUN=true`.
## Kontrollierter Vektor-Cutover
`KNOWLEDGE_VECTOR_BACKEND` kennt drei Modi:
- `local`: ursprüngliches Verhalten; Chunk-Vektoren bleiben im lokalen Agent-Snapshot.
- `dual`: lokale Vektoren bleiben maßgeblich und werden zusätzlich nach NeuroForge gespiegelt. Das ist der empfohlene Beobachtungsmodus.
- `neuroforge`: NeuroForge ist für Chunk-Vektor-Persistenz und semantische Kandidatensuche maßgeblich. Titel-, Text-, Metadaten- und GLPI-Policy-Signale bleiben lokal; der Agent führt weiterhin sein deterministisches Hybrid-Reranking aus.
Mit `NEUROFORGE_FAIL_OPEN=true` kann der Agent bei Backend-Ausfall lokale/lexikalische Evidenz verwenden. Mit `false` wird ein semantischer Backend-Fehler sichtbar blockierend behandelt.
Details: [`docs/MIGRATION-CUTOVER.md`](docs/MIGRATION-CUTOVER.md).
## Kontrolliertes Lernen: erst Outcome, dann Wissen
Im produktionsnahen Standard (`NEUROFORGE_CONTROLLED_LEARNING=true`) werden rohe Chat-Eingaben und KI-Antworten **nicht automatisch** zu vertrauenswürdigem Langzeitwissen. Der Helpdesk-Lernpfad ist explizit menschlich gegated:
```text
Ticket -> KI-Vorschlag -> Techniker bestätigt/korrigiert -> auditiertes Outcome -> NeuroForge lernt
```
Im Agent-Dashboard kann ein Antwortvorschlag als **„KI-Antwort bestätigen“** oder **„KI-Antwort korrigieren“** validiert werden. Jede Entscheidung wird lokal in `ticket-outcomes.json` mit Sync-Status gespeichert. Eine spätere Korrektur überschreibt die frühere Entscheidung nicht, sondern erzeugt eine neue Revision mit `supersedes_id`. Nur `accepted` und `corrected` dürfen den App-Key-geschützten NeuroForge-Endpunkt `/api/v1/integrations/outcomes` verwenden; NeuroForge weist die vertrauenswürdige Provenance serverseitig zu.
Vor der Hochstufung verifiziert der Agent außerdem, dass sich der GLPI-Ticketzustand seit dem analysierten Run nicht geändert hat. Ein veralteter Run darf nicht als Trusted Outcome gelernt werden.
Standardmäßig ist `OUTCOME_LEARNING_FAIL_OPEN=false`: Kann das bestätigte Outcome nicht nach NeuroForge synchronisiert werden, sieht der Techniker einen Fehler. Der lokale Audit-Eintrag bleibt mit `sync_status=failed` für einen kontrollierten Retry erhalten.
v1.3.0 schließt den Feedback-Loop: aktive, menschlich validierte Outcomes werden bei späteren ähnlichen Tickets als **sekundäre Erfahrungs-Evidenz** aus NeuroForge abgerufen. Sie dürfen die Antwortauswahl unterstützen oder ihr widersprechen, ersetzen aber niemals die Pflicht zu einem freigegebenen Knowledge-Artikel. Korrekturen superseden den alten NeuroForge-Memory atomar; die alte Revision bleibt auditierbar, ist aber nicht mehr retrieval-aktiv.
```text
Ticket -> offizielle KB-Kandidaten
-> aktive validierte Erfahrungen
-> LLM-Auswahl unter Policy-Gates
-> Techniker bestätigt/korrigiert
-> NeuroForge Outcome Memory
-> spätere Tickets profitieren davon
```
Die Wirkung kann read-only über `POST /api/quality/replay` gemessen werden. Der Replay-Runner berichtet u. a. Knowledge Recall@K/MRR, Outcome Recall@K/MRR und Fälle, in denen validierte Erfahrung einen Knowledge-Miss sichtbar macht. Beispiel: [`docs/QUALITY-REPLAY.md`](docs/QUALITY-REPLAY.md).
Details: [`docs/CONTROLLED-AUTONOMY.md`](docs/CONTROLLED-AUTONOMY.md).
## Optionales SearXNG / kontrollierte Autonomie
SearXNG ist ein echtes, aber **optionales** Compose-Profil. Der normale Stack startet es nicht. Research und zeitgesteuerte Autonomie besitzen getrennte Schalter:
```bash
# .env: echten SEARXNG_SECRET setzen
./scripts/research-up.sh
```
`research-up.sh` startet SearXNG sowie NeuroForge mit Research/SearXNG aktiviert. `NEUROFORGE_AUTONOMY_ENABLED` bleibt davon unberührt und ist standardmäßig `false`. Damit sind drei Betriebsstufen möglich:
1. Research aus keine Webrecherche.
2. Research an, Autonomy aus Recherche kann explizit/manuell angestoßen werden.
3. Research an, Autonomy an fällige Research-Goals dürfen zyklisch selbst recherchieren.
Web-Evidence erhält bewusst niedrigere Source-Trust-Werte als menschlich bestätigte GLPI-Outcomes. Unabhängige Quellen können bestehende Evidence über die vorhandene Corroboration-Logik stärken; produktive KB-Promotion bleibt trotzdem menschlich kontrolliert.
## Research → Staging
Die Knowledgebase stellt einen getrennt authentifizierten Eingang bereit:
```text
POST /api/integrations/staging
Authorization: Bearer <KB_INTEGRATION_TOKEN>
```
Dieser Endpunkt kann **nur Staging-Entwürfe** erzeugen. Er kann keine produktiven Artikel schreiben und erzwingt `auto_reply=false`. Beispiel:
```bash
export KB_INTEGRATION_TOKEN='...'
./scripts/propose-draft.sh proposal.json
```
Die Promotion bleibt ausschließlich beim normalen KB-Review-Workflow.
## Obsidian / llm-wiki Export
Die Wissensbasis kann in zwei Sichten als Obsidian-kompatibler Vault exportiert werden:
- Knowledgebase: `GET /api/export/obsidian` kanonische produktive JSON-Wissensbasis.
- Agent: `GET /api/knowledge/export/obsidian` Live-Sicht inklusive synchronisierter GLPI-KB-Artikel und, sofern die GLPI-OpenAPI sie lesbar bereitstellt, `KnowbaseItem_Item`-Verknüpfungen.
Der Vault enthält YAML-Frontmatter, `[[Wikilinks]]`, `Wiki/Schema.md`, `Wiki/index.md`, `graph.json` und ein Manifest. Beide UIs besitzen einen **„⇩ Obsidian Export“**-Button. CLI-Helfer:
```bash
./scripts/export-obsidian.sh kb ./knowledge-vault.zip
./scripts/export-obsidian.sh agent ./live-vault.zip
```
Details: [`docs/OBSIDIAN-EXPORT.md`](docs/OBSIDIAN-EXPORT.md).
## Wichtige Sicherheitsgrenzen
1. Der Agent erhält nur den NeuroForge **App Key**, niemals den Admin-Token.
2. NeuroForge erhält keine GLPI-Credentials.
3. Das Control Center besitzt keine Admin-/Editor-Credentials.
4. KB-Health ist ohne Editor-Credentials probe-fähig; alle Editor-Funktionen bleiben Basic-Auth-geschützt.
5. Research-Vorschläge haben einen separaten `KB_INTEGRATION_TOKEN` und landen ausschließlich im Staging.
6. `runs.jsonl`, State/Idempotenz, Policy-Gates und GLPI-Aktionen werden nicht in lernendes Memory verschoben.
Siehe [`docs/CONTROL-MATRIX.md`](docs/CONTROL-MATRIX.md), [`docs/CONTROL-CENTER.md`](docs/CONTROL-CENTER.md) und [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).
## Validierung
```bash
./scripts/validate.sh
cd services/agent && go test -race ./internal/knowledge
cd ../../platform/neuroforge && go test -race ./internal/httpapi ./internal/store
```
Die importierten GLPI-Projekte wurden im Mega-Repo auf Go 1.23 normalisiert. Die komplette Testbasis läuft damit in der bereitgestellten Umgebung. Die ursprünglichen Quellarchive bleiben davon unberührt.
Für Qualitätsmessungen gegen historische Fälle:
```bash
python3 scripts/quality-replay.py docs/QUALITY-REPLAY-example.json --url http://127.0.0.1:8080
```
## Bewusst begrenzte Autonomie
Auch bei aktivierter Research-Autonomie veröffentlicht NeuroForge **nicht selbstständig** in die produktive Knowledgebase. Der technische Draft-Ingress ist vorhanden, aber der Übergang von einem konkreten Research-Run zu einem KB-Draft soll über einen expliziten Workflow/Job erfolgen. Das ist eine Governance-Entscheidung, kein fehlender Schreibweg.

27
RELEASE-NOTES-v1.1.0.md Normal file
View File

@@ -0,0 +1,27 @@
# GLPI NeuroForge Mega 1.1.0
## Enthalten
- GLPI AI Agent mit bestehender GLPI-Ticket-/Followup-/Kategorie-/Eskalationsanbindung.
- GLPI-KB-Synchronisation inklusive verfügbarer `KnowbaseItem_Item`-Relationen.
- GLPI AI Knowledgebase mit Staging/Review/Promotion und getrenntem Integration-Draft-Token.
- NeuroForge + NFVJ2/SQAR als zentraler semantischer Vector-/Memory-Layer.
- kontrollierter Vector-Cutover: `local`, `dual`, `neuroforge`.
- read-only Control Center für Health, Readiness, aktive Betriebsparameter und Navigation.
- Obsidian-/llm-wiki-artiger Export aus Knowledgebase und Agent-Live-Sicht.
- YAML-Frontmatter, Obsidian-Wikilinks, `Wiki/Schema.md`, `Wiki/index.md`, `Wiki/graph.json` und Manifest.
- CLI-Helfer `scripts/export-obsidian.sh`.
- Beispiel-Snapshot der 103 mitgelieferten kanonischen Knowledge-Dokumente.
## Sicherheitsentscheidungen
- Keine produktiven Credentials im Release.
- Ursprüngliche lokale `.env_local` wurde bewusst ausgeschlossen.
- Agent erhält keinen NeuroForge-Admin-Token.
- Control Center bleibt ohne Schreibrechte.
- Research kann nur Staging-Drafts erzeugen; `auto_reply=false` wird erzwungen.
- GLPI-Schreibentscheidungen bleiben im deterministischen Agent-/Policy-Layer.
## Validierung
Siehe `docs/VALIDATION.md`. Docker selbst ist in der Build-/Prüfumgebung nicht installiert; daher ist der echte Container-Runtime-Smoke-Test auf dem Zielhost weiterhin erforderlich.

45
RELEASE-NOTES-v1.2.0.md Normal file
View File

@@ -0,0 +1,45 @@
# Release Notes v1.2.0 — Controlled Autonomy
## Schwerpunkt
v1.2.0 macht aus „autonom lernfähig“ ein kontrolliert autonomes Betriebsmodell. Rohes Chat-/Modellverhalten wird im Mega-Stack nicht mehr automatisch zu vertrauenswürdigem Langzeitwissen. Helpdesk-Lernen folgt stattdessen dem Ablauf **Ticket → KI-Vorschlag → Techniker bestätigt/korrigiert → Outcome → Learn**.
## Neu
- optionaler SearXNG-Service als Compose-Profil `research`
- gehärtete private SearXNG-Konfiguration unter `deploy/searxng/settings.yml`
- `scripts/research-up.sh` für bewusstes Research-Enabling
- separate Schalter für Research/SearXNG und zeitgesteuerte Autonomy
- `NEUROFORGE_CONTROLLED_LEARNING=true` als konservativer Mega-Stack-Standard
- kein automatisches Lernen von Chat-Inputs oder Assistant-Antworten im Controlled Mode
- neue App-Key-geschützte API `POST /api/v1/integrations/outcomes`
- serverseitig gesetzte Provenance `glpi.outcome.accepted|corrected`
- Agent-Audit `ticket-outcomes.json` mit `pending|learned|failed`
- Stale-Run-Schutz: Trusted Outcome nur, wenn der GLPI-Ticketzustand noch zum analysierten Run passt
- unveränderliche Outcome-Revisionskette via `supersedes_id`
- idempotente Wiederholung bereits gelernter menschlicher Entscheidungen
- UI-Aktionen **KI-Antwort bestätigen** und **KI-Antwort korrigieren** im Run-Drawer
- Control Center zeigt Controlled Learning, Outcome Learning, Research/SearXNG und Autonomy read-only an
- `SEARXNG_SECRET` im Secret-Generator
## Vertrauensmodell
- Web Search: 0.45
- Web Page/Document: 0.60
- human accepted outcome: 1.00
- human corrected outcome: 1.00
Web-Evidence bleibt source-backed, deduplizierbar und korroborierbar. Sie wird nicht mit einem menschlich bestätigten Helpdesk-Outcome gleichgesetzt.
## Bewusste Grenzen
- SearXNG ist standardmäßig aus.
- Research ist standardmäßig aus.
- Autonomy ist standardmäßig aus.
- Research darf nicht direkt in die Produktions-KB schreiben.
- Das Control Center bleibt read-only.
- GLPI-Aktionen bleiben beim policy-gated Agenten.
## Upgrade
Siehe `docs/MIGRATION-v1.1.0-to-v1.2.0.md` und `docs/CONTROLLED-AUTONOMY.md`.

47
RELEASE-NOTES-v1.3.0.md Normal file
View File

@@ -0,0 +1,47 @@
# Release Notes v1.3.0 — Closed Learning Loop
## Schwerpunkt
v1.3.0 schließt die wichtigste Produktionslücke aus v1.2.0: menschlich validierte Helpdesk-Erfahrung wird nicht nur gespeichert, sondern bei späteren ähnlichen Tickets wieder als kontrollierte Evidenz genutzt. Gleichzeitig bleiben offizielle Knowledge-Artikel die einzige Autorität für Auto-Reply.
## Neu
- App-Key-geschützte Outcome-Suche `POST /api/v1/integrations/outcomes/search`
- Retrieval ausschließlich aus aktiven `glpi.outcome.accepted|corrected`-Memories
- menschlich validierte Outcomes als sekundäre Evidenz im Reply-Kontext
- Outcome-Evidenz kann niemals selbst eine Knowledge-ID autorisieren
- expliziter LLM-Prompt-Guard gegen das Einführen nicht durch die KB belegter Lösungen
- echte NeuroForge-Supersession: eine Korrektur setzt die frühere Outcome-Memory auf `superseded`
- Revisionskante `new.Supersedes -> oldID` bleibt auditierbar
- supersedete Outcomes werden nicht mehr gesucht
- korrigierte aktive Outcome-Memories enthalten die alte falsche KI-Antwort nicht mehr im semantisch durchsuchbaren Text
- in-memory Provenance-Source-Index für source-/namespace-begrenzte Fallback-Suchen
- Agent-KPIs für Outcome-Suchen, Treffer, Fehler, Accepted/Corrected/Failed/Idempotent
- NeuroForge-KPIs für NFVJ2/SQAR: raw/stored bytes, Savings, SQAR-/Compressed-Blocks
- read-only Quality-Replay API `POST /api/quality/replay`
- `scripts/quality-replay.py` + Beispiel-Dataset
- Replay-Kennzahlen: Knowledge Recall@K, Knowledge MRR, Outcome Recall@K, Outcome MRR, Experience-Rescue-Cases
- Agent-WebUI zeigt validierte Outcome-Kandidaten und Suchdauer/-fehler pro Run
- Agent-Konfiguration und Control Center zeigen Outcome-Retrieval-K, Similarity-Floor und Failure Policy
## Sicherheitsmodell
Der Agent führt weiterhin die verbindlichen GLPI-Policies aus. Ein validiertes Outcome ist Erfahrungswissen, kein freigegebener Knowledge-Artikel. Deshalb gilt weiterhin:
```text
validated outcome alone != auto reply authority
```
Für einen Auto-Reply muss weiterhin ein freigegebener Knowledge-Kandidat die bestehenden Retrieval-, Source-, Category-, Evidence- und Confidence-Gates bestehen.
## Skalierung
Der NeuroForge-Fallback für Provenance-/Namespace-Suchen iteriert nicht mehr über den kompletten Memory-Katalog. Ein rebuildbarer In-Memory-Index `provenance source -> memory IDs` begrenzt den Exact-Fallback auf die jeweilige Source. Der globale ANN-Index bleibt für die schnelle Kandidatengewinnung bestehen.
## Qualitätsmessung
Der neue Replay-Endpunkt ist read-only und verändert weder GLPI noch Knowledge noch NeuroForge. Er ist für einen historischen Ticket-Korpus gedacht, damit nicht nur technische Persistenz, sondern die tatsächliche Retrieval-Wirkung des Lernens gemessen werden kann.
## Upgrade
Siehe `docs/MIGRATION-v1.2.0-to-v1.3.0.md`, `docs/QUALITY-REPLAY.md` und `docs/CONTROLLED-AUTONOMY.md`.

25
RELEASE-NOTES-v1.4.0.md Normal file
View File

@@ -0,0 +1,25 @@
# GLPI NeuroForge Mega v1.4.0
## Unified Graph Explorer
- read-only graph explorer in Control Center with 2D/3D modes, filters, inspector and bounded node budgets
- Ticket Evidence graph including KB candidates, validated outcomes, policy gates, model attempts, proposed answer and human result
- Learning Lineage with accepted/corrected outcomes and immutable supersession chains
- Research Provenance from goal/query/source/evidence to learned memory
- bounded/redacted NeuroForge Brain graph
- reproducible Engineering Graph generated from Go AST plus Docker Compose topology
- Change Impact / blast-radius view for files, symbols and routes
- optional developer-only Codebase Memory MCP link/integration; no production dependency
## Security and control
- new dedicated `CONTROL_READ_TOKEN` for Agent graph reads; no Agent admin credentials are given to Control Center
- NeuroForge graph endpoints remain app-key scoped and omit vectors/full source bodies
- server-side graph budgets and progressive filtering protect browser/runtime resources
- Codebase Memory remains optional and cannot affect platform readiness
## Operations
- `make engineering-graph` and `make engineering-graph-check`
- `scripts/codebase-memory-ui.sh` for optional local developer analysis
- `.cbmignore` included

1
VERSION Normal file
View File

@@ -0,0 +1 @@
1.4.0

0
backups/.gitkeep Normal file
View File

View File

@@ -0,0 +1,26 @@
# Private SearXNG instance for NeuroForge research.
# SEARXNG_SECRET and SEARXNG_BASE_URL override the corresponding server values.
use_default_settings: true
general:
debug: false
instance_name: "NeuroForge Research Search"
search:
safe_search: 1
formats:
- html
- json
server:
secret_key: "overridden-by-SEARXNG_SECRET"
limiter: false
public_instance: false
image_proxy: false
default_http_headers:
X-Robots-Tag: "noindex, nofollow"
Referrer-Policy: "no-referrer"
outgoing:
request_timeout: 5.0
max_request_timeout: 15.0

235
docker-compose.yml Normal file
View File

@@ -0,0 +1,235 @@
name: glpi-neuroforge-mega
services:
ollama:
image: ollama/ollama:latest
restart: unless-stopped
volumes:
- ollama-data:/root/.ollama
ports:
- "127.0.0.1:${OLLAMA_HOST_PORT:-11434}:11434"
security_opt:
- no-new-privileges:true
searxng:
image: ${SEARXNG_IMAGE:-docker.io/searxng/searxng:latest}
profiles: ["research"]
restart: unless-stopped
environment:
SEARXNG_SECRET: ${SEARXNG_SECRET}
SEARXNG_BASE_URL: http://searxng:8080/
FORCE_OWNERSHIP: "false"
volumes:
- ./deploy/searxng/settings.yml:/etc/searxng/settings.yml:ro
- searxng-cache:/var/cache/searxng
ports:
- "127.0.0.1:${SEARXNG_HOST_PORT:-8888}:8080"
read_only: true
tmpfs:
- /tmp:size=64m,mode=1777
security_opt:
- no-new-privileges:true
cap_drop: ["ALL"]
neuroforge:
build:
context: ./platform/neuroforge
target: server
command: ["-data", "/app/data", "-listen", ":8080"]
restart: unless-stopped
environment:
NEUROFORGE_ADMIN_TOKEN: ${NEUROFORGE_ADMIN_TOKEN}
NEUROFORGE_APP_API_KEY: ${NEUROFORGE_APP_API_KEY}
NEUROFORGE_WORKER_TOKEN: ${NEUROFORGE_WORKER_TOKEN}
NEUROFORGE_METRICS_TOKEN: ${NEUROFORGE_METRICS_TOKEN}
NEUROFORGE_CLUSTER_TOKEN: ${NEUROFORGE_CLUSTER_TOKEN:-}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
NEUROFORGE_OLLAMA_URL: http://ollama:11434
NEUROFORGE_OLLAMA_CHAT_MODEL: ${OLLAMA_MODEL:-gemma3}
NEUROFORGE_OLLAMA_EMBEDDING_MODEL: ${OLLAMA_EMBEDDING_MODEL:-embeddinggemma}
NEUROFORGE_CONTROLLED_LEARNING: ${NEUROFORGE_CONTROLLED_LEARNING:-true}
NEUROFORGE_RESEARCH_ENABLED: ${NEUROFORGE_RESEARCH_ENABLED:-false}
NEUROFORGE_SEARXNG_ENABLED: ${NEUROFORGE_SEARXNG_ENABLED:-false}
NEUROFORGE_SEARXNG_URL: ${NEUROFORGE_SEARXNG_URL:-http://searxng:8080}
NEUROFORGE_RESEARCH_GOAL_ENABLED: ${NEUROFORGE_RESEARCH_GOAL_ENABLED:-true}
NEUROFORGE_AUTONOMY_ENABLED: ${NEUROFORGE_AUTONOMY_ENABLED:-false}
NEUROFORGE_AUTONOMY_INTERVAL_MINUTES: ${NEUROFORGE_AUTONOMY_INTERVAL_MINUTES:-30}
NEUROFORGE_RESEARCH_MAX_QUERIES: ${NEUROFORGE_RESEARCH_MAX_QUERIES:-2}
NEUROFORGE_RESEARCH_MAX_PAGES: ${NEUROFORGE_RESEARCH_MAX_PAGES:-4}
ports:
- "127.0.0.1:${NEUROFORGE_HOST_PORT:-8090}:8080"
volumes:
- neuroforge-data:/app/data
depends_on:
- ollama
read_only: true
tmpfs:
- /tmp:size=64m,mode=1777
security_opt:
- no-new-privileges:true
cap_drop: ["ALL"]
healthcheck:
test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:8080/readyz"]
interval: 15s
timeout: 3s
retries: 8
start_period: 10s
neuroforge-worker:
build:
context: ./platform/neuroforge
target: worker
command: ["-server", "http://neuroforge:8080", "-token", "${NEUROFORGE_WORKER_TOKEN}", "-id", "mega-worker-1"]
restart: unless-stopped
depends_on:
neuroforge:
condition: service_healthy
read_only: true
tmpfs:
- /tmp:size=32m,mode=1777
security_opt:
- no-new-privileges:true
cap_drop: ["ALL"]
agent-data-init:
build:
context: ./services/agent
target: data-init
restart: "no"
user: "0:0"
volumes:
- agent-data:/app/data
security_opt:
- no-new-privileges:true
cap_drop: ["ALL"]
cap_add: ["CHOWN", "FOWNER"]
agent:
build:
context: ./services/agent
restart: unless-stopped
env_file: .env
environment:
DATA_DIR: /app/data
KNOWLEDGE_DIR: /app/knowledge
OLLAMA_URL: http://ollama:11434
KNOWLEDGE_VECTOR_BACKEND: ${KNOWLEDGE_VECTOR_BACKEND:-dual}
NEUROFORGE_URL: http://neuroforge:8080
NEUROFORGE_API_KEY: ${NEUROFORGE_APP_API_KEY}
NEUROFORGE_NAMESPACE: ${NEUROFORGE_NAMESPACE:-glpi-agent}
NEUROFORGE_SEARCH_K: ${NEUROFORGE_SEARCH_K:-128}
NEUROFORGE_FAIL_OPEN: ${NEUROFORGE_FAIL_OPEN:-true}
BRAIN_ACTIVITY_URL: http://neuroforge:8080/api/v1/integrations/events
BRAIN_ACTIVITY_API_KEY: ${NEUROFORGE_APP_API_KEY}
OUTCOME_LEARNING_ENABLED: ${OUTCOME_LEARNING_ENABLED:-true}
OUTCOME_LEARNING_FAIL_OPEN: ${OUTCOME_LEARNING_FAIL_OPEN:-false}
OUTCOME_LEARNING_MAX_OUTCOMES: ${OUTCOME_LEARNING_MAX_OUTCOMES:-2000}
OUTCOME_RETRIEVAL_ENABLED: ${OUTCOME_RETRIEVAL_ENABLED:-true}
OUTCOME_RETRIEVAL_SEARCH_K: ${OUTCOME_RETRIEVAL_SEARCH_K:-6}
OUTCOME_RETRIEVAL_MIN_SIMILARITY: ${OUTCOME_RETRIEVAL_MIN_SIMILARITY:-0.58}
OUTCOME_RETRIEVAL_FAIL_OPEN: ${OUTCOME_RETRIEVAL_FAIL_OPEN:-true}
CONTROL_READ_TOKEN: ${CONTROL_READ_TOKEN}
ports:
- "127.0.0.1:${AGENT_HOST_PORT:-8080}:8080"
volumes:
- agent-data:/app/data
- ./knowledge:/app/knowledge:ro
depends_on:
agent-data-init:
condition: service_completed_successfully
neuroforge:
condition: service_healthy
ollama:
condition: service_started
read_only: true
tmpfs:
- /tmp:size=64m,mode=1777
security_opt:
- no-new-privileges:true
cap_drop: ["ALL"]
knowledge:
build:
context: ./services/knowledge
restart: unless-stopped
env_file: .env
environment:
APP_MODE: ${KB_APP_MODE:-editor}
DATA_DIR: /data/knowledge
BACKUP_DIR: /data/backups
STAGING_DIR: /data/staging
LISTEN_ADDR: :8080
OLLAMA_BASE_URL: http://ollama:11434
OLLAMA_MODEL: ${OLLAMA_MODEL:-gemma3}
BRAIN_ACTIVITY_URL: http://neuroforge:8080/api/v1/integrations/events
BRAIN_ACTIVITY_API_KEY: ${NEUROFORGE_APP_API_KEY}
KB_INTEGRATION_TOKEN: ${KB_INTEGRATION_TOKEN}
ports:
- "127.0.0.1:${KNOWLEDGE_HOST_PORT:-8081}:8080"
volumes:
- ./knowledge:/data/knowledge:rw
- ./staging:/data/staging:rw
- ./backups:/data/backups:rw
depends_on:
neuroforge:
condition: service_healthy
ollama:
condition: service_started
read_only: true
tmpfs:
- /tmp:size=32m,mode=1777
security_opt:
- no-new-privileges:true
cap_drop: ["ALL"]
control:
build:
context: ./services/control
restart: unless-stopped
environment:
CONTROL_ADDR: :8070
AGENT_URL: http://agent:8080
KNOWLEDGE_URL: http://knowledge:8080
NEUROFORGE_URL: http://neuroforge:8080
NEUROFORGE_API_KEY: ${NEUROFORGE_APP_API_KEY}
CONTROL_READ_TOKEN: ${CONTROL_READ_TOKEN}
CODEBASE_MEMORY_URL: ${CODEBASE_MEMORY_URL:-}
PUBLIC_CODEBASE_MEMORY_URL: ${PUBLIC_CODEBASE_MEMORY_URL:-}
KNOWLEDGE_VECTOR_BACKEND: ${KNOWLEDGE_VECTOR_BACKEND:-dual}
NEUROFORGE_SEARCH_K: ${NEUROFORGE_SEARCH_K:-128}
NEUROFORGE_FAIL_OPEN: ${NEUROFORGE_FAIL_OPEN:-true}
NEUROFORGE_CONTROLLED_LEARNING: ${NEUROFORGE_CONTROLLED_LEARNING:-true}
OUTCOME_LEARNING_ENABLED: ${OUTCOME_LEARNING_ENABLED:-true}
OUTCOME_RETRIEVAL_ENABLED: ${OUTCOME_RETRIEVAL_ENABLED:-true}
OUTCOME_RETRIEVAL_SEARCH_K: ${OUTCOME_RETRIEVAL_SEARCH_K:-6}
OUTCOME_RETRIEVAL_MIN_SIMILARITY: ${OUTCOME_RETRIEVAL_MIN_SIMILARITY:-0.58}
OUTCOME_RETRIEVAL_FAIL_OPEN: ${OUTCOME_RETRIEVAL_FAIL_OPEN:-true}
NEUROFORGE_RESEARCH_ENABLED: ${NEUROFORGE_RESEARCH_ENABLED:-false}
NEUROFORGE_SEARXNG_ENABLED: ${NEUROFORGE_SEARXNG_ENABLED:-false}
NEUROFORGE_AUTONOMY_ENABLED: ${NEUROFORGE_AUTONOMY_ENABLED:-false}
PUBLIC_AGENT_URL: http://localhost:${AGENT_HOST_PORT:-8080}
PUBLIC_KNOWLEDGE_URL: http://localhost:${KNOWLEDGE_HOST_PORT:-8081}
PUBLIC_NEUROFORGE_URL: http://localhost:${NEUROFORGE_HOST_PORT:-8090}/admin
ports:
- "127.0.0.1:${CONTROL_HOST_PORT:-8070}:8070"
depends_on:
neuroforge:
condition: service_healthy
agent:
condition: service_started
knowledge:
condition: service_started
read_only: true
tmpfs:
- /tmp:size=16m,mode=1777
security_opt:
- no-new-privileges:true
cap_drop: ["ALL"]
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
neuroforge-data:
agent-data:
ollama-data:
searxng-cache:

202
docs/ARCHITECTURE.md Normal file
View File

@@ -0,0 +1,202 @@
# Architektur
## Zielbild
```text
┌─────────────────────┐
│ GLPI │
└─────────┬───────────┘
┌─────────────────────┐
│ GLPI AI Agent │
│ policies / actions │
└──────┬───────┬──────┘
│ │ events
semantic query │ └──────────────┐
▼ ▼
┌─────────────────────┐ ┌──────────────┐
│ NeuroForge Brain │ │ Control │
│ HNSW / Disk-PQ │ │ read-only │
│ NFVJ2 + SQAR │ └──────────────┘
│ memory / research │
│ validated outcomes │
└─────────┬───────────┘
│ draft proposal only
┌─────────────────────┐
│ Knowledge Staging │
│ human review │
└─────────┬───────────┘
│ promote
┌─────────────────────┐
│ Production KB │
└─────────┬───────────┘
│ shared files / incremental scan
└──────────────► Agent
```
## Verantwortungsgrenzen
### GLPI AI Agent
Bleibt die autoritative Schicht für:
- Kategorien- und Prioritätslogik
- Eskalation
- Auto-Reply-Gates
- GLPI-Schreiboperationen
- Dry-Run
- Idempotenz und Ticket-State
- Hybrid-Scoring nach semantischer Kandidatensuche
- Quellen-Allowlisten
NeuroForge darf diese Regeln weder verändern noch umgehen.
### NeuroForge
Ist die autoritative Schicht für zentral externalisierte Chunk-Vektoren:
- namespace-isolierte Knowledge-Chunks
- HNSW-/Disk-PQ-Kandidatensuche
- Vector Journal NFVJ2
- SQAR-Kompression des Vector Journals
- Brain-/Knowledge-Events
- eigenes Learning/Research
Die neue Integrations-API ist mit dem App Key geschützt und enthält bewusst keine Admin-Funktionen.
### Knowledgebase
Bleibt die Governance-Schicht:
- kanonische JSON-Artikel
- Editor
- Suche
- Staging
- Backup
- Review
- Promotion
Maschinelle Integrationen können nur Staging-Entwürfe ablegen.
## Datenfluss für Retrieval
```text
Tickettext
-> Embedding-Profil des Agenten
-> NeuroForge namespace search
-> Top-N semantische Kandidaten
-> Agent ordnet Treffer Dokumenten zu
-> exakte lokale Titel-/Keyword-/Kategorie-/Lexikal-Signale
-> deterministischer Hybrid-Score
-> bestehende GLPI Policy-Gates
-> ggf. Aktion
```
Damit bleibt ANN ein Kandidatengenerator, nicht die finale Policy-Entscheidung.
## Persistenz
### Agent
- lokale Knowledge-Metadaten und Chunks
- Titelvektoren
- im `local`/`dual`-Modus auch Chunk-Vektoren
- Audit-/Run-/State-Dateien
### NeuroForge
- Memory/WAL/Segments
- HNSW bzw. Disk-PQ
- NFVJ2 Vector Journal
- SQAR nur auf geeigneten Vektorblöcken
### Knowledgebase
- `knowledge/` produktiv
- `staging/` ungeprüft
- `backups/` Recovery
## Konsistenzmodell
Die JSON-Knowledgebase bleibt fachlich kanonisch. NeuroForge ist ein abgeleiteter semantischer Index. Dokument-IDs und Chunk-Indizes erzeugen deterministische NeuroForge-Memory-IDs. Änderungen ersetzen Chunks batchweise; entfernte Chunks werden entfernt. Dadurch kann ein kompletter Neuaufbau aus der Knowledgebase erfolgen.
## Eventing
Die vorhandenen `brainactivity`-Clients zeigen jetzt auf:
```text
POST /api/v1/integrations/events
```
Diese Events sind Telemetrie/Audit, keine Policy-Eingaben. Beispiele sind `knowledge.search` sowie Synchronisationsereignisse.
## Kontrolliertes Lernmodell (v1.2.0)
### Human Outcome Gate
```text
Ticket -> AI proposal -> technician accept/correct
|
v
immutable local audit
| App Key
v
/api/v1/integrations/outcomes
|
v
trusted semantic outcome memory
```
Der Agent bestimmt nicht selbst die vertrauenswürdige Provenance. NeuroForge akzeptiert über diesen Pfad ausschließlich `accepted` und `corrected` und setzt `glpi.outcome.*` serverseitig. Eine spätere Korrektur wird als neue Outcome-Version mit `supersedes_id` geführt.
### Optionaler Research-Layer
```text
[compose profile: research]
SearXNG
|
v
Goal/manual research -> Search -> Fetch -> Evidence
|
v
provenance + dedup +
independent corroboration
|
v
NeuroForge Memory
|
v
KB staging only
```
Research-Infrastruktur und zeitgesteuerte Autonomie sind getrennt. `NEUROFORGE_AUTONOMY_ENABLED=false` verhindert selbstlaufende Goal-Cycles auch dann, wenn SearXNG und manuelles Research aktiv sind.
## v1.3: Closed Outcome Feedback Loop
Menschlich validierte Helpdesk-Erfahrung besitzt einen eigenen, schmalen Retrieval-Pfad:
```text
Agent ticket query
|--------------------------|
v v
Knowledge namespace Validated outcomes
HNSW/PQ + hybrid active accepted/corrected only
| |
+------------+-------------+
v
Reply selection
|
Knowledge ID allow-list
|
Policy gates / GLPI
```
Die beiden Evidenzklassen werden absichtlich nicht vermischt. Outcome-Memories liegen im NeuroForge-Brain und sind Trust-/Revision-basiert; Knowledge bleibt die veröffentlichte Autorität. Bei Korrekturen bleiben alte Memories auditierbar, wechseln aber auf `superseded` und sind nicht mehr search-active.
Für source-begrenzte Exact-Fallbacks hält der Store einen rebuildbaren In-Memory-Index `Provenance.Source -> Memory IDs`. Damit wächst der Fallback mit der betreffenden Integration/Source statt mit dem gesamten Memory-Katalog. HNSW/Disk-PQ bleiben globale Kandidatenindizes.
Die Qualitätsmessung ist vom Schreibpfad getrennt: `/api/quality/replay` ist read-only und evaluiert live die aktuelle Knowledge-/Outcome-Retrieval-Konfiguration gegen einen bereitgestellten historischen Fallkorpus.

View File

@@ -0,0 +1,26 @@
# Optional Codebase Memory MCP integration
`codebase-memory-mcp` is an optional developer tool, not a production dependency and not an authoritative NeuroForge store. The project uses its structural-code-graph ideas while retaining an in-repo Go AST/Compose snapshot for reproducibility.
## Why optional
The external tool can provide deeper MCP/Cypher/code-navigation and its own rich graph UI. The Mega project's runtime, GLPI decisions, learning and Control Center do not depend on it.
## Local use
Install `codebase-memory-mcp` according to the upstream project, then run:
```sh
./scripts/codebase-memory-ui.sh
```
The helper sets `CBM_ALLOWED_ROOT` to this repository, indexes it through the upstream CLI and starts the optional UI (default port 9749). `.cbmignore` keeps generated/runtime data out of indexing.
To expose its status/link in the Control Center set, as appropriate for your host/network:
```env
CODEBASE_MEMORY_URL=http://host.docker.internal:9749
PUBLIC_CODEBASE_MEMORY_URL=http://localhost:9749
```
Leave `CODEBASE_MEMORY_URL` empty when the Control container should not health-check the developer service. The component is always optional and never affects platform readiness.

48
docs/CONTROL-CENTER.md Normal file
View File

@@ -0,0 +1,48 @@
# Control Center und Interaktion
Das Control Center ist absichtlich read-only. Es ist eine Beobachtungs- und Navigationsschicht, nicht der gemeinsame Super-Admin der Plattform.
## Warum read-only?
Ein einziges Dashboard mit GLPI-Schreibrechten, Knowledge-Editor-Rechten und NeuroForge-Admin-Token würde bei einem Fehler oder einer Kompromittierung alle Trust Boundaries gleichzeitig aufheben. Das Mega-Projekt trennt deshalb Statussicht und Schreibrechte.
## Wo Daten verändert werden
- **GLPI Agent:** policy-gated Ticket-/Followup-/Kategorie-/Eskalationsaktionen.
- **Knowledgebase:** Artikel bearbeiten, Staging prüfen und nach menschlicher Freigabe promoten.
- **NeuroForge Admin:** Brain-/Storage-/Provider-Verwaltung mit separatem Admin-Token.
- **Integration Draft API:** maschinelle Vorschläge ausschließlich nach Staging; `auto_reply=false` wird serverseitig erzwungen.
Das Control Center verlinkt diese Oberflächen und aggregiert Health/Readiness sowie die aktiven Vektor-Migrationsparameter. Es besitzt selbst keine Route, die Produktionsdaten verändert.
## Erweiterungsregel
Falls zentrale Aktionen später direkt im Control Center benötigt werden, sollten sie als einzelne delegierte Operationen mit eigenem Scope, Audit-Eintrag und expliziter Bestätigung implementiert werden. Die Admin-Credentials der Zielsysteme sollen nicht pauschal im Control Center hinterlegt werden.
## v1.2.0: Controlled-Autonomy-Status
Das Control Center zeigt zusätzlich die effektiven Stack-Schalter für:
- Controlled Learning
- Outcome Learning
- Research/SearXNG
- Autonomy
Diese Anzeigen sind bewusst nur Beobachtung. Das Aktivieren von Research oder Autonomy erfolgt über Betreiberkonfiguration/Compose bzw. NeuroForge-Admin, nicht über einen globalen Super-Admin-Schalter im Control Center.
## v1.3.0: Lernwirkung sichtbar machen
Das Control Center zeigt zusätzlich:
- Outcome Retrieval an/aus
- Retrieval-K
- Similarity-Floor
- fail-open/fail-closed der Erfahrungs-Suche
- Verfügbarkeit des read-only Quality-Replay-Endpunkts im Agenten
Die eigentlichen Laufzeitmetriken und Einzelfall-Evidenzen bleiben beim Agenten bzw. Prometheus. Das Control Center erhält dafür weiterhin keine Outcome-Schreib- oder NeuroForge-Adminrechte.
## v1.4 Unified Graph Explorer
The Control Center remains read-only. Its graph views use a dedicated Agent `CONTROL_READ_TOKEN` and the scoped NeuroForge app key. The Engineering Graph is embedded from a reproducible Go AST/Compose snapshot; optional Codebase Memory MCP is developer-only. See `UNIFIED-GRAPH.md`.

83
docs/CONTROL-MATRIX.md Normal file
View File

@@ -0,0 +1,83 @@
# Kontroll- und Berechtigungsmatrix
| Capability | Agent | KB Editor | NeuroForge App API | NeuroForge Admin | Control Center |
|---|---:|---:|---:|---:|---:|
| GLPI lesen | ja | nein | nein | nein | nein |
| GLPI schreiben | nur Policy-gated | nein | nein | nein | nein |
| Produktive KB lesen | ja | ja | indirekt über Sync | nein | nein |
| Produktive KB schreiben | nein | ja | nein | nein | nein |
| KB-Staging schreiben | nein | ja | über getrennten KB Integration Token möglich | nein | nein |
| KB-Staging promoten | nein | ja | nein | nein | nein |
| Knowledge-Vektoren upserten | ja, App Key | nein | ja | ja | nein |
| Knowledge-Vektoren suchen | ja, App Key | nein | ja | ja | nein |
| NeuroForge Config ändern | nein | nein | nein | ja | nein |
| NeuroForge Secrets lesen/rotieren | nein | nein | nein | ja | nein |
| Systemstatus lesen | eigene Readiness | eigene Health | Stats mit App Key | ja | aggregiert read-only |
| Obsidian-Export | Live-Sicht inkl. GLPI-Relations | kanonische KB | nein | nein | verlinkt Ziel-UI |
| Human Outcome erfassen | ja, authentifizierter Techniker | nein | empfängt nur validated outcome | sichtbar/admin | Status read-only |
| Trusted Outcome-Source setzen | nein | nein | **serverseitig fest** | ja | nein |
| SearXNG Research | nein | nein | Research Engine via SearXNG | konfigurierbar | Status read-only |
| Autonomy aktivieren | nein | nein | nein | Betreiber/Admin bzw. Env | Status read-only |
## Credentials
- `NEUROFORGE_ADMIN_TOKEN`: nur Betreiber/Admin.
- `NEUROFORGE_APP_API_KEY`: Agent und read-only Control-Stats; keine Admin-Config.
- `NEUROFORGE_WORKER_TOKEN`: nur NeuroForge Worker.
- `NEUROFORGE_METRICS_TOKEN`: nur Metrics-Scraper.
- `KB_INTEGRATION_TOKEN`: ausschließlich maschineller Staging-Ingress.
- `BASIC_AUTH_USER/PASSWORD`: Knowledgebase-Editor.
- `WEB_USERNAME/PASSWORD`: Agent-Webzugang.
- `SEARXNG_SECRET`: nur optionaler SearXNG-Container/Betreiber.
- GLPI-Credentials: ausschließlich Agent.
## Failure-Policy
| Einstellung | NeuroForge nicht erreichbar | Verhalten |
|---|---|---|
| `local` | irrelevant | Agent bleibt vollständig lokal |
| `dual` | Fehler wird geloggt | lokale Vektoren bleiben erhalten |
| `neuroforge` + fail-open | Fehler wird geloggt | lokale/lexikalische Evidenz soweit verfügbar |
| `neuroforge` + fail-closed | Fehler wird propagiert | semantischer Schritt blockiert kontrolliert |
## Outcome-Learning Failure-Policy
| Einstellung | NeuroForge-Sync nach Technikerentscheidung | Verhalten |
|---|---|---|
| `OUTCOME_LEARNING_ENABLED=false` | nicht ausgeführt | kein Outcome-Learning |
| enabled + `FAIL_OPEN=false` | Fehler | lokaler Audit bleibt `failed`, UI meldet Fehler |
| enabled + `FAIL_OPEN=true` | Fehler | lokaler Audit bleibt `failed`, Workflow darf fortfahren |
| enabled + Sync OK | Erfolg | Audit `learned` + NeuroForge Memory-ID |
## Nicht lernende Kontrollinformationen
Folgende Informationen bleiben absichtlich außerhalb des NeuroForge-Learnings:
- GLPI OAuth/API-Secrets
- Auto-Reply-Policy
- Eskalationsregeln
- Idempotenz-/Run-State
- Schreibfreigaben
- Source-Allowlisten
- Review-/Promotion-Status
## v1.3 zusätzliche Daten- und Aktionsgrenzen
| Akteur | Outcome suchen | Outcome lernen | Outcome superseden | Quality Replay | Auto-Reply autorisieren |
|---|---:|---:|---:|---:|---:|
| GLPI Agent App-Key | ja, nur aktives validated Outcome API | ja, accepted/corrected | indirekt nur über neue korrigierte Revision | nein über NeuroForge; eigener read-only Agent-Endpunkt | nur über bestehende Agent-Policies + freigegebene KB |
| Agent Web-Operator | indirekt sichtbar | explizit bestätigen/korrigieren | durch Korrektur | ja, authentifiziert/read-only | nicht durch Outcome allein |
| NeuroForge Admin | technische Brain-Administration | technisch ja | technisch ja | nein | nein |
| Control Center | Status/Konfiguration sichtbar | nein | nein | Verfügbarkeit sichtbar | nein |
| Research/SearXNG | nein | Research-Evidence, nicht trusted outcome | nein | nein | nein |
`POST /api/v1/integrations/outcomes/search` akzeptiert den NeuroForge App-Key und liefert ausschließlich aktive Memories der serverseitig festgelegten Outcome-Provenance. Es ist kein generischer Memory-Search-Endpunkt und gewährt keine Admin-Funktionen.
### v1.4 graph scopes
| Actor | Capability | Credential | Write authority |
|---|---|---|---|
| Control -> Agent | runs/evidence/learning graphs | `CONTROL_READ_TOKEN` | none |
| Control -> NeuroForge | research/brain graph | app API key | none through graph endpoints |
| Control -> embedded Engineering Graph | structural read | none/internal | none |
| Optional Codebase Memory MCP | developer code analysis | local process / allowed root | none in platform |

161
docs/CONTROLLED-AUTONOMY.md Normal file
View File

@@ -0,0 +1,161 @@
# Kontrollierte Autonomie und Outcome-gated Learning
Stand: v1.3.0
## Ziel
NeuroForge soll recherchieren und lernen können, ohne KI-Ausgaben automatisch mit bestätigtem Betriebswissen gleichzusetzen. Der Release trennt deshalb drei Vertrauensklassen:
| Klasse | Beispiele | Standard-Trust | Freigabe |
|---|---|---:|---|
| Rohes Modell-/Chat-Signal | `chat.input`, `chat.response` | 0.25 / 0.20 im Controlled Mode | kein automatisches Langzeitlernen |
| Quellengebundene Research-Evidence | `web.search`, `web.page` | 0.45 / 0.60 | Provenance + Dedup + unabhängige Corroboration |
| Menschlich validiertes Helpdesk-Outcome | `glpi.outcome.accepted`, `glpi.outcome.corrected` | 1.00 | explizite Technikeraktion |
Die Werte sind eine Ranking-/Learning-Policy, keine Behauptung absoluter Wahrheit. Auch menschlich bestätigtes Wissen bleibt mit Ticket, Run, Actor und Outcome-ID nachvollziehbar.
## Helpdesk-Lernpfad
```text
GLPI Ticket
|
v
Agent analysiert + erzeugt Antwortvorschlag
|
v
Techniker prüft
|--------------------|
v v
bestätigt korrigiert
| |
+---------+----------+
v
lokales Outcome-Audit
|
v
POST /api/v1/integrations/outcomes
|
v
NeuroForge Semantic Memory
```
Vor dem Persistieren liest der Agent bei aktuellen Runs den Ticketzustand erneut aus GLPI und vergleicht ihn mit `SourceVersion`. Hat sich der entscheidungsrelevante Ticketzustand geändert, wird die Validierung blockiert und ein neuer Agent-Run verlangt.
Nur `accepted` und `corrected` sind zulässig. Der Client kann die vertrauenswürdige Source nicht frei setzen; NeuroForge erzeugt serverseitig `glpi.outcome.accepted` bzw. `glpi.outcome.corrected`.
### Audit und Revisionen
`services/agent` speichert Entscheidungen in `DATA_DIR/ticket-outcomes.json`:
- `pending`: lokal erfasst, Sync noch offen
- `learned`: NeuroForge hat eine Memory-ID bestätigt
- `failed`: Entscheidung bleibt erhalten, Remote-Sync ist fehlgeschlagen
- `supersedes_id`: verweist bei einer späteren Korrektur/Neubewertung auf den vorigen Outcome
Eine exakt wiederholte Entscheidung ist idempotent. Bereits erfolgreich gelernte Outcomes werden nicht ein zweites Mal an NeuroForge gesendet. Ein `failed`-Outcome kann dagegen bewusst erneut synchronisiert werden.
Ab v1.3.0 wird eine Revision auch im NeuroForge-Store wirksam: eine neue Korrektur markiert den Vorgänger atomar als `superseded` und trägt die Revisionskante auf der neuen Memory ein. Supersedete Memories bleiben für Audit/History erhalten, werden aber von semantischer Suche ausgeschlossen.
`OUTCOME_LEARNING_FAIL_OPEN=false` ist der kontrollierte Standard: Ein Remote-Fehler wird dem Techniker sichtbar zurückgegeben. `true` ist nur sinnvoll, wenn lokale Audit-Erfassung wichtiger ist als sofortige zentrale Konsistenz.
## Validierte Erfahrung wiederverwenden
Der geschlossene Lernkreis verwendet aktive menschliche Outcomes bei späteren Tickets als sekundäre Evidenz:
```text
neues Ticket
|
+--> offizielle Knowledge-Kandidaten -----------+
| |
+--> NeuroForge Outcome Retrieval --------------+
v
Reply-Auswahl
|
nur Knowledge-ID aus
offizieller Kandidatenliste
```
Konfiguration:
```env
OUTCOME_RETRIEVAL_ENABLED=true
OUTCOME_RETRIEVAL_SEARCH_K=6
OUTCOME_RETRIEVAL_MIN_SIMILARITY=0.58
OUTCOME_RETRIEVAL_FAIL_OPEN=true
```
Die Outcome-Suche greift ausschließlich auf aktive `glpi.outcome.accepted` und `glpi.outcome.corrected` Memories zu. Der LLM-Systemprompt weist zusätzlich explizit an, dass diese Erfahrungen einen Knowledge-Artikel nur stützen oder widerlegen dürfen. Sie dürfen niemals selbst einen Auto-Reply autorisieren oder eine nicht im Artikel belegte Lösung einführen.
Der Agent protokolliert die verwendeten Outcome-Kandidaten, Similarity, Suchdauer und Fehler pro Run. Prometheus enthält Such-, Treffer-, Fehler- und Learning-Zähler.
## Wirkung messen
`POST /api/quality/replay` ist eine read-only Qualitätsprüfung gegen historische Fälle. Sie meldet Knowledge Recall@K/MRR und Outcome Recall@K/MRR. `experience_rescued_cases` zählt konservativ Fälle, in denen die erwartete offizielle KB nicht in Top-K lag, aber eine aktive validierte Erfahrung die erwarteten Lösungsterme enthielt. Das ist ein Learning-Lift-Indikator, keine automatische Produktionsfreigabe.
Siehe `docs/QUALITY-REPLAY.md`.
## Controlled Learning
`NEUROFORGE_CONTROLLED_LEARNING=true` setzt beim Serverstart eine konservative Policy:
- `learn_chat_inputs=false`
- `learn_chat_responses=false`
- `allow_explicit_learn=true`
- `allow_imports=false`
- `learn_goal_cycles=false`
- höhere Mindestanforderungen für semantische Konsolidierung
- niedriger Trust für Web-/Chat-Signale
- maximaler Trust für explizite GLPI-Outcomes
Damit ist „das Modell hat es gesagt“ kein Lernsignal. Lernen braucht entweder einen expliziten, kontrollierten API-Pfad oder quellengebundene Evidence.
## Research und SearXNG
SearXNG ist im Root-Compose als Profil `research` definiert und wird im normalen `docker compose up` nicht gestartet.
### Research manuell freischalten
1. In `.env` einen zufälligen `SEARXNG_SECRET` setzen. Für reproduzierbare Produktion `SEARXNG_IMAGE` auf einen freigegebenen Tag oder Digest pinnen.
2. Research starten:
```bash
./scripts/research-up.sh
```
Das Script aktiviert für diesen Compose-Aufruf:
```text
NEUROFORGE_RESEARCH_ENABLED=true
NEUROFORGE_SEARXNG_ENABLED=true
```
Es aktiviert **nicht** automatisch `NEUROFORGE_AUTONOMY_ENABLED`.
### Autonomie bewusst separat aktivieren
Für zeitgesteuerte, selbstinitiierte Goal-Cycles zusätzlich in `.env`:
```text
NEUROFORGE_AUTONOMY_ENABLED=true
```
Ein Goal muss zusätzlich `auto_run`/Research erlauben. Damit sind die infrastrukturelle Suchfähigkeit, manuelles Research und zyklische Autonomie getrennt kontrollierbar.
## Research-Vertrauen
Research-Inhalte werden als untrusted external data behandelt. NeuroForge hält Source-URI, Source-ID, Hash, Retrieval-Zeitpunkt und Evidence-Quellen fest. Ähnliche Evidence aus einer weiteren unabhängigen Source erhöht `EvidenceCount` und Confidence über die Corroboration-Logik, statt einen einzelnen Treffer sofort auf Trust 1.0 zu setzen.
Research darf außerdem nicht direkt produktive Knowledge-Artikel veröffentlichen. Der vorhandene Maschinenpfad endet beim token-geschützten KB-Staging; `auto_reply=false` wird dort serverseitig erzwungen. Promotion bleibt eine menschliche Entscheidung.
## Empfohlener Produktionsmodus
```text
NEUROFORGE_CONTROLLED_LEARNING=true
OUTCOME_LEARNING_ENABLED=true
OUTCOME_LEARNING_FAIL_OPEN=false
NEUROFORGE_RESEARCH_ENABLED=false
NEUROFORGE_SEARXNG_ENABLED=false
NEUROFORGE_AUTONOMY_ENABLED=false
```
Research anschließend gezielt aktivieren, beobachten und erst danach falls gewünscht Autonomy einschalten.

37
docs/IMPLEMENTED.md Normal file
View File

@@ -0,0 +1,37 @@
# Implementierungsstand
## Implementiert
- gemeinsames Monorepo mit `go.work`
- gemeinsamer Docker-Compose-Stack
- zentraler Ollama-Endpunkt für Agent/KB/NeuroForge
- NeuroForge + NFVJ2/SQAR Vector Journal
- App-Key-geschützte NeuroForge Knowledge Integration API
- namespace-isolierte semantische Suche
- Batch-Upsert/Batch-Delete für Knowledge-Chunks
- Agent `local` / `dual` / `neuroforge` Betriebsmodi
- explizites fail-open / fail-closed
- Remote-Semantik bleibt nur Evidenz; Agent-Hybrid-/Policy-Logik bleibt autoritativ
- inkrementelle Updates und Löschungen in NeuroForge
- vorhandene Brain-Activity-Hooks auf NeuroForge Events
- read-only Control Center
- gemeinsames produktives `knowledge/` mit KB-RW / Agent-RO
- separater Bearer-geschützter Research-/Integration-Draft-Ingress in KB-Staging
- Research-Drafts können nicht produktiv schreiben und erzwingen `auto_reply=false`
- getrennte Secrets für Admin, App, Worker, Metrics und KB-Staging-Integration
- Tests für Namespace-Isolation, Lifecycle, Fail-open/fail-closed und Staging-Governance
- optionaler SearXNG-Service als Compose-Profil `research`
- Controlled-Learning-Bootstrap ohne automatisches Chat-Input/Assistant-Output-Lernen
- Human-Outcome-Learning (`accepted`/`corrected`) über separaten App-Key-Endpunkt
- lokales Outcome-Audit mit `pending|learned|failed`, Retry und unveränderlicher Revisionskette
- Stale-Run-Schutz gegen Lernen aus überholten GLPI-Ticketzuständen
- getrennte Schalter für Research/SearXNG und zeitgesteuerte Autonomie
## Bewusst nicht automatisiert
- Kein NeuroForge-Research-Run wird ohne expliziten Workflow automatisch zum KB-Entwurf.
- Kein KB-Entwurf wird automatisch promoted.
- Keine GLPI-Automation wird durch die Vektormigration automatisch aktiviert.
- Das Control Center besitzt keine Admin-Aktionen.
Diese Grenzen sind Teil des Kontrollmodells und können später gezielt über signierte/approvable Jobs erweitert werden.

85
docs/MIGRATION-CUTOVER.md Normal file
View File

@@ -0,0 +1,85 @@
# Kontrollierter Cutover
## Phase 0 Baseline
```env
KNOWLEDGE_VECTOR_BACKEND=local
DRY_RUN=true
AUTO_CATEGORY=false
AUTO_REPLY=false
AUTO_PRIORITY=false
AUTO_ESCALATION=false
```
Ziel: unverändertes Agent-Verhalten und Baseline-Metriken sichern.
## Phase 1 Dual Mirror
```env
KNOWLEDGE_VECTOR_BACKEND=dual
NEUROFORGE_FAIL_OPEN=true
```
Der Agent behält lokale Chunk-Vektoren und synchronisiert dieselben Dokumente zusätzlich nach NeuroForge. Suchentscheidungen bleiben lokal. Beobachten:
- Sync-Fehler im Agent-Log
- NeuroForge Memory-/Index-Wachstum
- Vector-Journal-Größe
- Retrieval-Latenz der Baseline
- keine Änderungen an GLPI-Aktionen
Rollback: `KNOWLEDGE_VECTOR_BACKEND=local` und Agent neu starten.
## Phase 2 NeuroForge Candidate Search
```env
KNOWLEDGE_VECTOR_BACKEND=neuroforge
NEUROFORGE_FAIL_OPEN=true
```
NeuroForge liefert semantische Kandidaten. Der Agent bleibt Besitzer des finalen Hybrid-Scores und aller Policies. Nach erfolgreicher Synchronisation können lokale Chunk-Vektoren aus dem normalen Snapshot externalisiert werden; Titelvektoren und Text-/Metadaten bleiben lokal.
Rollback: auf `dual` oder `local` zurückstellen. Die kanonischen Knowledge-JSON-Dateien sind unverändert und können den semantischen Index neu aufbauen.
## Phase 3 Optional fail-closed
Erst nach stabiler Betriebsphase:
```env
NEUROFORGE_FAIL_OPEN=false
```
Damit werden semantische Backend-Ausfälle sichtbar blockierend statt degradierend behandelt. Diese Einstellung ist sinnvoll, wenn eine Antwort ohne zentralen semantischen Index nicht zulässig sein soll.
## Phase 4 GLPI-Automation separat freigeben
Die Vektormigration ist **keine** Freigabe für automatische GLPI-Aktionen. Jede Automation wird unabhängig aktiviert und getestet:
```env
DRY_RUN=false
AUTO_CATEGORY=true|false
AUTO_REPLY=true|false
AUTO_PRIORITY=true|false
AUTO_ESCALATION=true|false
```
Auto-Reply sollte zuletzt aktiviert werden.
## Vergleichsstrategie
Vor dem Umschalten auf `neuroforge` sollten repräsentative Tickets in `local` und `dual` mit denselben Modellen getestet werden. Zu vergleichen sind mindestens:
- Top-1/Top-k Knowledge-ID
- semantischer Teilscore
- finaler Hybrid-Score
- Schwellenwertentscheidungen
- Kategorie-/Prioritätsentscheidung
- Antwortfreigabe
- Latenz
## Recovery
- Produktive Knowledge-JSONs sind kanonisch.
- NeuroForge-Semantik kann aus diesen Daten neu aufgebaut werden.
- Staging ist getrennt und kann nicht versehentlich produktiv werden.
- NFVJ2/SQAR ist eine Storage-Optimierung; fachliche IDs und Vektoren bleiben verlustfrei rekonstruierbar.

115
docs/MIGRATION-MANIFEST.md Normal file
View File

@@ -0,0 +1,115 @@
# Migration Manifest
## NeuroForge
Neu/erweitert:
- `internal/httpapi/integration.go` App-Key-geschützte Knowledge-/Event-Integrationsendpunkte
- `internal/httpapi/integration_api_test.go` Lifecycle, Auth und Namespace-Isolation
- `internal/store/store.go` provenance-gefilterte semantische Suche
- `internal/store/batch.go` Batch-Delete zur Vermeidung mehrfacher ANN-Rebuilds
- `cmd/server/main.go` gemeinsamer Ollama-Endpunkt per Mega-Environment
- vorhandene NFVJ2/SQAR-Vector-Journal-Migration bleibt Bestandteil der Plattform
## GLPI AI Agent
Neu/erweitert:
- `internal/knowledge/neuroforge_backend.go` SemanticBackend + NeuroForge HTTP-Client
- `internal/knowledge/store.go` Hybrid-Retrieval mit `local`/`dual`/`neuroforge`
- `internal/knowledge/persistent_index.go` inkrementelle Sync-/Externalisierungslogik
- `internal/config/config.go` kontrollierbare Backend-/Failure-Parameter
- `cmd/agent/main.go` Backend-Wiring
- Tests für Remote-Evidenz und fail-open/fail-closed
## GLPI AI Knowledgebase
Neu/erweitert:
- `internal/staging/staging.go` quellenbewusste Staging-Proposals
- `cmd/server/app.go` `POST /api/integrations/staging`
- `cmd/server/main.go` Health und Staging-Ingress ohne Weitergabe von Editor-Credentials
- Tests für Staging-only-Governance und Auth-Grenzen
## Mega Platform
Neu:
- `docker-compose.yml`
- `go.work`
- `.env.example`
- `services/control/` read-only Control Center
- `scripts/validate.sh`
- `scripts/status.sh`
- `scripts/generate-secrets.sh`
- `scripts/propose-draft.sh`
- gemeinsame `knowledge/`, `staging/`, `backups/`
- Architektur-, Kontroll-, Cutover-, Betriebs- und Validierungsdokumentation
## Version 1.1.0 GLPI Relations & Obsidian Export
- GLPI-KB-Sync liest verfügbare `KnowbaseItem_Item`-Relationen über die installierte OpenAPI.
- `linked_items` werden im Agent-Knowledge-Modell erhalten.
- Knowledgebase und Agent exportieren Obsidian-kompatible ZIP-Vaults.
- Exporte enthalten YAML-Frontmatter, Wikilinks, Schema, Index, Manifest und `graph.json`.
- Neuer CLI-Helfer: `scripts/export-obsidian.sh`.
- Control-Center-Sicherheitsgrenze und delegierte Interaktionswege sind in `docs/CONTROL-CENTER.md` dokumentiert.
- Repräsentativer Export-Snapshot liegt unter `exports/knowledge-obsidian-snapshot.zip`.
## Version 1.2.0 Controlled Autonomy
### NeuroForge
- `internal/httpapi/outcomes.go` schmaler App-Key-Pfad für menschlich validierte Ticket-Outcomes
- `internal/brain/brain.go` interne, nicht vom JSON-Client spoofbare Trusted-Provenance-Felder
- `cmd/server/main.go` Controlled-Learning- und Research-Bootstrap per Environment
- `deploy/learning-policy.example.json` konservative Source-Trust-/Learning-Policy
### GLPI AI Agent
- `internal/learning/outcomes.go` persistentes Outcome-Audit, Sync-Status, Revisionen und NeuroForge-Sink
- `internal/agent/agent.go` Stale-Run-Prüfung und Outcome-gated Learning
- `internal/web/server.go` / Dashboard Bestätigen/Korrigieren und Audit-Sicht
- neue Outcome-Learning-Konfiguration mit explizitem fail-open/fail-closed
### Mega Platform
- `searxng` als optionaler Compose-Profilservice `research`
- `deploy/searxng/settings.yml`
- `scripts/research-up.sh`
- separate Research-, SearXNG- und Autonomy-Schalter
- Control Center zeigt diese Betriebsmodi read-only
- `docs/CONTROLLED-AUTONOMY.md`
- `docs/MIGRATION-v1.1.0-to-v1.2.0.md`
- `RELEASE-NOTES-v1.2.0.md`
- `patches/v1.1.0-to-v1.2.0.diff`
## Version 1.3.0 Closed Learning Loop
### NeuroForge
- `internal/store/source_index.go` rebuildbarer Provenance-Source-Index und atomare Memory-Supersession
- `internal/store/store.go` source-begrenzter Exact-Fallback statt Full-Catalog-Scan
- `internal/brain/brain.go` Multi-Source-Outcome-Suche
- `internal/httpapi/outcomes.go` aktive Outcome-Suche + Remote-Supersession
- `internal/httpapi/metrics.go` NFVJ2/SQAR Savings-/Block-Metriken
- Tests für aktive Revision, supersedete Revision und Source-Index-Rebuild nach Neustart
### GLPI AI Agent
- `internal/learning/outcomes.go` OutcomeRetriever über den schmalen NeuroForge-App-Key-Pfad
- `internal/agent/agent.go` validierte Erfahrung als sekundärer Reply-Kontext + Learning/Retrieval-KPIs
- `internal/model/model.go` auditierbare `ValidatedOutcomeEvidence`
- `internal/ollama/client.go` Prompt-Guard: Outcome darf nur KB stützen/widerlegen, nie selbst autorisieren
- `internal/web/server.go` read-only `/api/quality/replay` und Statusmetriken
- Dashboard zeigt verwendete Erfahrungen, Similarity, Dauer und Fehler
### Mega Platform
- `scripts/quality-replay.py`
- `docs/QUALITY-REPLAY.md`
- `docs/QUALITY-REPLAY-example.json`
- `docs/MIGRATION-v1.2.0-to-v1.3.0.md`
- `RELEASE-NOTES-v1.3.0.md`
- Control Center zeigt Outcome Retrieval und Replay-Verfügbarkeit read-only
- Upgrade-Patch: `patches/v1.2.0-to-v1.3.0.diff`

View File

@@ -0,0 +1,44 @@
# Migration v1.1.0 → v1.2.0
## 1. Neue Secrets übernehmen
```bash
./scripts/generate-secrets.sh
```
Zusätzlich wird `SEARXNG_SECRET` ausgegeben. SearXNG ist optional; der Secret wird erst für das `research`-Profil benötigt.
## 2. Controlled Learning prüfen
Empfohlen:
```text
NEUROFORGE_CONTROLLED_LEARNING=true
OUTCOME_LEARNING_ENABLED=true
OUTCOME_LEARNING_FAIL_OPEN=false
```
Bestehende NeuroForge-Daten werden nicht gelöscht. Der Modus ändert, welche neuen Signale automatisch gelernt werden.
## 3. Human Outcome Flow verwenden
Neue Agent-Runs speichern den für Learning benötigten Ticket-/Reply-Snapshot. Alte Runs aus v1.1.0 können deshalb bewusst nicht nachträglich als validiertes Outcome gelernt werden, wenn dieser Snapshot fehlt.
Im Agent-Dashboard den Run öffnen und **KI-Antwort bestätigen** bzw. **KI-Antwort korrigieren** verwenden.
## 4. Research optional starten
```bash
./scripts/research-up.sh
```
Das startet das Compose-Profil `research` und aktiviert SearXNG/Research für den NeuroForge-Start. Zyklische Autonomie bleibt separat deaktiviert, solange `NEUROFORGE_AUTONOMY_ENABLED=false` ist.
## 5. Rollback
- SearXNG stoppen: `docker compose --profile research stop searxng`
- Research deaktivieren: `NEUROFORGE_RESEARCH_ENABLED=false`, `NEUROFORGE_SEARXNG_ENABLED=false`
- Autonomy deaktivieren: `NEUROFORGE_AUTONOMY_ENABLED=false`
- Outcome Learning deaktivieren: `OUTCOME_LEARNING_ENABLED=false`
Das lokale Outcome-Audit und bereits gelernte Memories werden dadurch nicht gelöscht.

View File

@@ -0,0 +1,61 @@
# Migration v1.2.0 -> v1.3.0
## Ziel
v1.3.0 schließt den Outcome-Learning-Kreis und ergänzt Messbarkeit. Bestehende v1.2.0-Outcomes bleiben kompatibel; neue Korrekturen können ihre Vorgänger in NeuroForge tatsächlich superseden.
## Neue Konfiguration
```env
OUTCOME_RETRIEVAL_ENABLED=true
OUTCOME_RETRIEVAL_SEARCH_K=6
OUTCOME_RETRIEVAL_MIN_SIMILARITY=0.58
OUTCOME_RETRIEVAL_FAIL_OPEN=true
```
Empfehlung für Pilotbetrieb: Outcome Retrieval aktivieren, aber Auto-Reply zunächst weiterhin im Shadow-/Dry-Run-Modus beobachten.
`OUTCOME_RETRIEVAL_FAIL_OPEN=true` bedeutet: fällt die Erfahrungs-Suche aus, arbeitet der Agent mit offizieller Knowledge- und sonstiger Evidenz weiter. `false` blockiert die Ticketverarbeitung an dieser Stelle sichtbar. Die Auswahl richtet sich nach dem gewünschten Verfügbarkeits-/Konsistenzprofil.
## Verhalten bei Korrekturen
v1.2.0 führte lokal bereits `supersedes_id`. v1.3.0 zieht die Revision auch in NeuroForge nach:
1. neue korrigierte Outcome-Memory wird gespeichert;
2. Vorgänger wird über seine stabile Outcome Source-ID aufgelöst;
3. Vorgängerstatus wird atomar `superseded`;
4. neue Memory erhält die `Supersedes`-Kante;
5. beide Revisionen bleiben auditierbar;
6. nur die aktive Revision erscheint in künftiger Outcome-Suche.
Es gibt keine destructive Delete-Migration.
## Outcome Retrieval
Der Agent sucht bei einem neuen Ticket zusätzlich in den aktiven menschlich validierten Erfahrungen. Diese Treffer werden ausschließlich in `ContextSnapshot.ValidatedOutcomes` an die Reply-Auswahl übergeben. Die Liste der erlaubten `knowledge_id`-Werte wird weiterhin ausschließlich aus freigegebenen Knowledge-Kandidaten erzeugt.
Damit kann Erfahrung Ranking/Entscheidung unterstützen, ohne einen Policy-Bypass zu erzeugen.
## Quality Replay
Beispieldatensatz kopieren/anpassen:
```bash
cp docs/QUALITY-REPLAY-example.json /tmp/my-cases.json
python3 scripts/quality-replay.py /tmp/my-cases.json \
--url http://127.0.0.1:8080 \
--user "$WEB_BASIC_USER" \
--password "$WEB_BASIC_PASSWORD"
```
Vor einem breiten Auto-Reply-Go-Live sollten historische Tickets mit bekanntem Outcome verwendet werden. Zielwerte müssen organisationsspezifisch definiert und als Release-Gate dokumentiert werden.
## Rollback
Outcome-Retrieval kann ohne Datenmigration deaktiviert werden:
```env
OUTCOME_RETRIEVAL_ENABLED=false
```
Das Outcome-Learning und die bestehenden Memories bleiben erhalten. Für einen vollständigen v1.2-Verhaltensrollback kann zusätzlich der v1.2.0-Code gestartet werden; die neue `superseded`-Statusinformation ist nicht destruktiv.

View File

@@ -0,0 +1,9 @@
# Migration v1.3.0 -> v1.4.0
1. Generate and add a new `CONTROL_READ_TOKEN` (minimum 24 characters) to `.env`.
2. Recreate `agent` and `control`; no data migration is required.
3. Open the Control Center and verify Runtime, Ticket, Learning, Research, Brain and Engineering graph views.
4. Keep Codebase Memory variables empty unless the optional developer tool is installed.
5. After code changes regenerate `services/control/engineering-graph.json` with `make engineering-graph`.
Rollback: deploy v1.3.0 again. The new graph APIs are read-only and introduce no persistent schema change.

72
docs/OBSIDIAN-EXPORT.md Normal file
View File

@@ -0,0 +1,72 @@
# Obsidian / llm-wiki Export
Das Mega-Projekt kann die Wissensbasis als selbständigen Obsidian-Vault exportieren. Der Export verändert keine Quelldaten.
## Zwei Sichten
### Kanonische Knowledgebase
```text
GET /api/export/obsidian
```
Quelle sind die produktiven JSON-Dateien im gemeinsamen `knowledge/`-Verzeichnis. Der Export enthält Kategorien sowie explizite relation-artige Felder wie `linked_items`, `relations`, `related`, `related_articles`, `references`, `links`, `connections`, `associations` und `glpi_relations`.
### Live-Sicht des Agenten
```text
GET /api/knowledge/export/obsidian
```
Diese Sicht enthält zusätzlich die vom Agenten synchronisierten GLPI-KB-Artikel. Wenn die installierte GLPI-OpenAPI einen lesbaren `KnowbaseItem_Item`-Pfad bereitstellt, übernimmt der Sync die GLPI-Verknüpfungen (`knowbaseitems_id`, `itemtype`, `items_id`) in `linked_items`.
Ist die Relation-API nicht verfügbar oder fehlen Rechte, wird der KB-Artikel weiterhin synchronisiert. Der Agent protokolliert dann ausdrücklich, dass GLPI-Objektrelationen im Export fehlen.
## Vault-Struktur
```text
Wiki/
├── index.md
├── Schema.md
├── graph.json
├── .manifest.json
├── Knowledge/
├── Categories/ # kanonischer KB-Export
├── GLPI/ # Live-Agent-Export für GLPI-Objekte
└── Relations/ # generische Relation-Stubs
```
Artikel sind normales Markdown mit YAML-Frontmatter. Interne Beziehungen werden als Obsidian-Wikilinks `[[Wiki/...|Titel]]` geschrieben. Datumswerte sind ISO-8601-Daten (`YYYY-MM-DD`). `graph.json` enthält Knoten und Kanten zusätzlich maschinenlesbar.
## Export aus der Oberfläche
Sowohl Knowledgebase als auch Agent-Dashboard besitzen einen Button **„⇩ Obsidian Export“**.
## Export per Skript
```bash
# kanonische KB
KB_URL=http://127.0.0.1:8081 \
BASIC_AUTH_USER=admin \
BASIC_AUTH_PASSWORD='...' \
./scripts/export-obsidian.sh kb ./knowledge-vault.zip
# Live-Agent-Sicht inkl. GLPI-KB-Sync
AGENT_URL=http://127.0.0.1:8080 \
WEB_USERNAME=admin \
WEB_PASSWORD='...' \
./scripts/export-obsidian.sh agent ./live-vault.zip
```
Das Skript schreibt zunächst in eine temporäre Datei und ersetzt die Zieldatei erst nach einem erfolgreichen HTTP-Download.
## Governance
Der Export ist absichtlich read-only:
- keine Quelldatei wird geändert,
- keine GLPI-Verknüpfung wird zurückgeschrieben,
- keine Auto-Reply-Policy wird verändert,
- Secrets werden nicht in Frontmatter oder `graph.json` exportiert.
Damit kann der Vault in Obsidian, Git oder einem llm-wiki-artigen Workflow analysiert werden, ohne die operative Wissensbasis zu verändern.

102
docs/OPERATIONS.md Normal file
View File

@@ -0,0 +1,102 @@
# Betrieb
## Standardbefehle
```bash
make test
make vet
make build
make up
# optional: Research/SearXNG ohne Autonomy
make research-up
make ps
make status
make logs
make down
```
## Secrets
```bash
./scripts/generate-secrets.sh
```
Die Ausgabe wird nicht automatisch in `.env` geschrieben. Das verhindert, dass vorhandene Credentials versehentlich überschrieben werden.
## Status
Das Control Center ist read-only und fragt parallel ab:
- Agent `/readyz`
- Knowledgebase `/api/health`
- NeuroForge `/api/v1/stats` mit App Key
Es zeigt keine Secrets und besitzt keine Schreibroute.
## Knowledge Sync
`knowledge/` ist das gemeinsame kanonische Verzeichnis:
- Knowledgebase: read/write
- Agent: read-only
Der Agent erkennt Änderungen inkrementell. In `dual`/`neuroforge` werden veränderte Chunk-Vektoren in das NeuroForge-Namespace synchronisiert. Entfernte Dokumente werden dort ebenfalls entfernt.
## Externe Knowledge-Connectoren
Connector-Dokumente werden ebenfalls nach NeuroForge gespiegelt. Ihr lokaler Connector-Vektorcache wird derzeit bewusst beibehalten, damit Connector-Neustarts und Fail-open-Betrieb nicht bei jedem Zyklus neu einbetten müssen. Das ist eine Resilienz-/Effizienzentscheidung und unterscheidet sich von der Externalisierung der lokalen produktiven KB.
## Obsidian-Export
```bash
./scripts/export-obsidian.sh kb ./knowledge-vault.zip
./scripts/export-obsidian.sh agent ./live-vault.zip
```
Der KB-Export liest die kanonischen JSON-Dateien. Der Agent-Export ergänzt synchronisierte GLPI-KB-Artikel und verfügbare `KnowbaseItem_Item`-Verknüpfungen. Beide Exporte sind read-only. Details: [`OBSIDIAN-EXPORT.md`](OBSIDIAN-EXPORT.md).
## Research-Drafts
Ein Proposal-JSON kann kontrolliert ins Staging geschrieben werden:
```json
{
"source": "NeuroForge Research",
"query": "VPN Fehlerbild",
"title": "VPN Diagnose",
"text": "Beobachtetes Symptom ...",
"answer": "1. ...",
"categories": ["VPN"],
"keywords": ["gateway", "token"],
"min_score": 0.85
}
```
```bash
export KB_INTEGRATION_TOKEN='...'
./scripts/propose-draft.sh proposal.json
```
Der Server erzwingt `auto_reply=false`. Promotion erfolgt im normalen Editor.
## SQAR
SQAR ist ausschließlich im NeuroForge Vector Journal aktiviert. Nicht komprimiert werden operative Audit-/Policy-Dateien oder zufällig zugreifbare Memory-Segmente. Der Codec wählt nur dann die SQAR-Variante, wenn sie gegenüber der Roh-/DEFLATE-Darstellung tatsächlich kleiner ist.
## Controlled Learning / Human Outcomes
Im Standard ist `NEUROFORGE_CONTROLLED_LEARNING=true`. Rohe Chat-/Assistant-Inhalte werden damit nicht automatisch als Langzeitwissen gelernt. Ein Agent-Run kann im Dashboard explizit bestätigt oder korrigiert werden. Das Outcome wird unter `DATA_DIR/ticket-outcomes.json` auditiert und erst dann über den App-Key-Pfad an NeuroForge übertragen.
Bei `OUTCOME_LEARNING_FAIL_OPEN=false` ist ein NeuroForge-Syncfehler für den Techniker sichtbar. Der lokale Outcome-Eintrag bleibt erhalten und kann durch Wiederholen derselben Entscheidung retryt werden. Änderungen am GLPI-Ticket seit dem analysierten Run blockieren die Validierung.
## Optionales SearXNG / Research
Der Basisstack startet SearXNG nicht. Für Research zuerst einen echten `SEARXNG_SECRET` in `.env` setzen und dann:
```bash
./scripts/research-up.sh
```
Das startet das Compose-Profil `research` und schaltet Research/SearXNG für NeuroForge ein. `NEUROFORGE_AUTONOMY_ENABLED` bleibt separat und standardmäßig `false`. Details: [`CONTROLLED-AUTONOMY.md`](CONTROLLED-AUTONOMY.md).

View File

@@ -0,0 +1,11 @@
{
"cases": [
{
"id": "vpn-login-001",
"query": "VPN verbindet nicht, Anmeldung schlägt nach Passwortwechsel fehl",
"expected_knowledge_id": "REPLACE-WITH-KB-ID",
"expected_solution_terms": ["vpn"],
"k": 10
}
]
}

35
docs/QUALITY-REPLAY.md Normal file
View File

@@ -0,0 +1,35 @@
# Retrieval & Learning Replay Benchmark
v1.3.0 adds a read-only benchmark endpoint: `POST /api/quality/replay`.
It does **not** write to GLPI, does not learn and does not call the answer LLM. It replays
historical ticket text through the current Knowledge retrieval and the human-validated
Outcome retrieval so quality changes can be measured before a rollout.
Each case may specify:
- `query`: historical ticket subject/body snapshot.
- `expected_knowledge_id`: the KB article known to be correct at that time.
- `expected_solution_terms`: terms expected in a technician-validated outcome.
- `k`: evaluation depth (default 10, max 50).
Reported KPIs:
- `knowledge_recall_at_k`
- `knowledge_mrr`
- `outcome_recall_at_k`
- `outcome_mrr`
- `experience_rescued_cases`: cases where the expected KB was not retrieved in K but a
matching human-validated experience was retrieved. This is a conservative proxy for
learning lift; it is not counted as auto-reply authority.
Example:
```bash
./scripts/quality-replay.py docs/QUALITY-REPLAY-example.json \
--url http://127.0.0.1:8080 --user "$WEB_BASIC_USER" --password "$WEB_BASIC_PASSWORD" \
--output ./data/quality-replay-$(date +%F).json
```
For production acceptance, build a versioned set of historical tickets and require fixed
minimum thresholds before changing retrieval weights, embedding models, HNSW settings or
Outcome retrieval thresholds.

32
docs/UNIFIED-GRAPH.md Normal file
View File

@@ -0,0 +1,32 @@
# Unified Graph Explorer (v1.4.0)
The Control Center remains read-only and now normalizes operational, evidence, learning, research and engineering relationships into one graph contract (`nodes[]`, `edges[]`, bounded metadata).
## Views
- **Runtime & Trust** — services, external systems, scoped credentials and authority boundaries.
- **Ticket Evidence** — ticket, run, KB candidates, validated outcomes, policy checks, model attempts, proposed reply and human decision.
- **Learning Lineage** — accepted/corrected outcomes, NeuroForge memories and immutable `supersedes` chains.
- **Research Provenance** — goal -> query -> source -> claim/evidence -> memory without exposing full source bodies or prompts.
- **NeuroForge Brain** — bounded/redacted memory/synapse/consolidation view; vectors and full memory exports are not returned.
- **Engineering Graph** — reproducible Go AST + root Compose snapshot with components, packages, files, functions, HTTP routes and service dependencies.
- **Change Impact** — bounded bidirectional dependency traversal for a file/symbol/route query with a conservative static risk hint.
## Visualization
The browser uses a dependency-free canvas renderer. 2D is the operational default. 3D is an optional pseudo-perspective explorer for bounded subgraphs. Node budgets and server-side filtering prevent accidental full-graph rendering.
The graph is an explanation/inspection surface, not a decision authority. A `high` change-impact hint does not replace tests, code review or runtime evidence.
## Trust boundaries
The Control Center never receives Agent admin/basic-auth credentials. Agent graph reads require `CONTROL_READ_TOKEN`; NeuroForge graph reads use the existing scoped app key. Graph endpoints are GET-only and return redacted/bounded representations.
## Reproducibility
Regenerate the engineering snapshot after structural code changes:
```sh
make engineering-graph
make engineering-graph-check
```

72
docs/VALIDATION.md Normal file
View File

@@ -0,0 +1,72 @@
# Validierung
Stand: 26.08.2026 — Release v1.4.0
## Umfang
- 4 Go-Module im gemeinsamen `go.work`
- 158 Go-Dateien
- 47.260 Go-Codezeilen inklusive Tests
- 276 `Test...`-Testfunktionen
- 103 produktive Knowledge-JSON-Dateien
- 8 Compose-Services inklusive optionalem SearXNG-Profil
- reproduzierbarer Engineering-Snapshot: 1.652 Knoten / 6.450 Kanten
## Vollständige Modulprüfung
```text
platform/neuroforge go test ./... OK
platform/neuroforge go vet ./... OK
platform/neuroforge go build ./... OK
services/agent go test ./... OK
services/agent go vet ./... OK
services/agent go build ./... OK
services/knowledge go test ./... OK
services/knowledge go vet ./... OK
services/knowledge go build ./... OK
services/control go test ./... OK
services/control go vet ./... OK
services/control go build ./... OK
```
Shell-Syntax (`scripts/*.sh`), Control-Center-JavaScript (`node --check`), Root-Compose und SearXNG-YAML wurden zusätzlich erfolgreich geprüft. `make engineering-graph-check` bestätigt, dass der eingebettete Engineering-Graph zum Quellstand passt.
## v1.4-spezifische Prüfungen
- Agent-Control-Endpunkte verlangen den separaten Bearer `CONTROL_READ_TOKEN`: **OK**
- Ticket-Evidence-Graph enthält Knowledge, validierte Outcomes, Policy-Checks, Reply und Human Outcome: **OK**
- Learning-Lineage erhält `supersedes`-Revisionen: **OK**
- NeuroForge Research-/Brain-Graph verlangen den App-Key: **OK**
- Brain-Graph ist gebunden/redigiert; Vektoren und voller Memory-Text werden nicht exportiert: **OK**
- Research-Graph bildet Query -> Source -> learned Memory ab: **OK**
- Engineering-Graph enthält Component/Package/File/Function/Route/Service-Knoten: **OK**
- Engineering-Endpunkt respektiert Node-Budgets: **OK**
- Change-Impact verlangt eine explizite Query, bleibt gebunden und liefert Risk-Metadaten: **OK**
- 2D/3D-Canvas-JavaScript besteht Syntaxprüfung: **OK**
- optionales Codebase Memory MCP beeinflusst Readiness nicht: konstruktiv durch `Optional`-Target / leere Default-URL abgesichert
## Race-Checks der neuen Pfade
```text
services/control go test -race ./... OK
services/agent go test -race ./internal/web OK
platform/neuroforge go test -race ./internal/httpapi OK
```
Ein parallel gestarteter Sammel-Race-Lauf lief in das globale Ausführungszeitlimit; die v1.4-betroffenen Pakete wurden deshalb anschließend einzeln erfolgreich geprüft. Ein Timeout wird nicht als Testerfolg gewertet.
## Weiterhin erhaltene Kernfunktionen
Die bestehende Regressionstestbasis umfasst weiterhin GLPI Polling/Webhook/Followups/Kategorien/Priorität/Eskalation, kontrolliertes Outcome-Learning und Supersession, Outcome-Retrieval, Quality Replay, Knowledge `local|dual|neuroforge`, HNSW/Disk-PQ, NFVJ2/SQAR, SearXNG Research, Obsidian-Export und Staging-Governance.
## Nicht als getestet behauptet
Docker/Podman sind in der Prüfungsumgebung nicht installiert. Deshalb wurden nicht ausgeführt:
- echter `docker compose up`
- Live-SearXNG gegen das Internet
- Live-GLPI gegen die Betreiberinstanz
- optionales Codebase Memory MCP als realer externer Prozess
- historischer Quality-Replay mit echten Betreiber-Tickets
Vor Produktivfreigabe bleiben Container-Smoke-Test, echte GLPI-/Research-Konnektivität und der historische Quality-Replay Betreiber-Gates.

Binary file not shown.

View File

@@ -0,0 +1 @@
be4810451750abb676eee0edcc6f164d86f372f32b185f6f730bf84538cef4a8 /mnt/data/mega_work/glpi-neuroforge-mega/exports/knowledge-obsidian-snapshot.zip

8
go.work Normal file
View File

@@ -0,0 +1,8 @@
go 1.26
use (
./platform/neuroforge
./services/agent
./services/control
./services/knowledge
)

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-ACTIVE-DIRECTORY-SELECT",
"title": "Active Directory",
"text": "Auswahlziel: Server, Backend und Plattformen \u003e Active Directory. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn der zentrale Verzeichnisdienst, Domänencontroller, Replikation, Vertrauensstellung, LDAP-Funktion oder die Domäne als Plattform gestört oder zu ändern ist. Typische Ticketformulierungen sind: „AD-Replikation fehlerhaft“; „Domänencontroller nicht erreichbar“; „LDAP-Abfrage schlägt fehl“; „Domänendienst gestört“. Nicht auswählen, wenn nur ein Benutzerkonto angelegt, ein Kennwort zurückgesetzt oder eine einzelne Gruppenmitgliedschaft geändert werden soll. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Einzelne Benutzer- und Gruppenaufträge gehören in die entsprechenden Kategorien unter Benutzerkonten und Berechtigungen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Server, Backend und Plattformen \u003e Active Directory“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Server, Backend und Plattformen \u003e Active Directory"
],
"keywords": [
"Active Directory",
"AD",
"Domänencontroller",
"Domain Controller",
"LDAP",
"Replikation",
"Domäne",
"Verzeichnisdienst",
"Server, Backend und Plattformen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/server-backend-und-plattformen/active-directory",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,25 @@
{
"id": "KAT-ARBEITSPLATZDRUCKER-SELECT",
"title": "Arbeitsplatzdrucker",
"text": "Auswahlziel: Drucken, Scannen und Kopieren \u003e Arbeitsplatzdrucker. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein direkt einem Arbeitsplatz zugeordneter Drucker nicht druckt, Papierstau, schlechte Druckqualität, lokale Verbindung oder einen Gerätefehler zeigt. Typische Ticketformulierungen sind: „Lokaler Drucker druckt nicht“; „Papierstau am Arbeitsplatzdrucker“; „Druck blass“; „USB-Drucker wird nicht erkannt“. Nicht auswählen, wenn ein zentraler Netzwerkdrucker, Multifunktionsgerät oder Druckserver betroffen ist oder ein neues Gerät beschafft werden soll. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Verbrauchsmaterial und Beschaffung werden bei Bedarf separat zugeordnet.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Drucken, Scannen und Kopieren \u003e Arbeitsplatzdrucker“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Drucken, Scannen und Kopieren \u003e Arbeitsplatzdrucker"
],
"keywords": [
"Arbeitsplatzdrucker",
"lokaler Drucker",
"Papierstau",
"Druckqualität",
"USB-Drucker",
"druckt nicht",
"Toner",
"Drucken, Scannen und Kopieren"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/drucken-scannen-und-kopieren/arbeitsplatzdrucker",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,28 @@
{
"id": "KAT-FACHANWENDUNG-STORUNG-SELECT",
"title": "Fachanwendung Störung",
"text": "Auswahlziel: Fachanwendungen und Microsoft Office \u003e Fachanwendung Störung. Primär zuständiges Team: Fachanwendungen. Diese Kategorie ist auszuwählen, wenn eine konkrete Fachanwendung eine Fehlermeldung zeigt, eine fachliche Funktion nicht arbeitet, Masken nicht laden, Verarbeitungsschritte abbrechen oder einzelne Module nicht verfügbar sind. Typische Ticketformulierungen sind: „Fachverfahren zeigt Fehler“; „Buchung kann nicht abgeschlossen werden“; „Maske bleibt leer“; „Modul startet nicht“. Nicht auswählen, wenn das Problem ausschließlich durch Netzwerk, Serverplattform, Datenbankplattform oder das zentrale Benutzerkonto verursacht wird; wenn es sich nur um eine Bedienungsfrage oder neue Anforderung handelt. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Die konkrete Anwendung, Fehlermeldung, betroffene Funktion und Anzahl der Betroffenen sind entscheidend.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Fachanwendungen und Microsoft Office \u003e Fachanwendung Störung“ zuzuordnen. Primär zuständig ist „Fachanwendungen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Fachanwendungen und Microsoft Office \u003e Fachanwendung Störung"
],
"keywords": [
"Fachanwendung",
"Fachverfahren",
"Fehlermeldung",
"Störung",
"Modul",
"Maske",
"Verarbeitung abgebrochen",
"Anwendungsfehler",
"funktioniert nicht",
"Fachanwendung Störung",
"Fachanwendungen und Microsoft Office"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/fachanwendungen-und-microsoft-office/fachanwendung-storung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-FESTNETZTELEFON-SELECT",
"title": "Festnetztelefon",
"text": "Auswahlziel: Telefonie und Kommunikation \u003e Festnetztelefon. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein Tischtelefon oder Festnetzanschluss nicht klingelt, keine Gespräche ermöglicht, Tonprobleme zeigt, defekt ist oder lokal eingerichtet werden muss. Typische Ticketformulierungen sind: „Telefon hat keinen Wählton“; „Tischtelefon defekt“; „Anrufer nicht hörbar“; „Festnetztelefon startet nicht“. Nicht auswählen, wenn eine Rufnummer neu vergeben, eine Rufgruppe geändert oder ein Mobilfunkgerät betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei flächigem Telefonieausfall ist eine zentrale Störung zu prüfen und höher zu priorisieren.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Telefonie und Kommunikation \u003e Festnetztelefon“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Telefonie und Kommunikation \u003e Festnetztelefon"
],
"keywords": [
"Festnetz",
"Telefon",
"Tischtelefon",
"Hörer",
"Wählton",
"Telefonapparat",
"kein Ton",
"Telefon defekt",
"Festnetztelefon",
"Telefonie und Kommunikation"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/telefonie-und-kommunikation/festnetztelefon",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-HARDWAREBESCHAFFUNG-SELECT",
"title": "Hardwarebeschaffung",
"text": "Auswahlziel: Beschaffung, Verträge und Lizenzen \u003e Hardwarebeschaffung. Primär zuständiges Team: Leitung und Finanzen / Beschaffung. Diese Kategorie ist auszuwählen, wenn Hardware außerhalb eines einfachen Support-Ersatzes beschafft werden soll, etwa Server, Netzwerkkomponenten, Arbeitsplatzgeräte, Spezialhardware oder größere Stückzahlen. Typische Ticketformulierungen sind: „Serverhardware bestellen“; „Switches beschaffen“; „Spezialscanner kaufen“; „Rahmenbestellung für Notebooks“. Nicht auswählen, wenn ein vorhandenes Gerät nur repariert, umgesetzt oder zurückgegeben wird; für konkrete Arbeitsplatz-Neubeschaffung kann auch die spezialisierte Kategorie unter Arbeitsplatz genutzt werden. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Das jeweilige Fachteam liefert Spezifikation und Bedarf; Beschaffung führt kaufmännischen Prozess.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Beschaffung, Verträge und Lizenzen \u003e Hardwarebeschaffung“ zuzuordnen. Primär zuständig ist „Leitung und Finanzen / Beschaffung“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Beschaffung, Verträge und Lizenzen \u003e Hardwarebeschaffung"
],
"keywords": [
"Hardwarebeschaffung",
"Hardware bestellen",
"Kauf",
"Angebot",
"Server kaufen",
"Switch beschaffen",
"Geräte bestellen",
"Investition",
"Beschaffung, Verträge und Lizenzen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/beschaffung-vertrage-und-lizenzen/hardwarebeschaffung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,29 @@
{
"id": "KAT-KENNWORT-ZURUCKSETZEN-SELECT",
"title": "Kennwort zurücksetzen",
"text": "Auswahlziel: Benutzerkonten und Berechtigungen \u003e Kennwort zurücksetzen. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein Benutzer sein Kennwort vergessen hat, das Kennwort abgelaufen ist, eine Anmeldung wegen falscher Kennworteingaben scheitert oder das persönliche Domänenkonto gesperrt wurde. Auch typische Folgeprobleme nach einer Kennwortänderung, etwa gespeicherte alte Kennwörter auf weiteren Geräten, gehören hierher. Typische Ticketformulierungen sind: „Kennwort vergessen“; „Passwort abgelaufen“; „Konto gesperrt“; „Account locked“; „Anmeldung funktioniert nach Kennwortänderung nicht“. Nicht auswählen, wenn ein Konto neu angelegt, umbenannt oder gelöscht werden soll; wenn Rollen in einer Fachanwendung fehlen; wenn eine technische Störung des Active Directory mehrere Benutzer betrifft. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Der Support prüft Identität, betroffenen Dienst und mögliche Altkennwörter. Zentrale AD-Störungen werden an Infrastruktur und Backend übergeben.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Benutzerkonten und Berechtigungen \u003e Kennwort zurücksetzen“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Benutzerkonten und Berechtigungen \u003e Kennwort zurücksetzen"
],
"keywords": [
"Kennwort",
"Passwort",
"Kennwort zurücksetzen",
"Passwort vergessen",
"Konto gesperrt",
"Account locked",
"Login",
"Anmeldung",
"Domänenkonto",
"AD-Konto",
"falsches Kennwort",
"Benutzerkonten und Berechtigungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/benutzerkonten-und-berechtigungen/kennwort-zurucksetzen",
"language": "de-DE",
"communication_style": "formal"
}

26
knowledge/01_lan.json Normal file
View File

@@ -0,0 +1,26 @@
{
"id": "KAT-LAN-SELECT",
"title": "LAN",
"text": "Auswahlziel: Netzwerk und Verbindungen \u003e LAN. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn eine kabelgebundene Netzwerkverbindung, Netzwerkdose, Patchung oder Ethernet-Verbindung nicht funktioniert, instabil ist oder neu bereitgestellt werden soll. Typische Ticketformulierungen sind: „Netzwerkdose ohne Verbindung“; „LAN bricht ab“; „Kein Netzwerk über Kabel“; „Neue Dose patchen“. Nicht auswählen, wenn ausschließlich WLAN, VPN, Internetzugang oder ein einzelner defekter Dockingadapter betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei nur einem Arbeitsplatz prüft der Support zunächst Kabel, Dock und Gerät; zentrale Komponenten liegen bei Infrastruktur.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Netzwerk und Verbindungen \u003e LAN“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Netzwerk und Verbindungen \u003e LAN"
],
"keywords": [
"LAN",
"Ethernet",
"Netzwerkdose",
"Netzwerkkabel",
"Patchen",
"kabelgebunden",
"kein Netzwerk",
"Switchport",
"Netzwerk und Verbindungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/netzwerk-und-verbindungen/lan",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-NEUE-IT-ANFORDERUNG-SELECT",
"title": "Neue IT-Anforderung",
"text": "Auswahlziel: Projekte, Änderungen und neue Anforderungen \u003e Neue IT-Anforderung. Primär zuständiges Team: Leitung und Finanzen / Beschaffung. Diese Kategorie ist auszuwählen, wenn ein bislang nicht vorhandener IT-Service, eine neue technische Fähigkeit oder ein organisationsübergreifender Bedarf zunächst bewertet, priorisiert und einem Fachteam zugeordnet werden soll. Typische Ticketformulierungen sind: „Neuen digitalen Dienst prüfen“; „Zusätzlichen IT-Service bereitstellen“; „Neue technische Lösung benötigt“; „Unklarer neuer IT-Bedarf“. Nicht auswählen, wenn die Lösung bereits eindeutig eine bestehende Fachanwendung betrifft, nur Hardware bestellt oder eine normale Störung gemeldet wird. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Diese Kategorie dient der qualifizierten Erstbewertung; danach erfolgt Übergabe an das zuständige Fachteam oder Projekt.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Projekte, Änderungen und neue Anforderungen \u003e Neue IT-Anforderung“ zuzuordnen. Primär zuständig ist „Leitung und Finanzen / Beschaffung“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Projekte, Änderungen und neue Anforderungen \u003e Neue IT-Anforderung"
],
"keywords": [
"neue IT-Anforderung",
"neuer Service",
"neue Lösung",
"Bedarf",
"Anforderung",
"Idee",
"Digitalisierung",
"Prüfauftrag",
"Neue IT-Anforderung",
"Projekte, Änderungen und neue Anforderungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/projekte-anderungen-und-neue-anforderungen/neue-it-anforderung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,25 @@
{
"id": "KAT-PADAGOGISCHES-NETZWERK-SELECT",
"title": "Pädagogisches Netzwerk",
"text": "Auswahlziel: Schulspezifische IT-Systeme \u003e Pädagogisches Netzwerk. Primär zuständiges Team: Schulen. Diese Kategorie ist auszuwählen, wenn das pädagogische Netz einer Schule, seine Zugänge, Segmentierung, Internetnutzung oder schulbezogene Netzwerkdienste betroffen sind. Typische Ticketformulierungen sind: „Schülernetz nicht erreichbar“; „Pädagogisches WLAN gestört“; „Unterrichtsnetz ausgefallen“; „Zugang im pädagogischen Netz fehlt“. Nicht auswählen, wenn ausschließlich das Verwaltungsnetz, eine einzelne allgemeine Netzwerkdose oder die zentrale kommunale Standortanbindung betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Während der Übergangszeit primär Team Schulen; zentrale Infrastrukturursachen werden an Infrastruktur und Backend übergeben.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Schulspezifische IT-Systeme \u003e Pädagogisches Netzwerk“ zuzuordnen. Primär zuständig ist „Schulen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Schulspezifische IT-Systeme \u003e Pädagogisches Netzwerk"
],
"keywords": [
"pädagogisches Netzwerk",
"Schülernetz",
"Unterrichtsnetz",
"pädagogisches WLAN",
"Schulnetz",
"Pädagogiknetz",
"Pädagogisches Netzwerk",
"Schulspezifische IT-Systeme"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/schulspezifische-it-systeme/padagogisches-netzwerk",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,30 @@
{
"id": "KAT-PC-UND-NOTEBOOK-SELECT",
"title": "PC und Notebook",
"text": "Auswahlziel: Arbeitsplatz und Endgeräte \u003e PC und Notebook. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein einzelner Arbeitsplatz-PC oder ein dienstliches Notebook nicht startet, abstürzt, sehr langsam ist, ungewöhnliche Geräusche macht, einen Hardwaredefekt zeigt oder lokal nicht nutzbar ist. Typische Ticketformulierungen sind: „Notebook startet nicht“; „PC friert ein“; „Laptop-Akku defekt“; „Arbeitsplatzrechner sehr langsam“; „Gerät zeigt Bluescreen“. Nicht auswählen, wenn mehrere Geräte gleichzeitig betroffen sind, ein zentraler Dienst ausfällt, ein neues Gerät beschafft werden soll oder ausschließlich Monitor, Dockingstation oder Zubehör betroffen sind. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei mehreren gleichzeitig betroffenen Geräten ist ein zentraler Infrastruktur- oder Sicherheitsbezug zu prüfen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Arbeitsplatz und Endgeräte \u003e PC und Notebook“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Arbeitsplatz und Endgeräte \u003e PC und Notebook"
],
"keywords": [
"PC",
"Computer",
"Notebook",
"Laptop",
"Arbeitsplatzrechner",
"startet nicht",
"Absturz",
"Bluescreen",
"langsam",
"Akku",
"Hardwaredefekt",
"PC und Notebook",
"Arbeitsplatz und Endgeräte"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/arbeitsplatz-und-endgerate/pc-und-notebook",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,24 @@
{
"id": "KAT-SONSTIGES-UND-UNKLARE-ZUORDNUNG-SELECT",
"title": "Sonstiges und unklare Zuordnung",
"text": "Auswahlziel: Sonstiges und unklare Zuordnung \u003e Sonstiges und unklare Zuordnung. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, nur wenn das Ticket trotz ausreichender Beschreibung keiner vorhandenen Kategorie zuverlässig zugeordnet werden kann, mehrere völlig unterschiedliche Anliegen untrennbar vermischt oder der betroffene IT-Service nicht erkennbar ist. Typische Ticketformulierungen sind: „Unklarer IT-Fehler ohne erkennbaren Dienst“; „Mehrere nicht trennbare Anliegen“; „Betroffenes System nicht identifizierbar“. Nicht auswählen, wenn anhand von Anwendung, Gerät, Fehlermeldung, Standort oder gewünschter Leistung eine spezifische Kategorie gewählt werden kann. Diese Kategorie darf nicht allein wegen kurzer oder unvollständiger Formulierung bevorzugt werden. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Diese Auffangkategorie soll selten verwendet und regelmäßig ausgewertet werden. Vor Auswahl sind Hauptbegriffe und Kontext gegen alle spezifischen Kategorien zu prüfen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Sonstiges und unklare Zuordnung \u003e Sonstiges und unklare Zuordnung“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Sonstiges und unklare Zuordnung \u003e Sonstiges und unklare Zuordnung"
],
"keywords": [
"sonstiges",
"unklar",
"keine Zuordnung",
"allgemeines IT-Problem",
"nicht näher beschrieben",
"divers",
"Sonstiges und unklare Zuordnung"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/sonstiges-und-unklare-zuordnung/sonstiges-und-unklare-zuordnung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,28 @@
{
"id": "KAT-VERDACHTIGE-E-MAIL-UND-PHISHING-SELECT",
"title": "Verdächtige E-Mail und Phishing",
"text": "Auswahlziel: IT-Sicherheit und Datensicherung \u003e Verdächtige E-Mail und Phishing. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn eine E-Mail verdächtig wirkt, einen ungewöhnlichen Link oder Anhang enthält, Zugangsdaten abfragt, eine Zahlung fordert oder der Absender möglicherweise gefälscht ist. Typische Ticketformulierungen sind: „Verdächtige Rechnung per E-Mail“; „Link in Mail angeklickt“; „Absender scheint gefälscht“; „Passwortabfrage per Mail“. Nicht auswählen, wenn es sich nur um normalen Spam ohne Sicherheitsbezug, eine Outlook-Client-Störung oder eine bekannte legitime Nachricht handelt. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei geklicktem Link, geöffnetem Anhang oder eingegebenen Zugangsdaten ist die Dringlichkeit zu erhöhen und gegebenenfalls Sicherheitsvorfall zu wählen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „IT-Sicherheit und Datensicherung \u003e Verdächtige E-Mail und Phishing“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"IT-Sicherheit und Datensicherung \u003e Verdächtige E-Mail und Phishing"
],
"keywords": [
"Phishing",
"verdächtige E-Mail",
"Fake Mail",
"gefälschter Absender",
"verdächtiger Link",
"Anhang",
"Spam",
"Zugangsdaten",
"CEO-Fraud",
"Verdächtige E-Mail und Phishing",
"IT-Sicherheit und Datensicherung"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/it-sicherheit-und-datensicherung/verdachtige-e-mail-und-phishing",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,30 @@
{
"id": "KAT-BENUTZERKONTO-ANLEGEN-ANDERN-ODER-LOSCHEN-SELECT",
"title": "Benutzerkonto anlegen, ändern oder löschen",
"text": "Auswahlziel: Benutzerkonten und Berechtigungen \u003e Benutzerkonto anlegen, ändern oder löschen. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn ein persönliches Benutzerkonto für Eintritt, Versetzung, Namensänderung, Organisationswechsel, längere Abwesenheit oder Austritt erstellt, angepasst, deaktiviert oder gelöscht werden muss. Dazu zählen technische Kontodaten im zentralen Verzeichnisdienst. Typische Ticketformulierungen sind: „Neuer Mitarbeiter benötigt ein Konto“; „Nachname hat sich geändert“; „Konto zum Austritt deaktivieren“; „Benutzer in andere Organisationseinheit verschieben“. Nicht auswählen, wenn nur ein Kennwort zurückgesetzt werden muss; wenn ausschließlich eine Rolle in einer Fachanwendung betroffen ist; wenn ein Funktionspostfach benötigt wird. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Fachliche Berechtigungen werden nicht automatisch mit dieser Kategorie abgedeckt und müssen gegebenenfalls separat beantragt werden.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Benutzerkonten und Berechtigungen \u003e Benutzerkonto anlegen, ändern oder löschen“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Benutzerkonten und Berechtigungen \u003e Benutzerkonto anlegen, ändern oder löschen"
],
"keywords": [
"Benutzerkonto anlegen",
"Account erstellen",
"neuer Mitarbeiter",
"Eintritt",
"Austritt",
"Konto löschen",
"Konto deaktivieren",
"Namensänderung",
"Versetzung",
"Organisationseinheit",
"AD-Benutzer",
"Benutzerkonto anlegen, ändern oder löschen",
"Benutzerkonten und Berechtigungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/benutzerkonten-und-berechtigungen/benutzerkonto-anlegen-andern-oder-loschen",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,28 @@
{
"id": "KAT-FACHANWENDUNG-BEDIENUNG-UND-BERATUNG-SELECT",
"title": "Fachanwendung Bedienung und Beratung",
"text": "Auswahlziel: Fachanwendungen und Microsoft Office \u003e Fachanwendung Bedienung und Beratung. Primär zuständiges Team: Fachanwendungen. Diese Kategorie ist auszuwählen, wenn die Anwendung technisch funktioniert, aber Unterstützung bei Bedienung, Prozessschritten, Eingaben, fachlicher Nutzung oder Best-Practice benötigt wird. Typische Ticketformulierungen sind: „Wie erfasse ich einen Vorgang“; „Wo finde ich die Auswertung“; „Unterstützung bei Arbeitsschritt“; „Frage zur Bedienung des Fachverfahrens“. Nicht auswählen, wenn eine Fehlermeldung oder ein technischer Ausfall vorliegt; wenn eine neue Funktion entwickelt oder eine Berechtigung geändert werden soll. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Reine Standardfragen können im First-Level angenommen werden; fachliche Prozessberatung bleibt bei Fachanwendungen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Fachanwendungen und Microsoft Office \u003e Fachanwendung Bedienung und Beratung“ zuzuordnen. Primär zuständig ist „Fachanwendungen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Fachanwendungen und Microsoft Office \u003e Fachanwendung Bedienung und Beratung"
],
"keywords": [
"Bedienung",
"Anleitung",
"Wie kann ich",
"Wo finde ich",
"Beratung",
"Nutzung",
"Arbeitsschritt",
"Fachverfahren Hilfe",
"Anwenderfrage",
"Fachanwendung Bedienung und Beratung",
"Fachanwendungen und Microsoft Office"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/fachanwendungen-und-microsoft-office/fachanwendung-bedienung-und-beratung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-GRUPPENRICHTLINIEN-SELECT",
"title": "Gruppenrichtlinien",
"text": "Auswahlziel: Server, Backend und Plattformen \u003e Gruppenrichtlinien. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn zentrale GPOs technisch erstellt, getestet, verteilt, analysiert oder korrigiert werden sollen und mehrere Systeme oder definierte Organisationseinheiten betreffen. Typische Ticketformulierungen sind: „Neue GPO verteilen“; „Richtlinie wird nicht übernommen“; „Zentrale Windows-Einstellung ändern“; „GPO-Fehler analysieren“. Nicht auswählen, wenn lediglich eine Gruppenmitgliedschaft geändert oder eine lokale Client-Einstellung repariert werden soll. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Die ähnliche Kategorie AD-Gruppen und Gruppenrichtlinien dient eher konkreten Benutzer-/Gruppenaufträgen; diese Kategorie dem Plattformbetrieb und größeren GPO-Arbeiten.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Server, Backend und Plattformen \u003e Gruppenrichtlinien“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Server, Backend und Plattformen \u003e Gruppenrichtlinien"
],
"keywords": [
"Gruppenrichtlinie",
"GPO",
"Group Policy",
"gpupdate",
"Richtlinie",
"OU",
"zentrale Einstellung",
"Policy",
"Gruppenrichtlinien",
"Server, Backend und Plattformen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/server-backend-und-plattformen/gruppenrichtlinien",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,30 @@
{
"id": "KAT-MONITOR-UND-DOCKINGSTATION-SELECT",
"title": "Monitor und Dockingstation",
"text": "Auswahlziel: Arbeitsplatz und Endgeräte \u003e Monitor und Dockingstation. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein Monitor kein Bild zeigt, flackert, falsch erkannt wird oder eine Dockingstation Bild, Netzwerk, USB oder Stromversorgung nicht korrekt durchreicht. Typische Ticketformulierungen sind: „Zweiter Bildschirm bleibt schwarz“; „Dockingstation erkennt Netzwerk nicht“; „Monitor flackert“; „Notebook lädt am Dock nicht“. Nicht auswählen, wenn der gesamte PC nicht startet, ein flächiges Netzwerkproblem vorliegt oder ein neuer Monitor beziehungsweise eine neue Dockingstation beschafft werden soll. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei Netzwerkproblemen über ein Dock zunächst lokale Prüfung durch den Support; bei mehreren Betroffenen Übergabe an Infrastruktur.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Arbeitsplatz und Endgeräte \u003e Monitor und Dockingstation“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Arbeitsplatz und Endgeräte \u003e Monitor und Dockingstation"
],
"keywords": [
"Monitor",
"Bildschirm",
"Display",
"Dockingstation",
"Dock",
"kein Bild",
"flackert",
"zweiter Bildschirm",
"USB-C",
"HDMI",
"DisplayPort",
"Monitor und Dockingstation",
"Arbeitsplatz und Endgeräte"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/arbeitsplatz-und-endgerate/monitor-und-dockingstation",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,25 @@
{
"id": "KAT-NETZWERKDRUCKER-SELECT",
"title": "Netzwerkdrucker",
"text": "Auswahlziel: Drucken, Scannen und Kopieren \u003e Netzwerkdrucker. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein gemeinsam genutzter Netzwerkdrucker nicht erreichbar ist, Druckaufträge hängen, eine Warteschlange fehlerhaft ist oder mehrere Benutzer auf dasselbe Gerät nicht drucken können. Typische Ticketformulierungen sind: „Netzwerkdrucker offline“; „Druckwarteschlange hängt“; „Mehrere Nutzer können nicht drucken“; „Drucker nicht verbunden“. Nicht auswählen, wenn ein lokaler USB-Drucker, Kopierer oder rein zentraler Druckserverdienst ohne konkretes Gerät betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei zentralem Druckserver- oder Netzwerkproblem wird an Infrastruktur und Backend übergeben.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Drucken, Scannen und Kopieren \u003e Netzwerkdrucker“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Drucken, Scannen und Kopieren \u003e Netzwerkdrucker"
],
"keywords": [
"Netzwerkdrucker",
"Druckwarteschlange",
"Print Queue",
"offline",
"gemeinsamer Drucker",
"Druckauftrag hängt",
"IP-Drucker",
"Drucken, Scannen und Kopieren"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/drucken-scannen-und-kopieren/netzwerkdrucker",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-RUFNUMMER-UND-NEBENSTELLE-SELECT",
"title": "Rufnummer und Nebenstelle",
"text": "Auswahlziel: Telefonie und Kommunikation \u003e Rufnummer und Nebenstelle. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn eine Rufnummer oder Nebenstelle neu eingerichtet, geändert, einem Arbeitsplatz zugeordnet, portiert oder aufgehoben werden soll. Typische Ticketformulierungen sind: „Neue Nebenstelle einrichten“; „Rufnummer umziehen“; „Durchwahl ändern“; „Nebenstelle löschen“. Nicht auswählen, wenn nur das Telefon defekt ist, eine Weiterleitung benötigt wird oder ein Mobilfunkvertrag betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Beschaffungs- oder Vertragsanteile werden bei Bedarf an Leitung und Finanzen / Beschaffung übergeben.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Telefonie und Kommunikation \u003e Rufnummer und Nebenstelle“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Telefonie und Kommunikation \u003e Rufnummer und Nebenstelle"
],
"keywords": [
"Rufnummer",
"Nebenstelle",
"Durchwahl",
"Telefonnummer",
"Portierung",
"Nummer zuordnen",
"Nummer ändern",
"Rufnummer und Nebenstelle",
"Telefonie und Kommunikation"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/telefonie-und-kommunikation/rufnummer-und-nebenstelle",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,28 @@
{
"id": "KAT-SCHADSOFTWARE-UND-VIRENFUND-SELECT",
"title": "Schadsoftware und Virenfund",
"text": "Auswahlziel: IT-Sicherheit und Datensicherung \u003e Schadsoftware und Virenfund. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn Virenscanner, EDR oder ein anderes Schutzsystem Malware, Trojaner, Ransomware, unerwünschte Software oder eine verdächtige Datei auf einem Gerät meldet. Typische Ticketformulierungen sind: „Virenscanner meldet Trojaner“; „Datei in Quarantäne“; „Ransomware-Verdacht“; „Malware-Fund auf Notebook“. Nicht auswählen, wenn lediglich ein Virenscanner-Update fehlt, eine allgemeine Schwachstelle bekannt ist oder nur eine verdächtige E-Mail noch nicht geöffnet wurde. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Betroffene Geräte nicht weiter verwenden und nicht eigenständig bereinigen; bei möglicher Ausbreitung als Sicherheitsvorfall eskalieren.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „IT-Sicherheit und Datensicherung \u003e Schadsoftware und Virenfund“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"IT-Sicherheit und Datensicherung \u003e Schadsoftware und Virenfund"
],
"keywords": [
"Virus",
"Malware",
"Trojaner",
"Ransomware",
"Virenfund",
"Quarantäne",
"EDR",
"infiziert",
"Schadsoftware",
"Schadsoftware und Virenfund",
"IT-Sicherheit und Datensicherung"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/it-sicherheit-und-datensicherung/schadsoftware-und-virenfund",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,23 @@
{
"id": "KAT-SCHULVERWALTUNGSNETZ-SELECT",
"title": "Schulverwaltungsnetz",
"text": "Auswahlziel: Schulspezifische IT-Systeme \u003e Schulverwaltungsnetz. Primär zuständiges Team: Schulen. Diese Kategorie ist auszuwählen, wenn das getrennte Verwaltungsnetz einer Schule, Arbeitsplätze der Schulverwaltung oder schulverwaltungsspezifische Netzzugänge betroffen sind. Typische Ticketformulierungen sind: „Sekretariat ohne Verwaltungsnetz“; „Schulleitungs-PC erreicht Verwaltungsdienste nicht“; „Verwaltungs-WLAN gestört“. Nicht auswählen, wenn das pädagogische Schülernetz, eine konkrete Schulverwaltungsanwendung oder die gesamte Standortanbindung ausfällt. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Zentrale Netzwerkkomponenten werden durch Team Schulen qualifiziert und an Infrastruktur und Backend weitergegeben.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Schulspezifische IT-Systeme \u003e Schulverwaltungsnetz“ zuzuordnen. Primär zuständig ist „Schulen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Schulspezifische IT-Systeme \u003e Schulverwaltungsnetz"
],
"keywords": [
"Schulverwaltungsnetz",
"Verwaltungsnetz Schule",
"Sekretariat Netzwerk",
"Schulleitung Netzwerk",
"Schulverwaltung",
"Schulspezifische IT-Systeme"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/schulspezifische-it-systeme/schulverwaltungsnetz",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,25 @@
{
"id": "KAT-SOFTWAREBESCHAFFUNG-SELECT",
"title": "Softwarebeschaffung",
"text": "Auswahlziel: Beschaffung, Verträge und Lizenzen \u003e Softwarebeschaffung. Primär zuständiges Team: Leitung und Finanzen / Beschaffung. Diese Kategorie ist auszuwählen, wenn neue Software, ein neues Produkt, ein Abonnement oder eine kostenpflichtige Erweiterung beschafft und vertraglich beauftragt werden soll. Typische Ticketformulierungen sind: „Neue Software kaufen“; „SaaS-Angebot beauftragen“; „Kostenpflichtiges Modul beschaffen“; „Softwareangebot prüfen“. Nicht auswählen, wenn bereits freigegebene Software nur installiert, eine Fachanwendung eingeführt oder eine vorhandene Lizenz technisch nicht erkannt wird. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Technische, datenschutzrechtliche und sicherheitsbezogene Prüfung erfolgt vor Beauftragung.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Beschaffung, Verträge und Lizenzen \u003e Softwarebeschaffung“ zuzuordnen. Primär zuständig ist „Leitung und Finanzen / Beschaffung“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Beschaffung, Verträge und Lizenzen \u003e Softwarebeschaffung"
],
"keywords": [
"Softwarebeschaffung",
"Software kaufen",
"SaaS",
"Abonnement",
"Lizenz kaufen",
"Angebot Software",
"Bestellung Software",
"Beschaffung, Verträge und Lizenzen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/beschaffung-vertrage-und-lizenzen/softwarebeschaffung",
"language": "de-DE",
"communication_style": "formal"
}

26
knowledge/02_wlan.json Normal file
View File

@@ -0,0 +1,26 @@
{
"id": "KAT-WLAN-SELECT",
"title": "WLAN",
"text": "Auswahlziel: Netzwerk und Verbindungen \u003e WLAN. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn eine drahtlose Netzwerkverbindung nicht hergestellt wird, häufig abbricht, zu schwach ist, ein WLAN-Bereich nicht versorgt wird oder ein SSID-/Authentifizierungsproblem besteht. Typische Ticketformulierungen sind: „WLAN verbindet nicht“; „Schlechter Empfang im Raum“; „SSID fehlt“; „WLAN bricht ständig ab“. Nicht auswählen, wenn Mobilfunkempfang, kabelgebundenes LAN oder ein allgemeines Internetproblem ohne WLAN-Bezug gemeint ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei einem einzelnen Gerät kann der Support vorprüfen; flächige Abdeckung und Access Points liegen bei Infrastruktur.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Netzwerk und Verbindungen \u003e WLAN“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Netzwerk und Verbindungen \u003e WLAN"
],
"keywords": [
"WLAN",
"Wi-Fi",
"SSID",
"Funknetz",
"Access Point",
"schlechter Empfang",
"keine Verbindung",
"WLAN-Abdeckung",
"Netzwerk und Verbindungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/netzwerk-und-verbindungen/wlan",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,29 @@
{
"id": "KAT-AD-GRUPPEN-UND-GRUPPENRICHTLINIEN-SELECT",
"title": "AD-Gruppen und Gruppenrichtlinien",
"text": "Auswahlziel: Benutzerkonten und Berechtigungen \u003e AD-Gruppen und Gruppenrichtlinien. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn Mitgliedschaften in zentralen Active-Directory-Gruppen, Sicherheitsgruppen, Verteilergruppen mit AD-Bezug oder technische Gruppenrichtlinien geprüft, geändert oder neu eingerichtet werden sollen. Auch fehlerhafte Laufwerkszuordnungen oder zentrale Windows-Einstellungen durch GPO gehören hierher. Typische Ticketformulierungen sind: „Benutzer in AD-Gruppe aufnehmen“; „GPO wird nicht angewendet“; „Netzlaufwerk fehlt wegen Gruppenmitgliedschaft“; „Zentrale Windows-Richtlinie ändern“. Nicht auswählen, wenn es um eine fachliche Rolle innerhalb einer Anwendung, ein einzelnes vergessenes Kennwort oder eine lokale Einstellung an nur einem Arbeitsplatz ohne Richtlinienbezug geht. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei fachlichen Rollen ist Fachanwendungen zuständig; bei reinen Arbeitsplatzproblemen ohne zentralen Bezug zunächst der Support.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Benutzerkonten und Berechtigungen \u003e AD-Gruppen und Gruppenrichtlinien“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Benutzerkonten und Berechtigungen \u003e AD-Gruppen und Gruppenrichtlinien"
],
"keywords": [
"Active Directory",
"AD-Gruppe",
"Sicherheitsgruppe",
"Gruppenmitgliedschaft",
"GPO",
"Gruppenrichtlinie",
"Group Policy",
"OU",
"Laufwerkszuordnung",
"zentrale Richtlinie",
"AD-Gruppen und Gruppenrichtlinien",
"Benutzerkonten und Berechtigungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/benutzerkonten-und-berechtigungen/ad-gruppen-und-gruppenrichtlinien",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-DATEIABLAGEN-UND-NETZLAUFWERKE-SELECT",
"title": "Dateiablagen und Netzlaufwerke",
"text": "Auswahlziel: Server, Backend und Plattformen \u003e Dateiablagen und Netzlaufwerke. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn zentrale Dateifreigaben, Netzlaufwerke, SMB-Ablagen oder Berechtigungsstrukturen nicht erreichbar sind, Speicherprobleme zeigen oder neu bereitgestellt werden sollen. Typische Ticketformulierungen sind: „Netzlaufwerk nicht erreichbar“; „Dateifreigabe anlegen“; „Ordnerberechtigung ändern“; „Speicherplatz auf Ablage voll“. Nicht auswählen, wenn nur eine lokale Datei beschädigt ist, eine Fachanwendung ihren Export nicht erzeugt oder lediglich eine Laufwerkszuordnung wegen fehlender AD-Gruppe fehlt. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei gruppenbasierter Berechtigung kann zusätzlich Benutzerkonten \u003e AD-Gruppen relevant sein.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Server, Backend und Plattformen \u003e Dateiablagen und Netzlaufwerke“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Server, Backend und Plattformen \u003e Dateiablagen und Netzlaufwerke"
],
"keywords": [
"Netzlaufwerk",
"Dateifreigabe",
"Fileserver",
"SMB",
"Ordnerberechtigung",
"Laufwerk",
"Ablage",
"Speicherplatz",
"Dateiablagen und Netzlaufwerke",
"Server, Backend und Plattformen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/server-backend-und-plattformen/dateiablagen-und-netzlaufwerke",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-DIGITALE-TAFELN-UND-PRASENTATIONSTECHNIK-SELECT",
"title": "Digitale Tafeln und Präsentationstechnik",
"text": "Auswahlziel: Schulspezifische IT-Systeme \u003e Digitale Tafeln und Präsentationstechnik. Primär zuständiges Team: Schulen. Diese Kategorie ist auszuwählen, wenn interaktive Tafeln, Displays, Beamer, Dokumentenkameras oder fest installierte Präsentationstechnik im Unterricht nicht funktioniert oder eingerichtet werden muss. Typische Ticketformulierungen sind: „Digitale Tafel reagiert nicht“; „Beamer im Klassenraum ohne Bild“; „Dokumentenkamera defekt“; „Interaktives Display kalibrieren“. Nicht auswählen, wenn nur ein normales Arbeitsplatzmonitorproblem, eine allgemeine Videokonferenz oder ein privates Endgerät betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Netzwerk- oder Backendursachen werden nach Erstprüfung an Infrastruktur weitergegeben.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Schulspezifische IT-Systeme \u003e Digitale Tafeln und Präsentationstechnik“ zuzuordnen. Primär zuständig ist „Schulen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Schulspezifische IT-Systeme \u003e Digitale Tafeln und Präsentationstechnik"
],
"keywords": [
"digitale Tafel",
"Whiteboard",
"Smartboard",
"Beamer",
"Dokumentenkamera",
"interaktives Display",
"Klassenraumtechnik",
"Digitale Tafeln und Präsentationstechnik",
"Schulspezifische IT-Systeme"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/schulspezifische-it-systeme/digitale-tafeln-und-prasentationstechnik",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-FACHANWENDUNG-BERECHTIGUNG-SELECT",
"title": "Fachanwendung Berechtigung",
"text": "Auswahlziel: Fachanwendungen und Microsoft Office \u003e Fachanwendung Berechtigung. Primär zuständiges Team: Fachanwendungen. Diese Kategorie ist auszuwählen, wenn Rollen, Rechte, Mandanten, Organisationseinheiten oder Funktionszugriffe innerhalb einer bestimmten Fachanwendung beantragt, geändert oder korrigiert werden sollen. Typische Ticketformulierungen sind: „Rolle Kassenverwalter vergeben“; „Zugriff auf Modul Personal“; „Mandant freischalten“; „Berechtigung im Fachverfahren fehlt“. Nicht auswählen, wenn das zentrale AD-Konto fehlt, das Kennwort gesperrt ist oder eine allgemeine AD-Gruppenmitgliedschaft ohne konkrete Anwendung betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Anwendung und genaue Soll-Rolle müssen genannt werden; Genehmigungswege bleiben unberührt.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Fachanwendungen und Microsoft Office \u003e Fachanwendung Berechtigung“ zuzuordnen. Primär zuständig ist „Fachanwendungen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Fachanwendungen und Microsoft Office \u003e Fachanwendung Berechtigung"
],
"keywords": [
"Fachanwendung Berechtigung",
"Rolle",
"Rechte",
"Freischaltung",
"Mandant",
"Modulzugriff",
"Benutzerrolle",
"Fachverfahren Zugriff",
"Fachanwendung Berechtigung",
"Fachanwendungen und Microsoft Office"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/fachanwendungen-und-microsoft-office/fachanwendung-berechtigung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-INTERNETZUGANG-SELECT",
"title": "Internetzugang",
"text": "Auswahlziel: Netzwerk und Verbindungen \u003e Internetzugang. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn Webseiten oder externe Dienste allgemein nicht erreichbar sind, der Internetzugang eines Standorts oder mehrerer Benutzer ausfällt oder auffällig langsam ist. Typische Ticketformulierungen sind: „Kein Internet im Gebäude“; „Externe Webseiten nicht erreichbar“; „Internetzugang sehr langsam“; „Mehrere Nutzer offline“. Nicht auswählen, wenn nur eine einzelne Anwendung gestört ist, ein VPN-Tunnel nicht verbindet oder eine konkrete Adresse durch die Firewall freigeschaltet werden soll. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Einzelne blockierte Ziele können eine Firewall-Thematik sein; flächige Ausfälle sind zu priorisieren.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Netzwerk und Verbindungen \u003e Internetzugang“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Netzwerk und Verbindungen \u003e Internetzugang"
],
"keywords": [
"Internet",
"Internetzugang",
"Webseiten nicht erreichbar",
"offline",
"WAN",
"Provider",
"Internetausfall",
"langsam",
"Netzwerk und Verbindungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/netzwerk-und-verbindungen/internetzugang",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,25 @@
{
"id": "KAT-LIZENZBESTELLUNG-SELECT",
"title": "Lizenzbestellung",
"text": "Auswahlziel: Beschaffung, Verträge und Lizenzen \u003e Lizenzbestellung. Primär zuständiges Team: Leitung und Finanzen / Beschaffung. Diese Kategorie ist auszuwählen, wenn zusätzliche Einzel-, Benutzer-, Geräte- oder Volumenlizenzen für bereits ausgewählte Produkte bestellt oder verlängert werden sollen. Typische Ticketformulierungen sind: „Zusätzliche Benutzerlizenz bestellen“; „Lizenz verlängern“; „Weitere Geräte lizenzieren“; „Volumenlizenz ergänzen“. Nicht auswählen, wenn nur die technische Aktivierung fehlschlägt, der gesamte Vertrag neu verhandelt oder der Lizenzbestand ausgewertet werden soll. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Produkt, Anzahl, Laufzeit, Kostenstelle und Genehmigung sollten angegeben werden.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Beschaffung, Verträge und Lizenzen \u003e Lizenzbestellung“ zuzuordnen. Primär zuständig ist „Leitung und Finanzen / Beschaffung“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Beschaffung, Verträge und Lizenzen \u003e Lizenzbestellung"
],
"keywords": [
"Lizenzbestellung",
"Lizenz bestellen",
"zusätzliche Lizenz",
"Seat",
"Subscription",
"Verlängerung",
"Volumenlizenz",
"Beschaffung, Verträge und Lizenzen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/beschaffung-vertrage-und-lizenzen/lizenzbestellung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-MULTIFUNKTIONSGERAT-UND-KOPIERER-SELECT",
"title": "Multifunktionsgerät und Kopierer",
"text": "Auswahlziel: Drucken, Scannen und Kopieren \u003e Multifunktionsgerät und Kopierer. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein Multifunktionsgerät oder Kopierer beim Drucken, Kopieren, Einzug, Bedienfeld oder Gerätebetrieb fehlerhaft ist. Typische Ticketformulierungen sind: „Kopierer zeigt Fehlercode“; „Dokumenteneinzug klemmt“; „MFP kopiert nicht“; „Bedienfeld reagiert nicht“. Nicht auswählen, wenn ausschließlich Scan-to-Mail, ein einzelner Arbeitsplatzdrucker oder eine Neubeschaffung betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Vertragspartner- oder Wartungseinsätze können durch Support koordiniert werden.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Drucken, Scannen und Kopieren \u003e Multifunktionsgerät und Kopierer“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Drucken, Scannen und Kopieren \u003e Multifunktionsgerät und Kopierer"
],
"keywords": [
"Kopierer",
"Multifunktionsgerät",
"MFP",
"Kopieren",
"Dokumenteneinzug",
"Fehlercode",
"Bedienfeld",
"Multifunktionsgerät und Kopierer",
"Drucken, Scannen und Kopieren"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/drucken-scannen-und-kopieren/multifunktionsgerat-und-kopierer",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-RUFGRUPPE-UND-WEITERLEITUNG-SELECT",
"title": "Rufgruppe und Weiterleitung",
"text": "Auswahlziel: Telefonie und Kommunikation \u003e Rufgruppe und Weiterleitung. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn Rufgruppen, Sammelanschlüsse, Vertretungen, Anrufweiterleitungen, Zeitsteuerungen oder Erreichbarkeitsregeln eingerichtet oder geändert werden sollen. Typische Ticketformulierungen sind: „Rufumleitung für Urlaub“; „Mitarbeiter in Rufgruppe aufnehmen“; „Sammelruf ändern“; „Zeitsteuerung der Zentrale“. Nicht auswählen, wenn eine neue Rufnummer benötigt wird, das Telefon physisch defekt ist oder eine E-Mail-Weiterleitung gemeint ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Gewünschte Quell- und Zielnummer sowie Zeitraum müssen klar angegeben werden.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Telefonie und Kommunikation \u003e Rufgruppe und Weiterleitung“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Telefonie und Kommunikation \u003e Rufgruppe und Weiterleitung"
],
"keywords": [
"Rufgruppe",
"Weiterleitung",
"Rufumleitung",
"Sammelruf",
"Vertretung",
"Anrufweiterleitung",
"Zeitsteuerung",
"Erreichbarkeit",
"Rufgruppe und Weiterleitung",
"Telefonie und Kommunikation"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/telefonie-und-kommunikation/rufgruppe-und-weiterleitung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-SICHERHEITSVORFALL-SELECT",
"title": "Sicherheitsvorfall",
"text": "Auswahlziel: IT-Sicherheit und Datensicherung \u003e Sicherheitsvorfall. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn ein tatsächlicher oder ernsthaft vermuteter unbefugter Zugriff, Datenabfluss, kompromittiertes Konto, Verlust sensibler Daten, aktive Attacke oder erhebliche Sicherheitsverletzung vorliegt. Typische Ticketformulierungen sind: „Konto möglicherweise übernommen“; „Unbefugter Zugriff festgestellt“; „Daten an falschen Empfänger“; „Aktiver Angriff“; „Dienstgerät mit sensiblen Daten verloren“. Nicht auswählen, wenn nur eine allgemeine Sicherheitsfrage, Schwachstellenmeldung ohne Ausnutzung oder verdächtige E-Mail ohne Interaktion vorliegt. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Unmittelbar priorisieren und Leitung sowie erforderliche Datenschutz-/Informationssicherheitsstellen nach internen Meldewegen beteiligen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „IT-Sicherheit und Datensicherung \u003e Sicherheitsvorfall“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"IT-Sicherheit und Datensicherung \u003e Sicherheitsvorfall"
],
"keywords": [
"Sicherheitsvorfall",
"Datenabfluss",
"kompromittiert",
"unbefugter Zugriff",
"Account übernommen",
"Cyberangriff",
"Datenverlust",
"Incident",
"Security Breach",
"IT-Sicherheit und Datensicherung"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/it-sicherheit-und-datensicherung/sicherheitsvorfall",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,29 @@
{
"id": "KAT-TASTATUR-MAUS-UND-ZUBEHOR-SELECT",
"title": "Tastatur, Maus und Zubehör",
"text": "Auswahlziel: Arbeitsplatz und Endgeräte \u003e Tastatur, Maus und Zubehör. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn Tastatur, Maus, Headset, Webcam, Netzteil, Adapter, Kabel oder sonstige Arbeitsplatzperipherie defekt, nicht erkannt oder nicht vorhanden ist. Typische Ticketformulierungen sind: „Maus reagiert nicht“; „Tastatur defekt“; „Webcam wird nicht erkannt“; „Headset ohne Ton“; „Netzteil fehlt“. Nicht auswählen, wenn ein komplettes Endgerät ausfällt, ein Telekommunikationsgerät betroffen ist oder eine Neubeschaffung außerhalb eines Ersatzfalls beantragt wird. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Einfache Ersatzteile bearbeitet der Support; kostenpflichtige Neubeschaffungen können an Beschaffung übergeben werden.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Arbeitsplatz und Endgeräte \u003e Tastatur, Maus und Zubehör“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Arbeitsplatz und Endgeräte \u003e Tastatur, Maus und Zubehör"
],
"keywords": [
"Tastatur",
"Maus",
"Headset",
"Webcam",
"Netzteil",
"Adapter",
"Kabel",
"USB-Gerät",
"Peripherie",
"Zubehör",
"Tastatur, Maus und Zubehör",
"Arbeitsplatz und Endgeräte"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/arbeitsplatz-und-endgerate/tastatur-maus-und-zubehor",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,30 @@
{
"id": "KAT-ANWENDUNGSBERECHTIGUNG-SELECT",
"title": "Anwendungsberechtigung",
"text": "Auswahlziel: Benutzerkonten und Berechtigungen \u003e Anwendungsberechtigung. Primär zuständiges Team: Fachanwendungen. Diese Kategorie ist auszuwählen, wenn ein Benutzer Zugriff, eine Rolle, ein Funktionsrecht oder eine organisatorische Zuordnung innerhalb einer konkreten Fachanwendung benötigt oder wenn eine vorhandene Berechtigung dort nicht korrekt wirkt. Typische Ticketformulierungen sind: „Rolle Sachbearbeitung fehlt“; „Kein Zugriff auf Modul Kasse“; „Berechtigung in Fachverfahren beantragen“; „Benutzer sieht falsche Organisationseinheit“. Nicht auswählen, wenn das zentrale Benutzerkonto selbst fehlt oder gesperrt ist; wenn eine AD-Gruppe oder GPO geändert werden soll; wenn der Zugriff technisch wegen Netzwerk, VPN oder Serverausfall scheitert. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Die betroffene Anwendung und die gewünschte Rolle sollten genannt werden. Technische Konten bleiben bei Infrastruktur und Backend.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Benutzerkonten und Berechtigungen \u003e Anwendungsberechtigung“ zuzuordnen. Primär zuständig ist „Fachanwendungen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Benutzerkonten und Berechtigungen \u003e Anwendungsberechtigung"
],
"keywords": [
"Berechtigung",
"Rolle",
"Zugriff",
"Freischaltung",
"Fachanwendung",
"Fachverfahren",
"Modul",
"Rechte",
"Benutzerrolle",
"Mandant",
"Organisationseinheit",
"Anwendungsberechtigung",
"Benutzerkonten und Berechtigungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/benutzerkonten-und-berechtigungen/anwendungsberechtigung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-COMPUTERRAUME-SELECT",
"title": "Computerräume",
"text": "Auswahlziel: Schulspezifische IT-Systeme \u003e Computerräume. Primär zuständiges Team: Schulen. Diese Kategorie ist auszuwählen, wenn mehrere PCs, Peripheriegeräte, Anmeldungen oder die technische Ausstattung eines Computerraums betroffen sind oder der Raum neu eingerichtet werden soll. Typische Ticketformulierungen sind: „Mehrere PCs im Computerraum starten nicht“; „Computerraum neu ausstatten“; „Schüler können sich im Raum nicht anmelden“; „Raumsoftware verteilen“. Nicht auswählen, wenn nur ein einzelner Lehrerarbeitsplatz oder eine allgemeine Standortstörung vorliegt. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Mehrgeräteprobleme sprechen oft für zentrale Richtlinien, Images oder Netzwerkursachen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Schulspezifische IT-Systeme \u003e Computerräume“ zuzuordnen. Primär zuständig ist „Schulen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Schulspezifische IT-Systeme \u003e Computerräume"
],
"keywords": [
"Computerraum",
"PC-Raum",
"Informatikraum",
"Schüler-PC",
"Raumausstattung",
"mehrere Rechner",
"Unterrichtsraum",
"Computerräume",
"Schulspezifische IT-Systeme"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/schulspezifische-it-systeme/computerraume",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-FACHANWENDUNG-KONFIGURATION-SELECT",
"title": "Fachanwendung Konfiguration",
"text": "Auswahlziel: Fachanwendungen und Microsoft Office \u003e Fachanwendung Konfiguration. Primär zuständiges Team: Fachanwendungen. Diese Kategorie ist auszuwählen, wenn Parameter, Vorlagen, Masken, Stammdaten, Nummernkreise, Workflows oder organisatorische Einstellungen einer Fachanwendung angepasst werden sollen. Typische Ticketformulierungen sind: „Neue Vorlage hinterlegen“; „Workflow anpassen“; „Stammdaten konfigurieren“; „Nummernkreis ändern“. Nicht auswählen, wenn nur ein einzelner Benutzer eine lokale Einstellung benötigt, eine neue umfangreiche Funktion gefordert wird oder die technische Serverplattform geändert werden muss. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Größere funktionale Erweiterungen gehören zu Neue Anforderung; technische Plattformparameter zu Infrastruktur und Backend.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Fachanwendungen und Microsoft Office \u003e Fachanwendung Konfiguration“ zuzuordnen. Primär zuständig ist „Fachanwendungen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Fachanwendungen und Microsoft Office \u003e Fachanwendung Konfiguration"
],
"keywords": [
"Konfiguration",
"Parameter",
"Vorlage",
"Stammdaten",
"Workflow",
"Maske anpassen",
"Nummernkreis",
"Einstellung Fachanwendung",
"Fachanwendung Konfiguration",
"Fachanwendungen und Microsoft Office"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/fachanwendungen-und-microsoft-office/fachanwendung-konfiguration",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-LIZENZVERWALTUNG-SELECT",
"title": "Lizenzverwaltung",
"text": "Auswahlziel: Beschaffung, Verträge und Lizenzen \u003e Lizenzverwaltung. Primär zuständiges Team: Leitung und Finanzen / Beschaffung. Diese Kategorie ist auszuwählen, wenn Lizenzbestände, Zuordnungen, Nutzungsrechte, Laufzeiten, Compliance oder verfügbare Kontingente dokumentiert und geprüft werden sollen. Typische Ticketformulierungen sind: „Lizenzbestand prüfen“; „Lizenz einem Benutzer zuordnen“; „Unterlizenzierung bewerten“; „Laufzeiten auswerten“. Nicht auswählen, wenn neue Lizenzen konkret bestellt oder eine technische Aktivierungsstörung behoben werden muss. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Technische Zuweisung kann durch Fachteam erfolgen; kaufmännischer Bestand bleibt bei Beschaffung.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Beschaffung, Verträge und Lizenzen \u003e Lizenzverwaltung“ zuzuordnen. Primär zuständig ist „Leitung und Finanzen / Beschaffung“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Beschaffung, Verträge und Lizenzen \u003e Lizenzverwaltung"
],
"keywords": [
"Lizenzverwaltung",
"Lizenzbestand",
"Compliance",
"Nutzungsrecht",
"Lizenzzuordnung",
"Kontingent",
"Ablaufdatum",
"Asset Management",
"Beschaffung, Verträge und Lizenzen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/beschaffung-vertrage-und-lizenzen/lizenzverwaltung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,29 @@
{
"id": "KAT-MOBILE-ENDGERATE-SELECT",
"title": "Mobile Endgeräte",
"text": "Auswahlziel: Arbeitsplatz und Endgeräte \u003e Mobile Endgeräte. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein dienstliches Smartphone oder Tablet eingerichtet, zurückgesetzt, ausgetauscht oder bei einem Geräte-, App-, Synchronisations- oder lokalen Bedienproblem unterstützt werden muss. Typische Ticketformulierungen sind: „Diensthandy lässt sich nicht entsperren“; „Tablet synchronisiert nicht“; „Smartphone einrichten“; „Mobiles Gerät zurücksetzen“. Nicht auswählen, wenn es um Mobilfunktarif, SIM-Karte oder Rufnummer geht; wenn MFA lediglich auf ein neues Gerät übertragen werden muss; wenn das Gerät neu beschafft werden soll. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: SIM- und Vertragsfragen gehören zu Telefonie und Kommunikation \u003e Mobilfunk. Sicherheitsrelevanter Verlust ist zusätzlich als Sicherheitsvorfall zu behandeln.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Arbeitsplatz und Endgeräte \u003e Mobile Endgeräte“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Arbeitsplatz und Endgeräte \u003e Mobile Endgeräte"
],
"keywords": [
"Smartphone",
"Diensthandy",
"Tablet",
"Mobilgerät",
"iPhone",
"Android",
"iPad",
"Synchronisation",
"Geräteeinrichtung",
"Zurücksetzen",
"Mobile Endgeräte",
"Arbeitsplatz und Endgeräte"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/arbeitsplatz-und-endgerate/mobile-endgerate",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,28 @@
{
"id": "KAT-MOBILFUNK-SELECT",
"title": "Mobilfunk",
"text": "Auswahlziel: Telefonie und Kommunikation \u003e Mobilfunk. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn SIM-Karte, Mobilfunktarif, Mobilfunkvertrag, Empfang, Roaming, mobile Daten oder eine dienstliche Mobilfunkrufnummer betroffen sind. Typische Ticketformulierungen sind: „SIM-Karte gesperrt“; „Kein Mobilfunkempfang“; „Roaming freischalten“; „Mobilfunktarif ändern“; „Neue eSIM“. Nicht auswählen, wenn das Smartphone selbst defekt ist, MFA übertragen werden soll oder eine reine App-/Geräteeinrichtung ohne Mobilfunkbezug vorliegt. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Kaufmännische Vertragsänderungen erfolgen in Abstimmung mit Beschaffung.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Telefonie und Kommunikation \u003e Mobilfunk“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Telefonie und Kommunikation \u003e Mobilfunk"
],
"keywords": [
"Mobilfunk",
"SIM-Karte",
"eSIM",
"Roaming",
"mobile Daten",
"Mobilfunkvertrag",
"Empfang",
"PIN",
"PUK",
"Handynummer",
"Telefonie und Kommunikation"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/telefonie-und-kommunikation/mobilfunk",
"language": "de-DE",
"communication_style": "formal"
}

26
knowledge/04_scanner.json Normal file
View File

@@ -0,0 +1,26 @@
{
"id": "KAT-SCANNER-SELECT",
"title": "Scanner",
"text": "Auswahlziel: Drucken, Scannen und Kopieren \u003e Scanner. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein Arbeitsplatz- oder Dokumentenscanner nicht erkannt wird, nicht scannt, Einzugsprobleme zeigt oder die lokale Scansoftware fehlerhaft ist. Typische Ticketformulierungen sind: „Scanner wird nicht erkannt“; „Dokumenteneinzug fehlerhaft“; „Scanprogramm startet nicht“; „Scandatei wird nicht erzeugt“. Nicht auswählen, wenn die zentrale Übertragung per Scan-to-Mail oder Scan-to-Folder scheitert oder ein Multifunktionsgerät insgesamt betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Übertragungsziele und zentrale Dienste werden in Scan-to-Mail und Scan-to-Folder erfasst.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Drucken, Scannen und Kopieren \u003e Scanner“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Drucken, Scannen und Kopieren \u003e Scanner"
],
"keywords": [
"Scanner",
"Scannen",
"Dokumentenscanner",
"Einzug",
"Scanprogramm",
"TWAIN",
"WIA",
"Scanfehler",
"Drucken, Scannen und Kopieren"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/drucken-scannen-und-kopieren/scanner",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-SCHWACHSTELLE-SELECT",
"title": "Schwachstelle",
"text": "Auswahlziel: IT-Sicherheit und Datensicherung \u003e Schwachstelle. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn eine bekannte oder vermutete Sicherheitslücke, unsichere Konfiguration, CVE, offene Angriffsfläche oder fehlende Härtung gemeldet, bewertet oder behoben werden soll. Typische Ticketformulierungen sind: „CVE betrifft Server“; „Unsichere TLS-Konfiguration“; „Offener Dienst entdeckt“; „System muss gehärtet werden“. Nicht auswählen, wenn bereits ein Angriff oder Datenabfluss stattgefunden hat, nur ein normales Update geplant ist oder Malware gefunden wurde. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei aktiver Ausnutzung wird daraus ein Sicherheitsvorfall; bei reinem Patchbedarf kann Sicherheitsupdate ergänzend passen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „IT-Sicherheit und Datensicherung \u003e Schwachstelle“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"IT-Sicherheit und Datensicherung \u003e Schwachstelle"
],
"keywords": [
"Schwachstelle",
"CVE",
"Vulnerability",
"Sicherheitslücke",
"Härtung",
"Hardening",
"unsichere Konfiguration",
"Exposure",
"IT-Sicherheit und Datensicherung"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/it-sicherheit-und-datensicherung/schwachstelle",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-SERVERBETRIEB-SELECT",
"title": "Serverbetrieb",
"text": "Auswahlziel: Server, Backend und Plattformen \u003e Serverbetrieb. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn ein Windows- oder Linux-Server als Betriebssystemplattform ausfällt, gewartet, gepatcht, konfiguriert oder analysiert werden muss. Typische Ticketformulierungen sind: „Server nicht erreichbar“; „Linux-Dienst startet nicht“; „Windows Server patchen“; „Serverleistung analysieren“. Nicht auswählen, wenn ausschließlich eine darauf laufende Fachanwendung, virtuelle Maschine, Datenbank, Containerplattform oder ein Arbeitsplatz-PC betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Die konkrete Anwendungsebene wird getrennt klassifiziert; diese Kategorie betrifft die Serverplattform selbst.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Server, Backend und Plattformen \u003e Serverbetrieb“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Server, Backend und Plattformen \u003e Serverbetrieb"
],
"keywords": [
"Server",
"Windows Server",
"Linux Server",
"Dienst",
"Systemdienst",
"Patchen",
"Serverausfall",
"Betriebssystem Server",
"Serverbetrieb",
"Server, Backend und Plattformen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/server-backend-und-plattformen/serverbetrieb",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-STANDORTANBINDUNG-SELECT",
"title": "Standortanbindung",
"text": "Auswahlziel: Netzwerk und Verbindungen \u003e Standortanbindung. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn eine Außenstelle, Schule, Verwaltungsstelle oder ein gesamtes Gebäude keine Verbindung zum kommunalen Netz oder Rechenzentrum hat beziehungsweise eine neue Standortverbindung benötigt. Typische Ticketformulierungen sind: „Außenstelle nicht erreichbar“; „Standortverbindung ausgefallen“; „Neue Liegenschaft anbinden“; „Gesamte Schule ohne Verwaltungsnetz“. Nicht auswählen, wenn nur ein einzelner Arbeitsplatz oder eine einzelne Netzwerkdose betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Standortausfälle betreffen meist mehrere Nutzer und sind höher zu priorisieren als Einzelplatzprobleme.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Netzwerk und Verbindungen \u003e Standortanbindung“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Netzwerk und Verbindungen \u003e Standortanbindung"
],
"keywords": [
"Standortanbindung",
"Außenstelle",
"Liegenschaft",
"Gebäude offline",
"Standleitung",
"WAN",
"Standortverbindung",
"MPLS",
"Glasfaser",
"Netzwerk und Verbindungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/netzwerk-und-verbindungen/standortanbindung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-STANDORTEROFFNUNG-UND-UMZUG-SELECT",
"title": "Standorteröffnung und Umzug",
"text": "Auswahlziel: Projekte, Änderungen und neue Anforderungen \u003e Standorteröffnung und Umzug. Primär zuständiges Team: Leitung und Finanzen / Beschaffung. Diese Kategorie ist auszuwählen, wenn eine neue Liegenschaft, Außenstelle, Schule oder ein größerer Gebäudebereich IT-seitig ausgestattet, angebunden oder vollständig umgezogen werden soll. Typische Ticketformulierungen sind: „Neue Außenstelle ausstatten“; „Verwaltungsbereich zieht um“; „Neues Gebäude ans Netz anbinden“; „Kompletter Standortwechsel“. Nicht auswählen, wenn nur ein einzelner Arbeitsplatz innerhalb eines Gebäudes umgesetzt oder eine bestehende Standortleitung gestört ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Die Leitung koordiniert; Infrastruktur, Support, Fachanwendungen, Telekommunikation und Beschaffung liefern Teilaufgaben.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Projekte, Änderungen und neue Anforderungen \u003e Standorteröffnung und Umzug“ zuzuordnen. Primär zuständig ist „Leitung und Finanzen / Beschaffung“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Projekte, Änderungen und neue Anforderungen \u003e Standorteröffnung und Umzug"
],
"keywords": [
"Standorteröffnung",
"Standortumzug",
"neue Liegenschaft",
"Außenstelle",
"Gebäudeumzug",
"IT-Ausstattung Standort",
"Umzugsprojekt",
"Standorteröffnung und Umzug",
"Projekte, Änderungen und neue Anforderungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/projekte-anderungen-und-neue-anforderungen/standorteroffnung-und-umzug",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,25 @@
{
"id": "KAT-DIENSTLICHES-SMARTPHONE-SELECT",
"title": "Dienstliches Smartphone",
"text": "Auswahlziel: Telefonie und Kommunikation \u003e Dienstliches Smartphone. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein dienstliches Smartphone als Telekommunikationsgerät neu eingerichtet, getauscht, repariert oder für Telefonie, Kontakte und dienstliche Kommunikation konfiguriert werden muss. Typische Ticketformulierungen sind: „Diensthandy einrichten“; „Smartphone austauschen“; „Kontakte synchronisieren“; „Telefon-App funktioniert nicht“. Nicht auswählen, wenn ausschließlich SIM, Tarif oder Roaming betroffen ist; wenn ein Tablet ohne Telefoniefunktion oder ein MFA-Token im Mittelpunkt steht. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Allgemeine mobile Endgeräteprobleme können zunächst beim Support bleiben; Mobilfunkvertrag und SIM sind separat.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Telefonie und Kommunikation \u003e Dienstliches Smartphone“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Telefonie und Kommunikation \u003e Dienstliches Smartphone"
],
"keywords": [
"Dienstliches Smartphone",
"Diensthandy",
"Telefon-App",
"Kontakte",
"Smartphone einrichten",
"Handytausch",
"Mobiltelefon",
"Telefonie und Kommunikation"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/telefonie-und-kommunikation/dienstliches-smartphone",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,25 @@
{
"id": "KAT-DIGITALISIERUNGSVORHABEN-SELECT",
"title": "Digitalisierungsvorhaben",
"text": "Auswahlziel: Projekte, Änderungen und neue Anforderungen \u003e Digitalisierungsvorhaben. Primär zuständiges Team: Leitung und Finanzen / Beschaffung. Diese Kategorie ist auszuwählen, wenn ein Verwaltungsprozess grundlegend digitalisiert, medienbruchfrei gestaltet oder durch mehrere IT-Komponenten neu unterstützt werden soll. Typische Ticketformulierungen sind: „Papierprozess digitalisieren“; „Digitalen Antrag einführen“; „Medienbruch beseitigen“; „End-to-End-Prozess neu gestalten“. Nicht auswählen, wenn lediglich eine kleine Funktion in einer bestehenden Anwendung ergänzt oder ein einzelnes Gerät beschafft wird. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Fachanwendungen übernimmt fachnahe Umsetzung; Leitung priorisiert und koordiniert organisationsübergreifend.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Projekte, Änderungen und neue Anforderungen \u003e Digitalisierungsvorhaben“ zuzuordnen. Primär zuständig ist „Leitung und Finanzen / Beschaffung“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Projekte, Änderungen und neue Anforderungen \u003e Digitalisierungsvorhaben"
],
"keywords": [
"Digitalisierungsvorhaben",
"digitaler Prozess",
"Online-Antrag",
"medienbruchfrei",
"Prozessdigitalisierung",
"E-Government",
"Workflow",
"Projekte, Änderungen und neue Anforderungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/projekte-anderungen-und-neue-anforderungen/digitalisierungsvorhaben",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,25 @@
{
"id": "KAT-DRUCKERTREIBER-SELECT",
"title": "Druckertreiber",
"text": "Auswahlziel: Drucken, Scannen und Kopieren \u003e Druckertreiber. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein Druckertreiber fehlt, fehlerhaft ist, aktualisiert werden muss oder falsche Papierfächer, Formate und Gerätefunktionen bereitstellt. Typische Ticketformulierungen sind: „Treiber lässt sich nicht installieren“; „Falsches Papierformat“; „Duplexoption fehlt“; „Druckertreiber aktualisieren“. Nicht auswählen, wenn der Drucker physisch defekt, das Netzwerk ausgefallen oder eine zentrale Druckserverplattform gestört ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Zentrale Treiberpakete können eine Abstimmung mit Infrastruktur und Backend erfordern.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Drucken, Scannen und Kopieren \u003e Druckertreiber“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Drucken, Scannen und Kopieren \u003e Druckertreiber"
],
"keywords": [
"Druckertreiber",
"Treiber",
"Printer Driver",
"Duplex",
"Papierfach",
"Druckerinstallation",
"Treiberfehler",
"Drucken, Scannen und Kopieren"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/drucken-scannen-und-kopieren/druckertreiber",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,29 @@
{
"id": "KAT-FACHANWENDUNG-SCHNITTSTELLE-UND-DATENAUSTAUSCH-SELECT",
"title": "Fachanwendung Schnittstelle und Datenaustausch",
"text": "Auswahlziel: Fachanwendungen und Microsoft Office \u003e Fachanwendung Schnittstelle und Datenaustausch. Primär zuständiges Team: Fachanwendungen. Diese Kategorie ist auszuwählen, wenn Import, Export, Webservice, Dateiübergabe oder Datenaustausch zwischen einer Fachanwendung und einem anderen System fehlschlägt oder neu eingerichtet werden soll. Typische Ticketformulierungen sind: „Importdatei wird abgewiesen“; „Export kommt nicht im Zielsystem an“; „Schnittstelle liefert Fehler“; „Datenaustausch einrichten“. Nicht auswählen, wenn nur die Netzwerkverbindung eines Standorts gestört ist, ein allgemeiner Dateiablagefehler vorliegt oder eine rein manuelle Auswertung benötigt wird. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei Firewall- oder Netzwerkfreischaltungen arbeitet Fachanwendungen mit Infrastruktur und Backend zusammen; fachliche Datenformate bleiben bei Fachanwendungen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Fachanwendungen und Microsoft Office \u003e Fachanwendung Schnittstelle und Datenaustausch“ zuzuordnen. Primär zuständig ist „Fachanwendungen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Fachanwendungen und Microsoft Office \u003e Fachanwendung Schnittstelle und Datenaustausch"
],
"keywords": [
"Schnittstelle",
"Datenaustausch",
"Import",
"Export",
"Webservice",
"API",
"Dateiübergabe",
"Interface",
"Übertragung",
"Fremdsystem",
"Fachanwendung Schnittstelle und Datenaustausch",
"Fachanwendungen und Microsoft Office"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/fachanwendungen-und-microsoft-office/fachanwendung-schnittstelle-und-datenaustausch",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-HYPERVISOR-SELECT",
"title": "Hypervisor",
"text": "Auswahlziel: Server, Backend und Plattformen \u003e Hypervisor. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn die Virtualisierungsplattform, Hosts, Cluster, Ressourcenverwaltung oder zentrale Hypervisor-Funktionen gestört, erweitert oder gewartet werden müssen. Typische Ticketformulierungen sind: „VMware-Host gestört“; „Hyper-V-Cluster meldet Fehler“; „Virtualisierungshost warten“; „Clusterressourcen knapp“. Nicht auswählen, wenn nur eine einzelne virtuelle Maschine betroffen ist oder ein Container- beziehungsweise Kubernetes-Problem vorliegt. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Einzelne VMs werden unter Virtuelle Maschinen erfasst; die Trägerschicht unter Hypervisor.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Server, Backend und Plattformen \u003e Hypervisor“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Server, Backend und Plattformen \u003e Hypervisor"
],
"keywords": [
"Hypervisor",
"VMware",
"vSphere",
"ESXi",
"Hyper-V",
"Virtualisierung",
"Host",
"Cluster",
"Proxmox",
"Server, Backend und Plattformen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/server-backend-und-plattformen/hypervisor",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,28 @@
{
"id": "KAT-REMOTEZUGRIFF-UND-VPN-SELECT",
"title": "Remotezugriff und VPN",
"text": "Auswahlziel: Benutzerkonten und Berechtigungen \u003e Remotezugriff und VPN. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn ein neuer oder geänderter Fernzugriff auf interne Systeme benötigt wird, ein VPN-Zugang beantragt werden soll oder Zugriffsrechte für Homeoffice, Bereitschaft oder externe Administration eingerichtet werden müssen. Typische Ticketformulierungen sind: „VPN-Zugang beantragen“; „Homeoffice-Zugriff freischalten“; „Remotezugriff für Bereitschaft“; „Externer Dienstleister benötigt zeitlich begrenzten Zugang“. Nicht auswählen, wenn ein bereits eingerichteter VPN-Tunnel technisch nicht verbindet; dafür ist die Kategorie Netzwerk und Verbindungen \u003e VPN vorgesehen. Ein allgemeines Kennwortproblem gehört zu Kennwort zurücksetzen. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Diese Kategorie beschreibt die Berechtigung beziehungsweise Bereitstellung. Technische Verbindungsstörungen eines vorhandenen VPN werden unter Netzwerk \u003e VPN erfasst.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Benutzerkonten und Berechtigungen \u003e Remotezugriff und VPN“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Benutzerkonten und Berechtigungen \u003e Remotezugriff und VPN"
],
"keywords": [
"Remotezugriff",
"Fernzugriff",
"VPN-Zugang",
"Homeoffice",
"Remote Access",
"Zugriff von außen",
"Bereitschaft",
"externer Zugriff",
"Freischaltung VPN",
"Remotezugriff und VPN",
"Benutzerkonten und Berechtigungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/benutzerkonten-und-berechtigungen/remotezugriff-und-vpn",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-SCHULER-UND-LEHRKRAFTEKONTEN-SELECT",
"title": "Schüler- und Lehrkräftekonten",
"text": "Auswahlziel: Schulspezifische IT-Systeme \u003e Schüler- und Lehrkräftekonten. Primär zuständiges Team: Schulen. Diese Kategorie ist auszuwählen, wenn Konten für Schüler, Lehrkräfte oder schulische Gruppen angelegt, geändert, zurückgesetzt, synchronisiert oder deaktiviert werden müssen. Typische Ticketformulierungen sind: „Schülerpasswort zurücksetzen“; „Lehrkraftkonto anlegen“; „Klassenwechsel synchronisieren“; „Schülerkonto deaktivieren“. Nicht auswählen, wenn es um kommunale Verwaltungsaccounts, reine Fachanwendungsrollen oder Konten externer Anbieter ohne Schulbezug geht. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei zentralem AD- oder Identitätsplattformproblem arbeitet Team Schulen mit Infrastruktur und Backend zusammen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Schulspezifische IT-Systeme \u003e Schüler- und Lehrkräftekonten“ zuzuordnen. Primär zuständig ist „Schulen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Schulspezifische IT-Systeme \u003e Schüler- und Lehrkräftekonten"
],
"keywords": [
"Schülerkonto",
"Lehrerkonto",
"Lehrkräftekonto",
"Schulaccount",
"Klassenkonto",
"Passwort Schule",
"Kontensynchronisation",
"Schüler- und Lehrkräftekonten",
"Schulspezifische IT-Systeme"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/schulspezifische-it-systeme/schuler-und-lehrkraftekonten",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,28 @@
{
"id": "KAT-SOFTWAREINSTALLATION-AM-ARBEITSPLATZ-SELECT",
"title": "Softwareinstallation am Arbeitsplatz",
"text": "Auswahlziel: Arbeitsplatz und Endgeräte \u003e Softwareinstallation am Arbeitsplatz. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn freigegebene Standardsoftware auf einem einzelnen Arbeitsplatz installiert, aktualisiert, repariert oder deinstalliert werden soll und keine zentrale Plattformänderung erforderlich ist. Typische Ticketformulierungen sind: „PDF-Programm installieren“; „Freigegebene Software fehlt“; „Client-Anwendung neu installieren“; „Programm deinstallieren“. Nicht auswählen, wenn eine neue, bisher nicht freigegebene Software beschafft oder fachlich eingeführt werden soll; wenn ein Server, Container oder eine größere Clientverteilung betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Neue oder lizenzpflichtige Software wird zunächst über Beschaffung beziehungsweise Fachanwendungen geprüft.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Arbeitsplatz und Endgeräte \u003e Softwareinstallation am Arbeitsplatz“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Arbeitsplatz und Endgeräte \u003e Softwareinstallation am Arbeitsplatz"
],
"keywords": [
"Softwareinstallation",
"Programm installieren",
"Anwendung installieren",
"Client",
"Setup",
"Deinstallation",
"Standardsoftware",
"Software fehlt",
"Neuinstallation",
"Softwareinstallation am Arbeitsplatz",
"Arbeitsplatz und Endgeräte"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/arbeitsplatz-und-endgerate/softwareinstallation-am-arbeitsplatz",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,25 @@
{
"id": "KAT-TELEKOMMUNIKATIONSVERTRAG-SELECT",
"title": "Telekommunikationsvertrag",
"text": "Auswahlziel: Beschaffung, Verträge und Lizenzen \u003e Telekommunikationsvertrag. Primär zuständiges Team: Leitung und Finanzen / Beschaffung. Diese Kategorie ist auszuwählen, wenn Mobilfunk-, Festnetz-, Datenleitungs- oder sonstige Telekommunikationsverträge neu abgeschlossen, verlängert, angepasst oder gekündigt werden sollen. Typische Ticketformulierungen sind: „Mobilfunkvertrag verlängern“; „Festnetzvertrag kündigen“; „Datentarif anpassen“; „Providerangebot prüfen“. Nicht auswählen, wenn eine technische Telefonstörung, SIM-Sperre oder Rufumleitung betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Technische Bedarfe werden mit Support und Infrastruktur abgestimmt.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Beschaffung, Verträge und Lizenzen \u003e Telekommunikationsvertrag“ zuzuordnen. Primär zuständig ist „Leitung und Finanzen / Beschaffung“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Beschaffung, Verträge und Lizenzen \u003e Telekommunikationsvertrag"
],
"keywords": [
"Telekommunikationsvertrag",
"Mobilfunkvertrag",
"Festnetzvertrag",
"Providervertrag",
"Tarif",
"Vertragsverlängerung",
"Kündigung",
"Beschaffung, Verträge und Lizenzen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/beschaffung-vertrage-und-lizenzen/telekommunikationsvertrag",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,28 @@
{
"id": "KAT-VIRENSCHUTZ-SELECT",
"title": "Virenschutz",
"text": "Auswahlziel: IT-Sicherheit und Datensicherung \u003e Virenschutz. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn Virenscanner oder EDR-Agent nicht läuft, Signaturen veraltet sind, Richtlinien nicht greifen, ein Agent fehlt oder Quarantäne- und Ausnahmeregeln administriert werden müssen. Typische Ticketformulierungen sind: „Virenscanner nicht aktiv“; „Signaturen veraltet“; „EDR-Agent offline“; „Ausnahme prüfen“; „Quarantäne verwalten“. Nicht auswählen, wenn bereits Malware gefunden wurde oder ein allgemeines Betriebssystemupdate betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Ein konkreter Schadsoftwarefund wird unter Schadsoftware und Virenfund klassifiziert.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „IT-Sicherheit und Datensicherung \u003e Virenschutz“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"IT-Sicherheit und Datensicherung \u003e Virenschutz"
],
"keywords": [
"Virenscanner",
"Antivirus",
"EDR",
"Signatur",
"Agent",
"Quarantäne",
"Ausnahme",
"Schutzstatus",
"Defender",
"Virenschutz",
"IT-Sicherheit und Datensicherung"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/it-sicherheit-und-datensicherung/virenschutz",
"language": "de-DE",
"communication_style": "formal"
}

26
knowledge/05_vpn.json Normal file
View File

@@ -0,0 +1,26 @@
{
"id": "KAT-VPN-SELECT",
"title": "VPN",
"text": "Auswahlziel: Netzwerk und Verbindungen \u003e VPN. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn ein bereits eingerichteter VPN-Tunnel technisch nicht aufgebaut wird, abbricht, keine internen Ziele erreicht oder eine Client- beziehungsweise Gateway-Fehlermeldung zeigt. Typische Ticketformulierungen sind: „VPN verbindet nicht“; „Tunnel bricht ab“; „Interne Laufwerke über VPN nicht erreichbar“; „VPN-Client meldet Fehler“. Nicht auswählen, wenn der VPN-Zugang erstmals beantragt oder berechtigt werden soll; dafür ist Benutzerkonten und Berechtigungen \u003e Remotezugriff und VPN vorgesehen. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Berechtigungsfragen und technische Störungen sind bewusst getrennt, um Fehlzuordnungen zu vermeiden.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Netzwerk und Verbindungen \u003e VPN“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Netzwerk und Verbindungen \u003e VPN"
],
"keywords": [
"VPN",
"Tunnel",
"VPN-Client",
"Remote Access",
"Verbindung von außen",
"Gateway",
"VPN Fehler",
"Homeoffice Verbindung",
"Netzwerk und Verbindungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/netzwerk-und-verbindungen/vpn",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,28 @@
{
"id": "KAT-BETRIEBSSYSTEM-AM-ARBEITSPLATZ-SELECT",
"title": "Betriebssystem am Arbeitsplatz",
"text": "Auswahlziel: Arbeitsplatz und Endgeräte \u003e Betriebssystem am Arbeitsplatz. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn Windows oder ein anderes Client-Betriebssystem an einem einzelnen Arbeitsplatz lokale Fehler zeigt, Updates scheitern, Anmeldung am Gerät fehlerhaft ist oder Systemeinstellungen repariert werden müssen. Typische Ticketformulierungen sind: „Windows-Update schlägt fehl“; „Benutzerprofil defekt“; „Startmenü funktioniert nicht“; „Lokale Anmeldung fehlerhaft“. Nicht auswählen, wenn die Ursache eine zentrale Gruppenrichtlinie, das Active Directory, eine flächige Update-Störung oder ein Serverbetriebssystem ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Zentrale Richtlinien und mehrere gleichzeitig betroffene Clients werden an Infrastruktur und Backend übergeben.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Arbeitsplatz und Endgeräte \u003e Betriebssystem am Arbeitsplatz“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Arbeitsplatz und Endgeräte \u003e Betriebssystem am Arbeitsplatz"
],
"keywords": [
"Windows",
"Betriebssystem",
"Client",
"Windows Update",
"Benutzerprofil",
"Startmenü",
"lokale Anmeldung",
"Systemfehler",
"Treiberproblem",
"Betriebssystem am Arbeitsplatz",
"Arbeitsplatz und Endgeräte"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/arbeitsplatz-und-endgerate/betriebssystem-am-arbeitsplatz",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,29 @@
{
"id": "KAT-DNS-UND-DHCP-SELECT",
"title": "DNS und DHCP",
"text": "Auswahlziel: Netzwerk und Verbindungen \u003e DNS und DHCP. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn Namensauflösung, DNS-Einträge, IP-Adressvergabe, DHCP-Leases, Reservierungen oder damit verbundene zentrale Netzwerkfunktionen fehlerhaft sind oder geändert werden sollen. Typische Ticketformulierungen sind: „Hostname wird nicht aufgelöst“; „Falsche IP-Adresse“; „DHCP-Reservierung anlegen“; „DNS-Eintrag ändern“. Nicht auswählen, wenn lediglich ein Benutzer keine Internetverbindung hat, eine Firewallfreigabe benötigt wird oder eine Fachanwendung einen eigenen Namensfehler meldet. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Einzelne Symptome ohne technische Hinweise sollten zunächst unter LAN, WLAN oder Internetzugang eingeordnet werden.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Netzwerk und Verbindungen \u003e DNS und DHCP“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Netzwerk und Verbindungen \u003e DNS und DHCP"
],
"keywords": [
"DNS",
"DHCP",
"Namensauflösung",
"IP-Adresse",
"Lease",
"Reservierung",
"Hostname",
"A-Record",
"CNAME",
"IP-Vergabe",
"DNS und DHCP",
"Netzwerk und Verbindungen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/netzwerk-und-verbindungen/dns-und-dhcp",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,28 @@
{
"id": "KAT-FACHANWENDUNG-BERICHT-UND-AUSWERTUNG-SELECT",
"title": "Fachanwendung Bericht und Auswertung",
"text": "Auswahlziel: Fachanwendungen und Microsoft Office \u003e Fachanwendung Bericht und Auswertung. Primär zuständiges Team: Fachanwendungen. Diese Kategorie ist auszuwählen, wenn ein vorhandener Bericht, eine Liste, Statistik, Druckausgabe oder fachliche Auswertung fehlerhaft ist, angepasst oder bereitgestellt werden soll. Typische Ticketformulierungen sind: „Bericht zeigt falsche Spalten“; „Statistik fehlt“; „Auswertung anpassen“; „Druckausgabe aus Fachverfahren fehlerhaft“. Nicht auswählen, wenn eine allgemeine Excel-Auswertung ohne Fachanwendungsbezug gemeint ist, ein Drucker physisch nicht druckt oder eine komplett neue Fachfunktion benötigt wird. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Dateninhalt und Filterlogik gehören zu Fachanwendungen; physische Druckprobleme zum Support.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Fachanwendungen und Microsoft Office \u003e Fachanwendung Bericht und Auswertung“ zuzuordnen. Primär zuständig ist „Fachanwendungen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Fachanwendungen und Microsoft Office \u003e Fachanwendung Bericht und Auswertung"
],
"keywords": [
"Bericht",
"Auswertung",
"Statistik",
"Liste",
"Reporting",
"Druckausgabe",
"Abfrage",
"Kennzahl",
"Fachanwendung Bericht",
"Fachanwendung Bericht und Auswertung",
"Fachanwendungen und Microsoft Office"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/fachanwendungen-und-microsoft-office/fachanwendung-bericht-und-auswertung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-MOBILE-SCHULGERATE-SELECT",
"title": "Mobile Schulgeräte",
"text": "Auswahlziel: Schulspezifische IT-Systeme \u003e Mobile Schulgeräte. Primär zuständiges Team: Schulen. Diese Kategorie ist auszuwählen, wenn schulische Tablets, Notebooks, Leihgeräte oder Gerätekoffer eingerichtet, ausgegeben, zurückgenommen, repariert oder im Unterricht unterstützt werden müssen. Typische Ticketformulierungen sind: „Schüler-iPad defekt“; „Tablet-Koffer einrichten“; „Leihgerät zurücknehmen“; „Schulnotebook startet nicht“. Nicht auswählen, wenn ausschließlich das zentrale MDM, ein privates Gerät oder ein allgemeines Verwaltungs-Smartphone betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: MDM-Profil- und Plattformprobleme werden in Mobile-Device-Management für Schulen erfasst.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Schulspezifische IT-Systeme \u003e Mobile Schulgeräte“ zuzuordnen. Primär zuständig ist „Schulen“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Schulspezifische IT-Systeme \u003e Mobile Schulgeräte"
],
"keywords": [
"Schultablet",
"Schul-iPad",
"Leihgerät",
"Tablet-Koffer",
"Schulnotebook",
"mobiles Schulgerät",
"Schülergerät",
"Mobile Schulgeräte",
"Schulspezifische IT-Systeme"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/schulspezifische-it-systeme/mobile-schulgerate",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-SCAN-TO-MAIL-UND-SCAN-TO-FOLDER-SELECT",
"title": "Scan-to-Mail und Scan-to-Folder",
"text": "Auswahlziel: Drucken, Scannen und Kopieren \u003e Scan-to-Mail und Scan-to-Folder. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn ein Scanner oder Multifunktionsgerät Scans nicht per E-Mail versendet oder nicht in einen zentralen Ordner ablegt, obwohl das Scannen selbst funktioniert. Typische Ticketformulierungen sind: „Scan kommt nicht per Mail an“; „Scan-to-Folder schlägt fehl“; „Zielordner nicht erreichbar“; „SMTP-Fehler am Kopierer“. Nicht auswählen, wenn das Gerät generell nicht scannt, das E-Mail-System organisationsweit ausfällt oder eine allgemeine Dateifreigabe gestört ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Support übernimmt Erstprüfung; Mail-, Netzwerk- und Dateidienste werden bei zentraler Ursache an Infrastruktur übergeben.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Drucken, Scannen und Kopieren \u003e Scan-to-Mail und Scan-to-Folder“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Drucken, Scannen und Kopieren \u003e Scan-to-Mail und Scan-to-Folder"
],
"keywords": [
"Scan-to-Mail",
"Scan-to-Folder",
"SMTP",
"Zielordner",
"Scanversand",
"Netzwerkordner",
"Scannen per E-Mail",
"Scan-to-Mail und Scan-to-Folder",
"Drucken, Scannen und Kopieren"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/drucken-scannen-und-kopieren/scan-to-mail-und-scan-to-folder",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-SICHERHEITSUPDATE-SELECT",
"title": "Sicherheitsupdate",
"text": "Auswahlziel: IT-Sicherheit und Datensicherung \u003e Sicherheitsupdate. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn ein sicherheitskritischer Patch, Herstellerhinweis oder dringendes Update bewertet, getestet und zeitnah auf Servern, Plattformen oder zentralen Komponenten ausgerollt werden soll. Typische Ticketformulierungen sind: „Kritischen Patch einspielen“; „Hersteller meldet Security Update“; „Zero-Day-Patch planen“; „Sicherheitsaktualisierung verteilen“. Nicht auswählen, wenn es um ein reguläres Fachanwendungsrelease, ein einzelnes Clientupdate ohne Sicherheitsbezug oder eine bereits ausgenutzte Schwachstelle geht. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei bestätigter aktiver Ausnutzung zusätzlich Sicherheitsvorfall wählen.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „IT-Sicherheit und Datensicherung \u003e Sicherheitsupdate“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"IT-Sicherheit und Datensicherung \u003e Sicherheitsupdate"
],
"keywords": [
"Sicherheitsupdate",
"Security Patch",
"kritischer Patch",
"Zero Day",
"CVE Patch",
"Update",
"Herstellerwarnung",
"Patchmanagement",
"IT-Sicherheit und Datensicherung"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/it-sicherheit-und-datensicherung/sicherheitsupdate",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-VIDEOKONFERENZ-SELECT",
"title": "Videokonferenz",
"text": "Auswahlziel: Telefonie und Kommunikation \u003e Videokonferenz. Primär zuständiges Team: Support und Telekommunikation. Diese Kategorie ist auszuwählen, wenn Teilnahme, Kamera, Mikrofon, Lautsprecher, Bildschirmfreigabe oder Bedienung bei einer Videokonferenz am Arbeitsplatz nicht funktioniert. Typische Ticketformulierungen sind: „Kamera in Besprechung nicht verfügbar“; „Mikrofon wird nicht erkannt“; „Keine Tonwiedergabe in Videokonferenz“; „Bildschirmfreigabe klappt nicht“. Nicht auswählen, wenn ein zentrales Konferenzsystem, Netzwerkstandort oder eine Fachanwendung ohne Konferenzbezug betroffen ist. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Bei vielen gleichzeitig Betroffenen oder zentralem Dienstausfall an Infrastruktur beziehungsweise zuständige Plattformbetreuung übergeben.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Telefonie und Kommunikation \u003e Videokonferenz“ zuzuordnen. Primär zuständig ist „Support und Telekommunikation“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Telefonie und Kommunikation \u003e Videokonferenz"
],
"keywords": [
"Videokonferenz",
"Kamera",
"Mikrofon",
"Besprechung",
"Meeting",
"Bildschirmfreigabe",
"Teams-Konferenz",
"Webex",
"Zoom",
"Telefonie und Kommunikation"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/telefonie-und-kommunikation/videokonferenz",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-VIRTUELLE-MASCHINEN-SELECT",
"title": "Virtuelle Maschinen",
"text": "Auswahlziel: Server, Backend und Plattformen \u003e Virtuelle Maschinen. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn eine konkrete virtuelle Maschine neu bereitgestellt, geändert, vergrößert, geklont, gestartet, wiederhergestellt oder bei einem VM-spezifischen Fehler bearbeitet werden soll. Typische Ticketformulierungen sind: „Neue VM bereitstellen“; „Virtuelle Maschine startet nicht“; „RAM oder CPU erhöhen“; „VM klonen“. Nicht auswählen, wenn der gesamte Hypervisor-Cluster betroffen ist, nur die Anwendung in der VM fehlerhaft ist oder ein Container benötigt wird. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Betriebssystem- und Anwendungsprobleme innerhalb der VM sind getrennt zu betrachten.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Server, Backend und Plattformen \u003e Virtuelle Maschinen“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Server, Backend und Plattformen \u003e Virtuelle Maschinen"
],
"keywords": [
"virtuelle Maschine",
"VM",
"vCPU",
"virtueller Server",
"VM bereitstellen",
"VM startet nicht",
"Snapshot",
"Ressourcen erhöhen",
"Virtuelle Maschinen",
"Server, Backend und Plattformen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/server-backend-und-plattformen/virtuelle-maschinen",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,27 @@
{
"id": "KAT-WARTUNGS-UND-SUPPORTVERTRAG-SELECT",
"title": "Wartungs- und Supportvertrag",
"text": "Auswahlziel: Beschaffung, Verträge und Lizenzen \u003e Wartungs- und Supportvertrag. Primär zuständiges Team: Leitung und Finanzen / Beschaffung. Diese Kategorie ist auszuwählen, wenn Wartungs-, Pflege-, Hersteller- oder Supportverträge abgeschlossen, verlängert, angepasst, geprüft oder gekündigt werden sollen. Typische Ticketformulierungen sind: „Wartungsvertrag verlängern“; „Herstellersupport beauftragen“; „Pflegevertrag prüfen“; „Supportvertrag kündigen“. Nicht auswählen, wenn ein konkreter technischer Supportfall beim Hersteller eröffnet oder eine Rechnung ohne Vertragsänderung geprüft wird. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Leistungsumfang, Laufzeit, Kündigungsfrist und zuständiges Fachteam sind zu dokumentieren.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Beschaffung, Verträge und Lizenzen \u003e Wartungs- und Supportvertrag“ zuzuordnen. Primär zuständig ist „Leitung und Finanzen / Beschaffung“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Beschaffung, Verträge und Lizenzen \u003e Wartungs- und Supportvertrag"
],
"keywords": [
"Wartungsvertrag",
"Supportvertrag",
"Pflegevertrag",
"Herstellersupport",
"Verlängerung",
"Kündigung",
"SLA",
"Maintenance",
"Wartungs- und Supportvertrag",
"Beschaffung, Verträge und Lizenzen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/beschaffung-vertrage-und-lizenzen/wartungs-und-supportvertrag",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-ANGEBOT-UND-WIRTSCHAFTLICHKEITSPRUFUNG-SELECT",
"title": "Angebot und Wirtschaftlichkeitsprüfung",
"text": "Auswahlziel: Beschaffung, Verträge und Lizenzen \u003e Angebot und Wirtschaftlichkeitsprüfung. Primär zuständiges Team: Leitung und Finanzen / Beschaffung. Diese Kategorie ist auszuwählen, wenn Angebote eingeholt, Preise verglichen, Wirtschaftlichkeit bewertet, Vergabevermerke vorbereitet oder Beschaffungsvarianten kaufmännisch geprüft werden sollen. Typische Ticketformulierungen sind: „Drei Angebote vergleichen“; „Wirtschaftlichkeitsbetrachtung erstellen“; „Vergabe vorbereiten“; „Kostenvarianten bewerten“. Nicht auswählen, wenn die technische Produktauswahl allein im Vordergrund steht oder bereits eine Rechnung zur Zahlung vorliegt. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Technische Bewertung erfolgt durch das zuständige Fachteam; kaufmännische und vergaberechtliche Bewertung durch Beschaffung.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „Beschaffung, Verträge und Lizenzen \u003e Angebot und Wirtschaftlichkeitsprüfung“ zuzuordnen. Primär zuständig ist „Leitung und Finanzen / Beschaffung“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"Beschaffung, Verträge und Lizenzen \u003e Angebot und Wirtschaftlichkeitsprüfung"
],
"keywords": [
"Angebot",
"Preisvergleich",
"Wirtschaftlichkeit",
"Vergabe",
"Vergabevermerk",
"Kostenvergleich",
"Markterkundung",
"Angebot und Wirtschaftlichkeitsprüfung",
"Beschaffung, Verträge und Lizenzen"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/beschaffung-vertrage-und-lizenzen/angebot-und-wirtschaftlichkeitsprufung",
"language": "de-DE",
"communication_style": "formal"
}

View File

@@ -0,0 +1,26 @@
{
"id": "KAT-DATENSICHERUNG-SELECT",
"title": "Datensicherung",
"text": "Auswahlziel: IT-Sicherheit und Datensicherung \u003e Datensicherung. Primär zuständiges Team: Infrastruktur und Backend. Diese Kategorie ist auszuwählen, wenn Backup-Jobs fehlschlagen, Sicherungspläne, Aufbewahrung, Sicherungsziele, Kapazitäten oder Backup-Konzepte eingerichtet, geändert oder geprüft werden müssen. Typische Ticketformulierungen sind: „Backup fehlgeschlagen“; „Sicherungsjob rot“; „Aufbewahrung ändern“; „Neues System in Datensicherung aufnehmen“. Nicht auswählen, wenn konkrete Daten wiederhergestellt werden sollen oder eine Fachanwendung lediglich keine Exportdatei erzeugt. Für die Klassifizierung sind der konkret betroffene Dienst oder Gegenstand, die Fehlermeldung, die Anzahl betroffener Personen, der Standort sowie die Unterscheidung zwischen Störung, Berechtigung, Bestellung und Änderungswunsch besonders wichtig. Einzelne unspezifische Wörter wie „geht nicht“, „Problem“ oder „dringend“ reichen ohne Sachbezug nicht für diese Zuordnung aus. Abgrenzungsregel: Wiederherstellungsanforderungen werden getrennt unter Datenwiederherstellung erfasst.",
"answer": "Interne Klassifizierung: Das Ticket ist der Kategorie „IT-Sicherheit und Datensicherung \u003e Datensicherung“ zuzuordnen. Primär zuständig ist „Infrastruktur und Backend“. Vor der endgültigen Zuweisung sind die genannten Ausschlusskriterien und Schnittstellen zu prüfen.",
"auto_reply": false,
"min_score": 0.7,
"categories": [
"IT-Sicherheit und Datensicherung \u003e Datensicherung"
],
"keywords": [
"Datensicherung",
"Backup",
"Sicherungsjob",
"Aufbewahrung",
"Retention",
"Backupziel",
"Sicherungskonzept",
"Backup fehlgeschlagen",
"IT-Sicherheit und Datensicherung"
],
"source": "internal-category",
"source_uri": "kb://internal-kb/glpi-kategorien/it-sicherheit-und-datensicherung/datensicherung",
"language": "de-DE",
"communication_style": "formal"
}

Some files were not shown because too many files have changed in this diff Show More