Antworten aus deinen eigenen Dokumenten.
Bis auf die Seite genau.
Lade Dateien hoch oder synchronisiere Quellen wie Notion und Confluence. Deine Agenten durchsuchen sie nach Bedeutung, mit Tools, die du im Code eingrenzt.
Hochladen, synchronisieren oder aus einem Tool schreiben. Alles landet in einem Index.
Die Inhalte liegen in Namespaces wie policies.hr.leave. Ingestion Activity zeigt jeden Job, bis er durchsuchbar ist.
- Dateien und Text
- PDFs, Bilder, Markdown, CSV, JSON, YAML, Text und Logs, über das Dashboard oder die REST API. PDF-Treffer behalten ihre Seitenzahl, Bilder liest vorher eine Bilderkennung aus.
- Synchronisierte Quellen
- Notion, Confluence, Zendesk Help Center, Websites und mehr, nach deinem Zeitplan.
- Schreibzugriffe deiner Agenten
retrieval_storereiht Text aus einem Tool ein, etwa eine Zusammenfassung des Agenten.retrieval_deletelöscht Einträge per ID, Namespace oder Metadatenfilter.
Verbundene Quellen bleiben von selbst aktuell.
Jeder Sync verarbeitet nur, was sich geändert hat. Und du entscheidest, ob an der Quelle gelöschte Seiten auch aus dem Index verschwinden.
Jeden Agenten auf seine Namespaces beschränken.
Kapsle retrieval_query in ein Tool mit genau einer Aufgabe. Das KI-Modell stellt die Frage, den Rest entscheidet dein Code.
- Ein Tool für genau einen Zweck
- Das Modell sieht nur
search_policies(question). Namespace, Mindest-Score und Trefferzahl stehen fest im Python-Code. - Per Konfiguration schreibgeschützt
- Der Block
retrievalbeschränkt hr-assistant aufpolicies.hrund sperrtretrieval_storeundretrieval_delete, auch aus eigenen Tools. - Quellenangaben in jedem Treffer
- Jeder Treffer bringt Entry ID, Namespace, Score und Metadaten mit, bei PDFs auch die Seite. So kann jede Antwort ihre Quelle nennen.
version: "1.0"
name: hr-assistant
description: Answers employee questions from HR policies
model: connic/gpt-5.6-terra
system_prompt: |
Answer only from search_policies results.
Cite the source and page for every fact.
tools:
- handbook.search_policies
retrieval:
namespaces: [policies.hr]
prevent_write: true
prevent_delete: truefrom connic.tools import retrieval_query
async def search_policies(question: str) -> list[dict]:
"""Search the HR handbook and HR wiki for passages that answer a question.
Args:
question: The employee's question in their own words
"""
result = await retrieval_query(
query=question,
namespace="policies.hr",
min_score=0.35,
max_results=4,
)
return [
{
"passage": item["content"],
"source": item["entry_id"],
"page": item.get("page_number"),
}
for item in result["results"]
]Neue Inhalte zuerst in Staging testen.
Jedes Environment hat einen eigenen Index: Staging indexiert schon das Handbuch fürs nächste Jahr, während die Produktivumgebung aus dem aktuellen antwortet. Fertige Namespaces holst du mit Copy from other env herüber.
$ curl -X POST "https://api.connic.co/v1/projects/$PROJECT_ID/retrieval/file" \ --url-query "environment_id=$STAGING_ENV_ID" \ --url-query "namespace=policies.hr" \ -H "Authorization: Bearer $CONNIC_API_KEY" \ -F "file=@employee-handbook-2027.pdf"{"job_id": "9c41e2d0-6b7a-4f1e-a8d3-2f5b7c0e9a14", "status": "pending", "entry_id": "employee-handbook-2027.pdf"}