Zum Hauptinhalt springen
connic

Den Agentencode behalten.
Den Stack drumherum ablösen.

Zieh deine Agenten von eigenen Containern, Cluster und Tracing zu connic um, einen nach dem anderen und egal mit welchem Framework. Deine Python-Tools kommen mit, private Datenbanken bleiben in deinem Netzwerk.

contract-review/
HeuteAuf connic
  • agent.pyagents/contract-review.yamlumgewandelt
  • contracts.pytools/contracts.pybleibt
  • requirements.txtrequirements.txtbleibt
  • server.pyconnectors/review-requests.yamlersetzt
  • tracing.pyentfällt
  • Dockerfileentfällt
  • k8s/deployment.yamlentfällt
  • k8s/hpa.yamlentfällt
  • .github/workflows/deploy.ymlentfällt
  • grafana/agent-dashboard.jsonentfällt

Builds, Skalierung, Retries und Tracing bringt connic mit.

Ein selbst betriebenes Agentenprojekt besteht meist aus Infrastruktur rund um ein paar Python-Dateien. Diese Infrastruktur übernimmt connic, Stück für Stück.

  • Dockerfile, k8s/deployment.yamlDeployments

    connic installiert requirements.txt und baut ein Deployment bei jedem Push auf einen zugeordneten Branch oder mit connic deploy.

  • k8s/hpa.yamlmax_concurrent_runs

    Eine Zeile in der Agentendatei begrenzt parallele Runs, bis zum Limit deines Tarifs. Replicas musst du nicht dimensionieren.

  • server.pyconnectors/

    Webhook, Kafka, SQS, E-Mail und mehr, als YAML definiert und beim Deployment auf jedes Environment angewendet.

  • @retry(...)retry_options

    Eine fehlgeschlagene Modellanfrage wird genau an dieser Stelle wiederholt oder wechselt zum fallback_model. Fertige Tool-Aufrufe behalten ihr Ergebnis.

  • .env, k8s/secret.yamlVariablen je Environment

    Secrets liegen verschlüsselt pro Environment, und deine Tools lesen sie wie gewohnt über os.environ.

  • tracing.pyRuns und Traces

    Jeder Run zeichnet Modell- und Tool-Aufrufe, Tokens und Kosten auf. Ein eigenes Tracing-Setup brauchst du nicht mehr.

  • .github/workflows/deploy.ymlDeploy Gate

    Liegt tests/ im Projekt, geht ein Deployment erst live, wenn jeder Testfall besteht.

  • runbooks/rollback.mdActivate

    Aktiviere ein früheres erfolgreiches Deployment. Es läuft wieder, ohne neuen Build.

Deine Tools bleiben Python. Der Agent wird eine YAML-Datei.

Prompt, KI-Modell und Tool-Liste kommen in eine Agentendatei, deine Tool-Funktionen nach tools/. Bei LangChain oder Google ADK schreibt connic migrate beides für dich.

