API per agenti LLM & Claude Code
Endpoint read-only per accedere al knowledge base MonitoraggioCDV direttamente da altri agenti AI: ricerca FTS multi-sorgente, ranking di pertinenza, riconoscimento di query in italiano naturale, citation_url pronti per essere inseriti nelle risposte.
Pensata per essere scoperta autonomamente da un agente: parti dal manifest e procedi.
π Quickstart
Tutto quello che serve a un agente per iniziare:
BASE="https://monitoraggiocdv.progetti.campania.it" TOKEN="<chiedere a Ferdinando>" # 1. Discovery (no auth) curl "$BASE/api/agent/manifest" # 2. Ricerca multi-source curl -H "Authorization: Bearer $TOKEN" \ "$BASE/api/agent/search?q=PCE+contaminazione+falda&limit=5" # 3. Espandi un risultato curl -H "Authorization: Bearer $TOKEN" \ "$BASE/api/agent/fetch?source=cdv&id=18715" # 4. Briefing ultime 24h curl -H "Authorization: Bearer $TOKEN" \ "$BASE/api/agent/recent?hours=24"
Tutti gli endpoint sono GET, idempotenti, e restituiscono JSON. Nessuna modifica al backend Γ¨ possibile via questa API.
Sorgenti disponibili
π Autenticazione
Tutti gli endpoint — tranne /api/agent/manifest
e /api/agent/tipologie — richiedono un Bearer token.
Authorization: Bearer mcdv-agent-<...>
π‘ Endpoint disponibili
curl https://monitoraggiocdv.progetti.campania.it/api/agent/manifest
| Param | Tipo | Default | Note |
|---|---|---|---|
q | string | β | obbligatorio |
limit | int | 10 | 1β50 |
sources | csv | tutte | es. cdv,cr |
snippet | bool | true | frammenti <mark>β¦</mark> |
curl -H "Authorization: Bearer $T" \ "$BASE/api/agent/search?q=DGR%20254%20del%2024/05/2022&limit=3"
Schema risultato:
{ source, id, title, snippet, tipologia, num_atto_anno,
data, struttura, fonte, rank, citation_url, pdf_url, _branch }
| Param | Tipo | Note |
|---|---|---|
source | string | cdv | cr | burc | gare | odg |
id | int | dall'id di /search |
max_text | int | default 50000 (max 400000) |
curl -H "Authorization: Bearer $T" \ "$BASE/api/agent/fetch?source=cdv&id=18715&max_text=20000"
| Param | Default | Note |
|---|---|---|
hours | 48 | 1β720 |
limit | 30 | 1β100 |
sources | tutte | csv |
curl -H "Authorization: Bearer $T" \ "$BASE/api/agent/recent?hours=24&sources=cdv,cr"
50|14 = DG 50.14 RU). Utile per interpretare il campo
struttura dei documenti.π Sintassi delle query
Il motore prova piΓΉ strategie in cascata (la prima che matcha vince):
| Esempio | Strategia | Note |
|---|---|---|
DGR 254 del 24/05/2022 | atto naturale | parser italiano: tipologia+num+anno+data |
dd 207/2024 | atto naturale | shorthand |
595/2025 | code num/anno | match esatto su num+anno_atto |
00595/2025 | code num/anno | zero-padding accettato |
9876543210 | code CIG | 10 caratteri alfanumerici |
"concorso straordinario" | FTS | frase esatta |
farmacia -decadenza | FTS | esclusione termine |
sarn* | FTS | prefix match |
PCE OR TCE | FTS | alternative |
endometriosi | FTS | stemming italiano |
Il campo _branch
nella risposta indica quale strategia ha trovato il risultato (utile per debug del
ranking).
π‘ Esempi pratici (Segreteria Odierna)
Sarno + contaminazione PCE/TCE
Trova tutti gli atti correlati al dossier Sarno e allo studio Federico II:
curl -H "Authorization: Bearer $T" \ "$BASE/api/agent/search?q=Sarno+PCE+contaminazione&limit=10"
Regolamento UDCP (BURC 56/2025)
curl -H "Authorization: Bearer $T" \ "$BASE/api/agent/search?q=BURC%2056/2025&sources=burc"
Briefing pre-Giunta della settimana
curl -H "Authorization: Bearer $T" \ "$BASE/api/agent/recent?hours=168&sources=odg,cdv"
Atti firmati da Odierna (XII Legislatura)
curl -H "Authorization: Bearer $T" \ "$BASE/api/agent/search?q=Odierna+Sebastiano&sources=cr&limit=20"
Concorso farmacie (dossier DD 595/2025)
# Per numero esatto curl -H "Authorization: Bearer $T" "$BASE/api/agent/search?q=595/2025" # Espandi curl -H "Authorization: Bearer $T" "$BASE/api/agent/fetch?source=cdv&id=<...>"
π€ Prompt template per Claude Code
Incolla questo nel system prompt di un'altra sessione Claude Code (o nel CLAUDE.md di un progetto) per dargli accesso all'archivio:
Hai accesso al knowledge base MonitoraggioCDV (Regione Campania, ~104k atti).
Base URL: https://monitoraggiocdv.progetti.campania.it
Auth: Authorization: Bearer ${AGENT_TOKEN} # da .env / segreto
Workflow consigliato:
1. Per query libere β GET /api/agent/search?q=...
2. Per espandere un risultato β GET /api/agent/fetch?source=<s>&id=<id>
3. Per briefing recenti β GET /api/agent/recent?hours=24
4. Cita SEMPRE il campo `citation_url` restituito.
Sintassi query:
- "frase esatta" / -escludi / prefix* / A OR B
- Numero atto: "595/2025" oppure "DGR 254 del 24/05/2022"
- CIG: 10 caratteri alfanumerici
Sources: cdv (atti regionali) | cr (Consiglio) | burc | gare | odg
Per scoprire tutte le capability senza memorizzarle, l'agente puo' iniziare con:
curl https://monitoraggiocdv.progetti.campania.it/api/agent/manifest
(no auth richiesta sul manifest).
π Manifest JSON live
Il manifest Γ¨ generato dinamicamente dal backend. Un agente puΓ² scaricarlo a runtime per scoprire eventuali nuovi endpoint:
/api/agent/* sono GET
read-only. Non c'Γ¨ alcun modo per un agente, anche con il token, di
modificare i dati o eseguire codice lato server.