Agentic Sessions

Crafting has built-in agent workers and manages the conversations between users and LLM agents as first-class objects in the system. Users can list and inspect the details of all conversations.

Session Types

A session can be either Interactive or Autonomous.

Interactive Sessions

An Interactive session is started when the user begins a conversation from the Web Console. The session remains live and the user can resume the conversation at any time, until the session has been idle beyond the configured retention period.

The agent running the session may create resources — such as sandboxes — that belong to the user who started the session (the session owner). The user is responsible for managing the lifecycle of all resources created during the session.

Certain tool calls may request approval in Interactive sessions. The user can change the approval policy at any time during the session.

Interactive sessions are private to the owner, and are not accessible by other users.

Autonomous Sessions

An Autonomous session is started by the system — for example, triggered by a daemon in a sandbox, or by an external event such as a Slack message, a GitHub issue, or a pull request.

These sessions are typically one-shot: they process a single input prompt without human interaction. Tool calls are automatically approved.

When the one-shot task is completed, the session becomes Archived. It can be inspected for a period defined by the retention window, but cannot be resumed. Resources created by the agent specifically for completing the task are automatically deleted when the session is archived.

By default, autonomous sessions are shared across the org. From the Web UI, they can be accessed via Automation / AI Tasks.

Starting an Autonomous Session

An Autonomous session can be started programmatically using the CLI:

cs llm session run --task --name NAME PROMPT|-|@FILE

Where:

Limit Templates

To restrict which templates the agent may use in an autonomous session, use the --allow-template flag with a glob pattern or a regular expression:

cs llm session run --task --name foo --allow-template 'agent-*' --allow-template 're:-agent-.*' prompt

Impersonation

When run by an org admin (or a service account with the Admin role), the session can be created as owned by another user:

cs llm session run --task --name=jacky-request-1135 --owner=jacky@example.com ...

Use with caution: the session is owned by jacky@example.com, not the user who ran the command. All resources (e.g. sandboxes) created during the session will also be owned by jacky@example.com.

This differs from specifying an initiator, which is informational only:

cs llm session run --task --name=alice-request-2519 --initiator=alice@example.com ...

The session is owned by the user who ran the command, as are all resources created during the session. The email alice@example.com is recorded purely as informational — it does not need to be a valid member of the current org.

Crafting Agents

When a session starts, the Crafting agent handles the initial prompt. Based on the context and the conversation, the agent may:

The Crafting agent is aware of the org's configured LLM models and purposes (see LLM Config) and selects the appropriate model automatically.

See Also