← All posts

K8gentic Development: Building Agentic Apps Without the Glue

Paddy O'Cybear4 min read

Most "agentic development" today is glue. You stitch a model API to a queue you half-configured, bolt on a database, fake the auth, and pray the thing survives contact with production. K8gentic development is the opposite bet: start on the same infrastructure you'll ship on, compose the platform services you need, and spend your time on the application — not the plumbing.

Here's what that loop actually looks like.

The inner loop

You don't develop against mocks and then "deploy to Kubernetes" later. You develop on Kubernetes from the first minute — a real local cluster that mirrors production, with hot reload on top.

kilter
$ kilter up # local cluster + services, hot reload
$ kilter add temporal qdrant # need workflows + vectors
$ kilter logs agent-worker -f # stream a service

kilter add resolves dependencies and wires configuration for you — a new service shows up as an injected connection string, not a weekend of YAML. Change code, and live-update pushes it into the running pod in seconds. The cluster you debug against is the cluster you deploy.

Building across the three layers

Agentic apps fail when they're missing a layer. K8gentic development means you build with all three from the start, instead of discovering you need them at Series B. (More on the model in the k8gentic manifesto.)

  • Infrastructure — durable, long-running workflows with events and persistent state. Your agent run is a Temporal workflow, not a fire-and-forget Lambda, so it survives restarts and you can replay exactly what happened.
  • Safety & performance — isolation, RBAC, quotas, and tracing are part of the substrate, so an autonomous agent can't quietly exceed its blast radius.
  • Experience — structured interfaces between humans and agents, service discovery, and polyglot composition. Your Python ML service and your TypeScript frontend just talk.

The point is that none of these are application code you hand-roll. They're platform capabilities you compose.

Polyglot by default

K8gentic development doesn't make you pick a language to please the platform. Write the agent in Python, the API in Go, the UI in TypeScript — each runs as its own service, wired together through the Kilter Platform runtime.

yaml
# kilter.yaml — three services, three languages, one app
name: support-agent
services:
  - postgres
  - temporal          # durable agent runs
  - qdrant            # retrieval
components:
  - name: agent
    language: python
  - name: api
    language: go
  - name: web
    language: typescript

No "backend TypeScript because that's what the platform supports." You build with what the problem needs.

Let your agent drive

The Kilter CLI is an agent interface, not just a human one. Every command returns low-token structured output, so your coding agent can discover capabilities, compose a stack, and validate it — the same loop you'd run by hand.

claude code
$ kilter catalog --json # agent discovers services
$ kilter add ory redpanda # agent composes the stack
$ kilter doctor # agent validates before deploy

This is what "agent-native" means in practice: the operator and the developer can both be an agent, working against the same surface, with guardrails that make autonomy safe.

Local is production

The reason this loop holds together is that there's no parity gap. kilter up and kilter deploy apply the same composition to two different clusters. The bug you can't reproduce locally mostly stops existing, because "locally" is the same Kubernetes primitives running in prod — just smaller.

That's the whole promise of k8gentic development: the developer experience of a PaaS, the durability and safety of real infrastructure, and none of the lock-in. You keep the keys.

Where to go next

  1. Read the k8gentic manifesto for the philosophy behind the three layers.
  2. See how the Kilter Platform Portal and Runtime fit together.
  3. Start your free trial and we'll have you provisioned within 48 hours.