Aus jedem Framework
Ein Tool ist eine normale Python-Funktion mit Type Hints und Docstring. Framework-Decorators fallen weg, die Logik bleibt, wie sie ist.
LangChain und Google ADK mit einem Befehl
connic migrate wandelt Agentendefinitionen, Tool-Funktionen samt Hilfsfunktionen, statische Prompts und Modellnamen um und prüft das Ergebnis mit connic lint.
Mit connic neu gebaut
Graph-Workflows, Checkpointer, dynamische Prompts und Retrieval-Chains werden zu sequenziellen Agenten, Sessions, Retrieval oder eigenen Tools.
Dein OpenAI-Schlüssel funktioniert weiter
openai/gpt-4.1 läuft mit deinem eigenen Schlüssel. Der Wechsel zu einem connic/*-Modell ist eine Zeile.
agents/contract-review.yaml
version: '1.0'
name: contract-review
type: llm
description: Flag clauses that break the legal playbook.
model: openai/gpt-4.1
system_prompt: Flag clauses that break the legal playbook.
tools:
- contracts.fetch_contract
- contracts.find_clauses
- contracts.flag_risk
~
$ connic migrate --source ./contract-review --dest ./contract-review-connic
→ Scanning source project...
✓ Framework: langchain
✓ Agents found: 1
✓ Tools found: 3
- Detected LangChain/LangGraph/LangSmith imports.
→ Generating connic project...
✓ Generated at /home/dev/contract-review-connic
→ Running connic lint on the migrated project...
✓ Lint passed: 1 agent(s) validated (contract-review)
Report: /home/dev/contract-review-connic/MIGRATION_REPORT.md
Follow-up items were recorded in the migration report.
✓ Migration complete.

Die Datenbank bleibt in deinem Netzwerk.

Eine connic Bridge neben der Datenbank baut einen ausgehenden Tunnel zu connic auf. Das migrierte Tool behält seinen Postgres-Client, nur der Host ändert sich.

Nur erlauben, was der Agent braucht
ALLOWED_HOSTS gibt dieser Bridge nur contracts-db:5432 frei, nicht ihr ganzes Netzwerk.
Keine eingehenden Ports
Die Bridge verbindet sich nur nach außen. Aus dem Internet bleibt die Datenbank unerreichbar.
Auch Verbindungen nutzen sie
Ausgehende Webhooks und Verbindungen wie Kafka, SQS, PostgreSQL, E-Mail oder S3 können über sie laufen.
docker-compose.yaml
# Runs inside the network that hosts contracts-db
services:
  connic-bridge:
    image: connicorg/bridge:latest
    restart: always
    environment:
      BRIDGE_TOKEN: ${CONNIC_BRIDGE_TOKEN}
      ALLOWED_HOSTS: contracts-db:5432
tools/contracts.py
import os

import psycopg
from connic import bridge_host

DB_HOST = bridge_host(os.environ["CONTRACTS_BRIDGE_ID"], "contracts-db")

def fetch_contract(contract_id: str) -> dict:
    """Return a contract's title and full text.

    Args:
        contract_id: Contract ID from the review request
    """
    with psycopg.connect(
        host=DB_HOST,
        port=5432,
        dbname="contracts",
        user="reviewer",
        password=os.environ["CONTRACTS_DB_PASSWORD"],
    ) as conn:
        row = conn.execute(
            "SELECT title, body FROM contracts WHERE id = %s", (contract_id,)
        ).fetchone()
    return {"title": row[0], "body": row[1]}

Mit roten Tests geht nichts live. Rollbacks ohne neuen Build.

Schlagen die Tests fehl, wird das Deployment als Failed markiert, und das aktive läuft weiter. Aktivierst du ein früheres, kommen auch seine Verbindungen zurück.

Deployments
StatusDeploymentTests
Failed
#b72c19e49f3e2a1
13
1 failed
Active
#3f1a6c024c81d07
13
passed
Deployed
#91de04abe2b7f55
13
passed
#91de04ab
Activate this deployment?

This deployment becomes the live version of Production.

Updated
review-requestsconnectors/review-requests.yaml
CancelActivate

Einen Agenten nach dem anderen umstellen.

Der alte Dienst läuft weiter, während contract-review Anfragen über eine eigene Webhook-URL annimmt. Stell einen Aufrufer um, vergleich die Runs, dann kommt der nächste Agent.

connectors/review-requests.yaml
type: webhook
mode: inbound
agents:
- contract-review
connectors/review-results.yaml
type: webhook
mode: outbound
bridge: contracts-vpc
config:
outbound_url: ${REVIEW_RESULTS_URL}
agents:
- name: contract-review
outbound: { usage: automatic, source: [review-requests] }

Häufig gestellte Fragen

Fang mit einem Agenten an: Tool-Funktionen nach tools/ verschieben und die Agentendatei schreiben, oder bei LangChain und Google ADK connic migrate ausführen. Prüf den Agenten in einer Dev Session und deploye ihn nach Staging. Danach stellst du einen Aufrufer auf seine Verbindung um, alle anderen Agenten laufen weiter wie bisher.

Tool-Funktionen behalten ihren Code und ziehen nach tools/ um, Prompts wandern ins Agenten-YAML. Die Framework-Verdrahtung, etwa Graphen, Checkpointer und den HTTP-Server, ersetzen sequenzielle Agenten, Sessions und Verbindungen.

Über eine connic Bridge in diesem Netzwerk. Sie baut eine ausgehende Verbindung zu connic auf, und Tools verbinden sich über einen Bridge-Hostnamen. Die Datenbank braucht keinen öffentlichen Endpunkt.

Container-Builds, Cluster-Manifeste, Autoscaler-Einstellungen, die Deployment-Pipeline, Rollback-Schritte und das Tracing-Setup. Bei dir bleiben deine Tools, Prompts und Tests sowie die Systeme, die der Agent aufruft.

Tools und Geschäftslogik sind normales Python und laufen überall. Agenten-YAML, Verbindungsdateien und connic-Funktionen wie StopProcessing oder AbortTool gibt es nur bei connic, auf einer anderen Plattform müsstest du sie anpassen.

Vergleiche den ganzen Stack: Compute, Cluster-Pflege, CI, Tracing-Tools und Rufbereitschaft gegen deinen connic-Tarif und deine Nutzung. Die Tarife stehen auf der Preisseite, und sobald der Agent läuft, zeigt Token Usage die Modellkosten je Agent.