One key in. One traced result out.
Every call takes the same path through Keyline. These are the layers on that path, in the order a call meets them, with the current state of each.
Key
One credential for every call.
Your code holds a single Keyline key. Provider credentials stay behind it, so adding or rotating a provider is not a code change.
In development
Router
Chooses where each call goes.
For every step, the router picks a target from the ones you allow, inside the budget and constraints you set. Candidates it considers and does not use are never called.
In development
Agents
Delegation and handoff as routed calls.
An agent is a target like any other. When one agent delegates to another or hands off its findings, that hop goes through the router and is recorded with its parent.
In development
Models
Different providers, one call shape.
Models sit behind the same request and response format, so switching one is a routing decision. The provider list will be published when the integrations are live.
In development
Tools
Tools and external APIs with typed contracts.
Search, data sources, sandboxes and your own APIs are described by an input and output schema. The planner reads those schemas to decide which ones a task needs.
In development
Execution
Plans the task, runs it, joins the results.
A task is planned into steps. Steps that do not depend on each other run in parallel, and their outputs converge before the next step starts.
In development
Observability
A trace for every execution.
Each call is recorded with what triggered it, when it started, how long it took, what it cost and how it ended. The trace on the home page shows the shape of that record.
In development
Usage and billing
Pay only for what executes.
Usage is metered per executed call. Settlement and payments are planned on Robinhood Chain, underneath the product rather than in front of it.
Planned
To see these layers working together, run the simulated execution on the home page. It is scripted, and labelled that way, until the router is live.