Skip to content

Commit 900eb7d

Browse files
authored
Wire in agent skelton (#421)
1 parent 5ea4b10 commit 900eb7d

32 files changed

Lines changed: 3617 additions & 132 deletions

Makefile

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
.PHONY: dev-edge-create dev-run-edge build test lint fix-lint codegen crds clean certs dev-setup run-dex run-hub run-hub-static run-hub-embedded run-hub-embedded-static run-hub-standalone run-hub-embedded-graphql run-kcp dev-login dev-login-static dev-create-workload dev dev-infra dev-run-kcp path boilerplate verify-boilerplate verify-codegen ldflags tools docker-build docker-build-hub docker-build-agent docker-build-dex docker-build-dev-agent load-dev-agent-image docker-push-dex verify help-dev dev-status dev-clean-hooks helm-build-local helm-push-local helm-clean build-quickstart-provider build-quickstart-provider-portal build-kuery-provider build-kuery-provider-portal run-provider-kuery kuery-db-up kuery-db-down install-provider-kuery init-provider-kuery uninstall-provider-kuery run-provider-quickstart install-provider-quickstart init-provider-quickstart uninstall-provider-quickstart build-infrastructure-provider build-infrastructure-provider-portal codegen-infrastructure-provider run-provider-infrastructure install-provider-infrastructure init-provider-infrastructure uninstall-provider-infrastructure build-app-studio-provider build-app-studio-provider-portal codegen-app-studio-provider app-studio-db-up app-studio-db-down run-provider-app-studio install-provider-app-studio init-provider-app-studio uninstall-provider-app-studio build-agents-provider build-agents-provider-portal codegen-agents-provider run-provider-agents install-provider-agents init-provider-agents uninstall-provider-agents build-code-provider build-code-provider-portal codegen-code-provider run-provider-code install-provider-code init-provider-code uninstall-provider-code build-databricks-provider build-databricks-provider-portal codegen-databricks-provider run-provider-databricks install-provider-databricks init-provider-databricks uninstall-provider-databricks dev-kro-up dev-kro-down dev-kro-seed dev-kro-register-self e2e-infrastructure portal-provider-symlinks build-mcp-provider-portal build-kubernetes-edges-provider-portal build-server-edges-provider-portal e2e-provider e2e-provider-flags e2e-provider-all
1+
.PHONY: dev-edge-create dev-run-edge build test lint fix-lint codegen crds clean certs dev-setup run-dex run-hub run-hub-static run-hub-embedded run-hub-embedded-static run-hub-standalone run-hub-embedded-graphql run-kcp dev-login dev-login-static dev-create-workload dev dev-infra dev-run-kcp path boilerplate verify-boilerplate verify-codegen ldflags tools docker-build docker-build-hub docker-build-agent docker-build-dex docker-build-dev-agent load-dev-agent-image docker-push-dex verify help-dev dev-status dev-clean-hooks helm-build-local helm-push-local helm-clean build-quickstart-provider build-quickstart-provider-portal build-kuery-provider build-kuery-provider-portal run-provider-kuery kuery-db-up kuery-db-down install-provider-kuery init-provider-kuery uninstall-provider-kuery run-provider-quickstart install-provider-quickstart init-provider-quickstart uninstall-provider-quickstart build-infrastructure-provider build-infrastructure-provider-portal codegen-infrastructure-provider run-provider-infrastructure install-provider-infrastructure init-provider-infrastructure uninstall-provider-infrastructure build-app-studio-provider build-app-studio-provider-portal codegen-app-studio-provider app-studio-db-up app-studio-db-down run-provider-app-studio install-provider-app-studio init-provider-app-studio uninstall-provider-app-studio build-agents-provider build-agents-provider-portal codegen-agents-provider agents-db-up agents-db-down run-provider-agents install-provider-agents init-provider-agents uninstall-provider-agents build-code-provider build-code-provider-portal codegen-code-provider run-provider-code install-provider-code init-provider-code uninstall-provider-code build-databricks-provider build-databricks-provider-portal codegen-databricks-provider run-provider-databricks install-provider-databricks init-provider-databricks uninstall-provider-databricks dev-kro-up dev-kro-down dev-kro-seed dev-kro-register-self e2e-infrastructure portal-provider-symlinks build-mcp-provider-portal build-kubernetes-edges-provider-portal build-server-edges-provider-portal e2e-provider e2e-provider-flags e2e-provider-all
22

33
BINDIR ?= bin
44
GOFLAGS ?=
@@ -932,8 +932,14 @@ AGENTS_PROVIDER_KUBECONFIG ?= $(KCP_DATA_DIR)/agents-provider.kubeconfig
932932
AGENTS_SCHEMAS_DIR ?= providers/agents/deploy/chart/files/schemas
933933
AGENTS_MANIFEST ?= providers/agents/manifest.yaml
934934
AGENTS_PROVIDER_MANIFEST ?= providers/agents/provider.yaml
935-
# Postgres store backend is not wired yet; dev runs use the in-memory store.
936-
AGENTS_IN_MEMORY_STORE ?= true
935+
# Durable store: dev runs use a local Postgres container by default (mirrors
936+
# app-studio). Set AGENTS_IN_MEMORY_STORE=true for a non-durable quick run.
937+
AGENTS_IN_MEMORY_STORE ?=
938+
AGENTS_DEV_DATABASE_URL ?= postgres://agents:agents@localhost:55434/agents?sslmode=disable
939+
AGENTS_POSTGRES_CONTAINER ?= kedge-agents-postgres
940+
AGENTS_POSTGRES_IMAGE ?= mirror.gcr.io/library/postgres:16-alpine
941+
AGENTS_POSTGRES_PORT ?= 55434
942+
AGENTS_POSTGRES_DATA_DIR ?= $(KCP_DATA_DIR)/agents-postgres
937943

938944
## Run the infrastructure provider binary locally. Heartbeats to the hub on
939945
## $(KROMC_HUB_URL); TLS verification skipped (dev cert is self-signed).
@@ -1162,21 +1168,50 @@ uninstall-provider-app-studio: ## Delete App Studio CatalogEntry
11621168
--insecure-skip-tls-verify \
11631169
delete -f $(APP_STUDIO_MANIFEST) -f $(APP_STUDIO_PROVIDER_MANIFEST)
11641170

1165-
## --- agents provider dev targets (mirror app-studio; in-memory store) ---
1166-
1167-
run-provider-agents: build-agents-provider ## Run the agents provider (requires: make run-hub-embedded-static + make install-provider-agents + make init-provider-agents)
1171+
## --- agents provider dev targets (mirror app-studio) ---
1172+
1173+
## Start/reuse a local Postgres container for the agents durable store. Skips
1174+
## when AGENTS_IN_MEMORY_STORE=true or AGENTS_DATABASE_URL points elsewhere.
1175+
agents-db-up:
1176+
@set -a; [ -f providers/agents/.env ] && . ./providers/agents/.env || true; set +a; \
1177+
if [ "$${AGENTS_IN_MEMORY_STORE:-$(AGENTS_IN_MEMORY_STORE)}" = "true" ]; then \
1178+
echo "agents: in-memory store — skipping Postgres"; exit 0; fi; \
1179+
if [ -n "$${AGENTS_DATABASE_URL:-}" ]; then \
1180+
echo "agents: external AGENTS_DATABASE_URL set — skipping dev Postgres"; exit 0; fi; \
1181+
if docker ps --format '{{.Names}}' | grep -q '^$(AGENTS_POSTGRES_CONTAINER)$$'; then \
1182+
echo "agents postgres already running on :$(AGENTS_POSTGRES_PORT)"; exit 0; fi; \
1183+
if docker ps -a --format '{{.Names}}' | grep -q '^$(AGENTS_POSTGRES_CONTAINER)$$'; then \
1184+
docker start $(AGENTS_POSTGRES_CONTAINER); exit 0; fi; \
1185+
mkdir -p $(AGENTS_POSTGRES_DATA_DIR); \
1186+
docker run -d --name $(AGENTS_POSTGRES_CONTAINER) \
1187+
-e POSTGRES_USER=agents -e POSTGRES_PASSWORD=agents -e POSTGRES_DB=agents \
1188+
-p $(AGENTS_POSTGRES_PORT):5432 \
1189+
-v $(AGENTS_POSTGRES_DATA_DIR):/var/lib/postgresql/data \
1190+
$(AGENTS_POSTGRES_IMAGE)
1191+
1192+
agents-db-down: ## Stop and remove the agents dev Postgres container
1193+
-docker rm -f $(AGENTS_POSTGRES_CONTAINER)
1194+
1195+
run-provider-agents: build-agents-provider agents-db-up ## Run the agents provider (requires: make run-hub-embedded-static + make install-provider-agents + make init-provider-agents)
11681196
@echo "Starting agents provider on :$(AGENTS_PORT)"
11691197
@echo " hub: $(AGENTS_HUB_URL)"
1170-
@echo " store: in-memory (non-durable; Postgres backend not wired yet)"
11711198
@# Auto-source providers/agents/.env (gitignored) for local overrides.
11721199
set -a; [ -f providers/agents/.env ] && . ./providers/agents/.env || true; set +a; \
1200+
AGENTS_IN_MEMORY_STORE="$${AGENTS_IN_MEMORY_STORE:-$(AGENTS_IN_MEMORY_STORE)}"; \
1201+
if [ "$$AGENTS_IN_MEMORY_STORE" = "true" ]; then \
1202+
echo " store: in-memory (non-durable)"; AGENTS_DATABASE_URL=; \
1203+
else \
1204+
AGENTS_DATABASE_URL="$${AGENTS_DATABASE_URL:-$(AGENTS_DEV_DATABASE_URL)}"; \
1205+
echo " store: $$AGENTS_DATABASE_URL"; \
1206+
fi; \
11731207
PORT=$(AGENTS_PORT) \
11741208
KEDGE_HUB_URL=$(AGENTS_HUB_URL) \
11751209
KEDGE_HUB_TOKEN=$(AGENTS_TOKEN) \
11761210
KEDGE_HUB_INSECURE=true \
11771211
KEDGE_PROVIDER_NAME=agents \
11781212
KEDGE_PROVIDER_KUBECONFIG=$${KEDGE_PROVIDER_KUBECONFIG:-$$( for f in "$(AGENTS_PROVIDER_KUBECONFIG)" "$(AGENTS_KCP_KUBECONFIG)" "$(CURDIR)/tilt-frontproxy.kubeconfig"; do [ -f "$$f" ] && echo "$$f" && break; done )} \
1179-
AGENTS_IN_MEMORY_STORE=$(AGENTS_IN_MEMORY_STORE) \
1213+
AGENTS_DATABASE_URL="$$AGENTS_DATABASE_URL" \
1214+
AGENTS_IN_MEMORY_STORE="$$AGENTS_IN_MEMORY_STORE" \
11801215
$(BINDIR)/agents-provider
11811216

11821217
install-provider-agents: ## Apply agents Provider + CatalogEntry into root:kedge:providers

Tiltfile

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,17 @@ local_resource(
379379

380380
# --- providers-agents ---
381381
# Long-running personal AI agents (chat, scheduled runs, tools, durable memory).
382-
# Standalone: only hard deps are the hub and a store (in-memory in dev until the
383-
# Postgres backend is wired). No app-studio/infrastructure dependency.
382+
# Standalone: only hard deps are the hub and the durable store (local Postgres
383+
# container via agents-db). No app-studio/infrastructure dependency.
384+
local_resource(
385+
'agents-db',
386+
cmd='make agents-db-up',
387+
deps=[
388+
'providers/agents/.env',
389+
],
390+
labels=['providers-agents'],
391+
)
392+
384393
local_resource(
385394
'agents',
386395
cmd='make build-agents-provider',
@@ -395,6 +404,8 @@ local_resource(
395404
'providers/agents/apis',
396405
'providers/agents/client',
397406
'providers/agents/engine',
407+
'providers/agents/executor',
408+
'providers/agents/tools',
398409
'providers/agents/llm',
399410
'providers/agents/store',
400411
'providers/agents/tenant',
@@ -405,7 +416,7 @@ local_resource(
405416
'providers/agents/portal/vite.config.ts',
406417
'providers/agents/.env',
407418
],
408-
resource_deps=['hub'],
419+
resource_deps=['hub', 'agents-db'],
409420
readiness_probe=probe(
410421
period_secs=5,
411422
http_get=http_get_action(port=8087, path='/healthz'),
@@ -442,6 +453,14 @@ local_resource(
442453
labels=['providers-agents'],
443454
)
444455

456+
local_resource(
457+
'agents-db-down',
458+
cmd='make agents-db-down',
459+
trigger_mode=TRIGGER_MODE_MANUAL,
460+
auto_init=False,
461+
labels=['providers-agents'],
462+
)
463+
445464
# --- Dev agent image (template-native development mode) ---
446465
# The static control binary injected into dev-mode components; owned by the
447466
# infrastructure provider (docs/app-studio-template-sandboxes.md §2).

Tiltfile.cluster

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -602,9 +602,18 @@ local_resource(
602602
)
603603

604604
# --- providers-agents ---
605-
# Long-running personal AI agents. Same host-binary shape as quickstart; the
606-
# manifest host URL is rewritten to the in-cluster hub. Standalone — only hard
607-
# dep is the hub (in-memory store in dev until the Postgres backend is wired).
605+
# Long-running personal AI agents (chat, scheduled runs, tools, durable memory).
606+
# Standalone: only hard deps are the hub and the durable store (local Postgres
607+
# container via agents-db). No app-studio/infrastructure dependency.
608+
local_resource(
609+
'agents-db',
610+
cmd='make agents-db-up',
611+
deps=[
612+
'providers/agents/.env',
613+
],
614+
labels=['providers-agents'],
615+
)
616+
608617
local_resource(
609618
'agents',
610619
cmd='make build-agents-provider',
@@ -619,6 +628,8 @@ local_resource(
619628
'providers/agents/apis',
620629
'providers/agents/client',
621630
'providers/agents/engine',
631+
'providers/agents/executor',
632+
'providers/agents/tools',
622633
'providers/agents/llm',
623634
'providers/agents/store',
624635
'providers/agents/tenant',
@@ -627,7 +638,7 @@ local_resource(
627638
'providers/agents/portal/package.json',
628639
'providers/agents/portal/vite.config.ts',
629640
],
630-
resource_deps=['kedge-hub'],
641+
resource_deps=['kedge-hub', 'agents-db'],
631642
readiness_probe=probe(
632643
period_secs=5,
633644
http_get=http_get_action(port=8087, path='/healthz'),
@@ -672,6 +683,14 @@ local_resource(
672683
labels=['providers-agents'],
673684
)
674685

686+
local_resource(
687+
'agents-db-down',
688+
cmd='make agents-db-down',
689+
trigger_mode=TRIGGER_MODE_MANUAL,
690+
auto_init=False,
691+
labels=['providers-agents'],
692+
)
693+
675694
# --- providers-app-studio ---
676695
local_resource(
677696
'app-studio-db',

0 commit comments

Comments
 (0)