Agent¶
arcana.agents.agent.Agent
¶
Agent(
name,
card,
gateway,
model,
description="",
modifier_cards=None,
memory=None,
soul=None,
system_prompt_override=None,
id=None,
session_manager=None,
)
A configured AI agent. Assign a tarot card — get a soul.
Usage
async with ModelGateway(ConnectionStore()) as gw: agent = Agent( name="researcher", card=Card.HERMIT, gateway=gw, model="ollama/hermes-3", ) result = await agent.run("summarize advances in RAG")
Source code in packages/arcana-core/arcana/agents/agent.py
run
async
¶
Run a single prompt. Returns the assistant's response.
Pass session to resume a prior conversation; omit to start a new one.
Source code in packages/arcana-core/arcana/agents/agent.py
stream
async
¶
Stream a response token by token. Records a session with token totals.
Pass session to resume a prior conversation; omit to start a new one.
Source code in packages/arcana-core/arcana/agents/agent.py
arcana.agents.registry.AgentRegistry
¶
Manages agent records (types.Agent) on disk.
Each record lives at ~/.arcana/agents/{id}/agent.json. The registry does not manage runtime agents (agents.Agent) directly — use build_runtime() to reconstruct one from a stored record and an adapter.
Source code in packages/arcana-core/arcana/agents/registry.py
create
¶
create(
name,
card,
model_connection_id,
*,
description="",
modifier_cards=None,
system_prompt_override=None,
tags=None,
)
Create a new agent record, resolve card config, and persist to disk.
Source code in packages/arcana-core/arcana/agents/registry.py
get
¶
Return an agent record by ID, or None if not found.
Source code in packages/arcana-core/arcana/agents/registry.py
list
¶
Return all non-archived agent records, sorted by name.
Source code in packages/arcana-core/arcana/agents/registry.py
save
¶
Persist an agent record to disk.
Source code in packages/arcana-core/arcana/agents/registry.py
delete
¶
Soft-delete: mark the agent as archived so list() excludes it.
Source code in packages/arcana-core/arcana/agents/registry.py
build_runtime
¶
Reconstruct a runtime Agent from a stored record, gateway, and model routing key.
Source code in packages/arcana-core/arcana/agents/registry.py
arcana.agents.session_manager.SessionManager
¶
Manages agent sessions on disk.
Sessions are persisted at ~/.arcana/agents/{agent_id}/sessions/{session_id}.json.
Phase 1a: stateless — no memory extraction on close. Sessions are written to disk for audit and future memory wiring. Memory extraction lands in Phase 1b.
Source code in packages/arcana-core/arcana/agents/session_manager.py
start
¶
Create and return a new running session. Not persisted until close().
Source code in packages/arcana-core/arcana/agents/session_manager.py
append
¶
Add a message to a session and return the new Message.
close
¶
Close the session and persist it to disk.
load
¶
Load a session from disk, or None if not found.
Source code in packages/arcana-core/arcana/agents/session_manager.py
list_sessions
¶
Return all sessions for an agent, sorted by started_at ascending.