003

Agents

— Agents that plan, call your tools and answer.

Give a model your APIs, your data and a goal. Arclight runs the loop, keeps it inside your limits and records every step, so you can see why it answered what it did.

Try the console

001

arc—light

Pick a task or ask your own. The agent plans, calls its tools and answers, step by step.

A recording: no model is called and nothing leaves your browser.

console.arclight.ai / agents / on-callReady

Choose a task above to watch the agent work.

Tools, built in

002

arc—light

Eight kinds of tool ready to allow, and any API of yours in one line.

Web search

Fresh results with their sources, so an answer can cite the page it came from.

Your APIs

Point at an OpenAPI file and every endpoint becomes a tool, with your auth kept server-side.

Code sandbox

Python and Node in a microVM with no network, for maths, charts and data cleaning.

Files and retrieval

PDFs, docs and spreadsheets indexed with Echo Embed and searched by meaning.

Databases

Read-only SQL against Postgres, BigQuery or Snowflake, through a role you control.

Browser

A headless browser that reads, clicks and fills forms on the sites you allow.

Memory

What a user told the agent last week, kept per user and erased on request.

Human approval

A tool marked as sensitive waits for a person to approve it, in Slack or the console.

Deploy in twenty lines

003

arc—light

Define the model, the tools and the budget. Call it from your code, a webhook or a schedule.

Your own functions become tools with a decorator

Built-in tools are allowed by name

Runs stream their steps as they happen

Every run returns its trace’s address

Tools in the docs

agent.py
from arclight import Arclight, tool

client = Arclight()  # reads ARCLIGHT_API_KEY

@tool
def logs_search(query: str) -> list[dict]:
    """Search production logs."""
    return my_logs.search(query)

agent = client.agents.create(
    name="on-call",
    model="arc-7",
    tools=[logs_search, "deploys.list", "code.diff"],
    max_steps=12,
)

run = agent.run("Why did checkout errors rise on Tuesday?")
print(run.answer, run.trace_url)

Kept on a short leash

004

arc—light

An agent does what you allowed, within what you can afford, and stops.

A step budget per run, so a loop ends instead of billing

A spend cap per agent, per day, in dollars

Tools allowed by name; anything else is refused and logged

Guardrails on every input and every answer, in under 10 ms

Limit

Default

Note

Steps per run

50

up to 500 on Enterprise

Time per tool call

120 s

longer calls run as jobs

Tokens per run

1M

context is compacted past 200K

Concurrent runs

100

per project, raised on request

Trace retention

30 days

or 0, or a year, your choice

Every run, on the record

005

arc—light

When an answer surprises you, open its trace and see each step that led to it.

Every prompt, tool call, result and token, in order

Replay a run against another model or prompt

Diff two runs side by side

Share a trace by link, or export it as JSON

Run 8f3a

Why did checkout errors rise on Tuesday?

01

Plan

Read the error logs, line them up with the deploys

02

logs.search

1,284 errors, first at 09:15:02 · 1.1 s

03

deploys.list

web@4.18.2 shipped Tue 09:12 · 0.9 s

04

code.diff

roundTotal() now runs on the client too · 1.3 s

Model

Arc-7

Steps

4

Time

6.2 s

Cost

$0.016

Create a free website with Framer, the website builder loved by startups, designers and agencies.