Bring your own agent — your graph, your framework, your control loop. KDCube hands it user events through the event bus: ordered and one turn at a time per conversation. A wake names one accepted occurrence; a run-to-completion adapter folds it and every other still-pending occurrence into one start snapshot. A live loop may fold new work while the turn r...
A KDCube tool can call your service as the user — not with a shared system key, not with a platform login token, and not with a secret copied into code. The user connects their account once through Connection Hub; after that, tools and named services resolve the user's provider token only when the requested claim is approved.
The agent has been able to search your conversation history for a while — that is how it remembers what you decided in May. Today the same engine gets a human door: a search box in the chat sidebar. Same index, same ranking, same hard rule that you only ever see your own conversations — now with your hands on the controls.
The ReAct agent writes Python; the code posts a file to Slack, sends an email, saves a memory. That code runs in a sealed sandbox — yet the call reaches the real service, under the real user, with real consent checks. The trick is a relay: the request rides KDCube's durable message lane to the service's home process and the answer rides back.
A tool call leaves the process — a subprocess, a sandboxed container, a remote task. What must follow it is not the infrastructure but the situation: who is asking, which app is acting, what the call may touch. KDCube packs that situation into one JSON-safe room, ships it across the boundary, and rebuilds everything else from descriptors on the other side.
An external agent has no chat turn — yet it must attach a file to an email, post one to Slack, and pull attachments out. KDCube gives it a waiting room: signed upload slots into a staging area inbound, signed download URLs outbound. Bytes travel over plain HTTP; tool calls stay JSON.
The platform keeps durable user choices in one typed home . The key names the scope — platform, application, or conversation — configuration remains the ceiling, and an explicit Save changes writes the current conversation.
KDCube users can now give their own scripts, agents, and DevOps jobs a bounded way to call KDCube — a short-lived bearer token scoped server-side by resource_grants . The automation acts as a delegated client while KDCube projects the approving user as the grantor.
App content was visible to humans, invisible to crawlers — SPA shells with no title, body, or structured data. This entry records the new public content surface: an app declares an alias and publishes items into a registry; the platform serves crawlable pages, JSON-LD, canonical/OG metadata, and a per-alias sitemap.xml — runtime-updated, no rebuilds — and...
Field notes from making a KDCube named service — conversations ( conv ) — usable by Claude Code as an external agent over the managed named_services MCP surface. The agent now discovers one exact capability contract before it searches objects. Binary files returned as base64 blew the model's context, so they now come back as a short-lived download link; a...