diff --git a/quickstart/getting-started-with-the-cycles-spring-boot-starter.md b/quickstart/getting-started-with-the-cycles-spring-boot-starter.md index 94d373f..6b7928c 100644 --- a/quickstart/getting-started-with-the-cycles-spring-boot-starter.md +++ b/quickstart/getting-started-with-the-cycles-spring-boot-starter.md @@ -1,6 +1,6 @@ --- title: "Getting Started with the Cycles Spring Boot Starter" -description: "Integrate budget enforcement into Spring Boot apps using the @Cycles annotation for automatic reserve, commit, and release lifecycle management." +description: "Add runtime authority to Spring Boot AI apps with @Cycles: reserve, commit, release, caps-aware decisions, and structured audit records." --- # Getting Started with the Cycles Spring Boot Starter @@ -24,6 +24,12 @@ The starter wraps any annotated method in a reserve → execute → commit lifec 3. **After the method returns:** commits actual usage and releases any unused remainder 4. **If the method throws:** releases the reservation to return budget to the pool +::: tip Cycles provides three runtime-authority pillars +- **Spend** — reserve-commit budget enforcement before instrumented LLM calls and tool actions +- **Risky actions** — `ALLOW` / `ALLOW_WITH_CAPS` / `DENY` decisions with `RISK_POINTS` budgets and caps for tool allowlists/denylists, max tokens, max steps, and cooldowns +- **Audit** — reservations, commits, releases, and decisions create structured records for compliance, attribution, and incident review +::: + All of this happens transparently through Spring AOP. ## Try the demo app first diff --git a/quickstart/getting-started-with-the-mcp-server.md b/quickstart/getting-started-with-the-mcp-server.md index 9e4e30d..11385b4 100644 --- a/quickstart/getting-started-with-the-mcp-server.md +++ b/quickstart/getting-started-with-the-mcp-server.md @@ -1,6 +1,6 @@ --- title: "Getting Started with the Cycles MCP Server" -description: "Expose Cycles budget tools — reserve, commit, release, decide, check balance — to Claude Desktop, Claude Code, Cursor, Windsurf, and any MCP-compatible AI agent. No SDK code changes." +description: "Expose Cycles runtime-authority tools to Claude Desktop, Claude Code, Cursor, Windsurf, and MCP agents: reserve, commit, decide, events." --- # Getting Started with the Cycles MCP Server @@ -22,6 +22,12 @@ Use this for: For deterministic production enforcement, make the Cycles check part of the tool execution path itself — at the SDK, gateway, or framework adapter layer. ::: +::: tip Cycles provides three runtime-authority pillars +- **Spend** — `cycles_reserve` / `cycles_commit` / `cycles_release` enforce budget before instrumented agent actions +- **Risky actions** — `cycles_decide` returns `ALLOW` / `ALLOW_WITH_CAPS` / `DENY` with `RISK_POINTS` budgets and caps for tool allowlists/denylists, max tokens, max steps, and cooldowns +- **Audit** — `cycles_create_event` and reserve/commit/release calls create structured records for export, compliance, attribution, and incident review +::: + ## Prerequisites - **A running Cycles stack** with a tenant, API key, and budget. If you don't have one yet, follow [Deploy the Full Stack](/quickstart/deploying-the-full-cycles-stack) first. diff --git a/quickstart/getting-started-with-the-python-client.md b/quickstart/getting-started-with-the-python-client.md index abaee54..d96ad92 100644 --- a/quickstart/getting-started-with-the-python-client.md +++ b/quickstart/getting-started-with-the-python-client.md @@ -1,6 +1,6 @@ --- title: "Getting Started with the Python Client" -description: "Add budget enforcement to Python apps using the runcycles package with the @cycles decorator, async support, and programmatic CyclesClient." +description: "Add runtime authority to Python AI apps with runcycles: @cycles, async support, reserve-commit lifecycle, caps, and audit records." --- # Getting Started with the Python Client @@ -16,6 +16,12 @@ The decorator wraps any function in a reserve → execute → commit lifecycle: 3. **After the function returns:** commits actual usage and releases any unused remainder 4. **If the function raises:** releases the reservation to return budget to the pool +::: tip Cycles provides three runtime-authority pillars +- **Spend** — reserve-commit budget enforcement before instrumented LLM calls and tool actions +- **Risky actions** — `ALLOW` / `ALLOW_WITH_CAPS` / `DENY` decisions with `RISK_POINTS` budgets and caps for tool allowlists/denylists, max tokens, max steps, and cooldowns +- **Audit** — reservations, commits, releases, and decisions create structured records for compliance, attribution, and incident review +::: + ## Prerequisites You need a running Cycles stack with a tenant, API key, and budget. If you don't have one yet, follow [Deploy the Full Stack](/quickstart/deploying-the-full-cycles-stack) first. diff --git a/quickstart/getting-started-with-the-rust-client.md b/quickstart/getting-started-with-the-rust-client.md index 5068c01..ffeef29 100644 --- a/quickstart/getting-started-with-the-rust-client.md +++ b/quickstart/getting-started-with-the-rust-client.md @@ -1,6 +1,6 @@ --- title: "Rust Client Quickstart — Budget Control for AI Agents" -description: "Add hard spending limits and runtime authority to Rust AI agents. Quickstart for the Cycles Rust client (runcycles crate) — async, Tokio-native, with reserve-commit budget enforcement for LLM calls, tool actions, and multi-step agent workflows." +description: "Add runtime authority to Rust AI agents with the runcycles crate: async reserve-commit enforcement, RAII guards, caps, and audit records." head: - - meta - name: keywords @@ -15,6 +15,12 @@ Building AI agents in Rust with Tokio? You need hard limits on LLM spending and Same wire protocol as the [Python](/quickstart/getting-started-with-the-python-client), [TypeScript](/quickstart/getting-started-with-the-typescript-client), and [Spring Boot](/quickstart/getting-started-with-the-cycles-spring-boot-starter) clients — switch languages without changing your Cycles server. +::: tip Cycles provides three runtime-authority pillars +- **Spend** — reserve-commit budget enforcement before instrumented LLM calls and tool actions +- **Risky actions** — `ALLOW` / `ALLOW_WITH_CAPS` / `DENY` decisions with `RISK_POINTS` budgets and caps for tool allowlists/denylists, max tokens, max steps, and cooldowns +- **Audit** — reservations, commits, releases, and decisions create structured records for compliance, attribution, and incident review +::: + The `runcycles` crate provides three levels of budget enforcement for any async Rust application: 1. **`with_cycles()`** — automatic reserve → execute → commit/release (like Python's `@cycles` decorator) diff --git a/quickstart/getting-started-with-the-typescript-client.md b/quickstart/getting-started-with-the-typescript-client.md index 3e9042d..5677c93 100644 --- a/quickstart/getting-started-with-the-typescript-client.md +++ b/quickstart/getting-started-with-the-typescript-client.md @@ -1,6 +1,6 @@ --- title: "Getting Started with the TypeScript Client" -description: "Add budget enforcement to Node.js apps using the runcycles TypeScript package with the withCycles HOF, streaming support, and programmatic client." +description: "Add runtime authority to Node.js AI apps with runcycles: withCycles, streaming support, reserve-commit enforcement, caps, and audit records." --- # Getting Started with the TypeScript Client @@ -16,6 +16,12 @@ The `withCycles` HOF wraps any async function in a reserve → execute → commi 3. **After the function returns:** commits actual usage and releases any unused remainder 4. **If the function throws:** releases the reservation to return budget to the pool +::: tip Cycles provides three runtime-authority pillars +- **Spend** — reserve-commit budget enforcement before instrumented LLM calls and tool actions +- **Risky actions** — `ALLOW` / `ALLOW_WITH_CAPS` / `DENY` decisions with `RISK_POINTS` budgets and caps for tool allowlists/denylists, max tokens, max steps, and cooldowns +- **Audit** — reservations, commits, releases, and decisions create structured records for compliance, attribution, and incident review +::: + ## Prerequisites You need a running Cycles stack with a tenant, API key, and budget. If you don't have one yet, follow [Deploy the Full Stack](/quickstart/deploying-the-full-cycles-stack) first. diff --git a/quickstart/how-to-add-hard-budget-limits-to-spring-ai-with-cycles.md b/quickstart/how-to-add-hard-budget-limits-to-spring-ai-with-cycles.md index 98fb48c..d53fd8e 100644 --- a/quickstart/how-to-add-hard-budget-limits-to-spring-ai-with-cycles.md +++ b/quickstart/how-to-add-hard-budget-limits-to-spring-ai-with-cycles.md @@ -1,6 +1,6 @@ --- title: "How to Add Hard Budget Limits to Spring AI with Cycles" -description: "Add pre-execution budget enforcement to Spring AI applications using the Cycles reserve-commit lifecycle for model calls, tools, and agent loops." +description: "Add pre-execution runtime authority to Spring AI: reserve-commit enforcement for model calls, tools, agent loops, caps, and audit records." --- # How to Add Hard Budget Limits to Spring AI with Cycles @@ -20,6 +20,12 @@ At that point, you need a control layer that can decide **before execution** whe That is where Cycles fits. +::: tip Cycles provides three runtime-authority pillars +- **Spend** — reserve-commit budget enforcement before instrumented LLM calls and tool actions +- **Risky actions** — `ALLOW` / `ALLOW_WITH_CAPS` / `DENY` decisions with `RISK_POINTS` budgets and caps for tool allowlists/denylists, max tokens, max steps, and cooldowns +- **Audit** — reservations, commits, releases, and decisions create structured records for compliance, attribution, and incident review +::: + ## The problem In a simple application, one request often maps to one model call. diff --git a/quickstart/how-to-choose-a-first-cycles-rollout-tenant-budgets-run-budgets-or-model-call-guardrails.md b/quickstart/how-to-choose-a-first-cycles-rollout-tenant-budgets-run-budgets-or-model-call-guardrails.md index 7c46079..23fdf72 100644 --- a/quickstart/how-to-choose-a-first-cycles-rollout-tenant-budgets-run-budgets-or-model-call-guardrails.md +++ b/quickstart/how-to-choose-a-first-cycles-rollout-tenant-budgets-run-budgets-or-model-call-guardrails.md @@ -1,6 +1,6 @@ --- title: "Your First Cycles Rollout: Budgets vs Guardrails" -description: "Decide where to start with Cycles: tenant budgets for cost isolation, run budgets for runaway prevention, or model-call guardrails for low-friction adoption." +description: "Choose your first Cycles rollout: tenant budgets for cost isolation, run budgets for runaway loops, or model-call guardrails for LLM spend." --- # How to Choose a First Cycles Rollout: Tenant Budgets, Run Budgets, or Model-Call Guardrails? @@ -26,6 +26,14 @@ Each is valid. Each solves a different problem. The best choice depends on the failure mode you are trying to prevent first. +::: tip Cycles provides three runtime-authority pillars +- **Spend** — reserve-commit budget enforcement before instrumented LLM calls and tool actions +- **Risky actions** — `ALLOW` / `ALLOW_WITH_CAPS` / `DENY` decisions with `RISK_POINTS` budgets and caps for tool allowlists/denylists, max tokens, max steps, and cooldowns +- **Audit** — reservations, commits, releases, and decisions create structured records for compliance, attribution, and incident review + +All three rollouts on this page create structured audit records. Tenant budgets and run budgets primarily address spend; run budgets also bound risky agent loops; model-call guardrails are the lowest-friction way to start with per-call LLM spend enforcement. +::: + ## The wrong way to start A common mistake is to begin with a fully generalized policy hierarchy: diff --git a/quickstart/what-is-cycles.md b/quickstart/what-is-cycles.md index 0c16ee7..bc3869a 100644 --- a/quickstart/what-is-cycles.md +++ b/quickstart/what-is-cycles.md @@ -1,11 +1,17 @@ --- title: "What is Cycles?" -description: "Cycles is a runtime authority for autonomous agents that enforces hard spend limits on AI agents and workflows before expensive actions happen." +description: "Cycles is a runtime authority for autonomous agents: it enforces spend and risky-action limits before execution and records audit evidence." --- # What is Cycles? -Cycles is a **runtime authority for autonomous agents**. It enforces hard limits on agent spend and actions — **before they happen, not after**. +Cycles is a **runtime authority for autonomous agents**. It enforces hard limits on agent spend and risky actions — **before they happen, not after** — and records the evidence operators need to audit decisions later. + +::: tip Cycles provides three runtime-authority pillars +- **Spend** — reserve-commit budget enforcement before instrumented LLM calls and tool actions +- **Risky actions** — `ALLOW` / `ALLOW_WITH_CAPS` / `DENY` decisions with `RISK_POINTS` budgets and caps for tool allowlists/denylists, max tokens, max steps, and cooldowns +- **Audit** — reservations, commits, releases, and decisions create structured records for compliance, attribution, and incident review +::: ## Choose your path