Knowledge and publish
Static product chat workflows combine ingested knowledge (vector store) with semver-published workflow definitions (registry). Operators use admin routes; browsers call runPublished("chat", "^1.0.0", message) without seeing agent JSON.
Knowledge ingest
Add text to the site's KB namespace (Qdrant collection derived from kb_namespace):
Server chunks, embeds, and upserts per MemoryChunkingConfig. Requires ARCFLOW_QDRANT_URL and a non-stub embedding provider in production.
| Field | Purpose |
|---|---|
text | Raw document content |
key | Logical document id for re-ingest / replace |
Re-ingest with the same key to update content. See guides/memory-and-rag/knowledge-ingestion.md for chunk tuning.
Publish chat workflow
Publish binds instructions and version to the registry workflow name chat (or site default):
The server builds an workflow specification workflow with RAG agent tooling and registers chat@1.0.1. Prior versions remain addressable by exact version.
Semver resolution at runtime
Browser SDK:
Relay proxies to server:
Server resolves highest matching non-deprecated version (e.g. 1.0.2 if published):
Response:
Alias latest (optional)
Operators can pin a friendly alias:
Static SDK semver ranges (^1.0.0) are preferred over alias strings in browser code for predictable upgrades.
End-to-end operator sequence
Smoke scripts
Repository reference implementations:
| Script | Purpose |
|---|---|
scripts/static-provision.sh | Create site, ingest sample, publish |
scripts/static-smoke.sh | End-to-end run via Relay |
Use in CI after deploy to catch registry or Qdrant misconfiguration early.
Infrastructure requirements
| Service | Required for |
|---|---|
| Postgres | Sites, registry, runs |
| Qdrant | Vector retrieval in chat |
| Embedding provider env | Ingest and query embeddings |
Stub embedding works for local smoke only, not production RAG quality.