Active-ARC Agents
Project description
Active-ARC
A Python SDK for building agents that solve Active-ARC tasks.
Installation
pip install active-arc
Or with uv:
uv add active-arc
Quick Start
from active_arc import Agent, Swarm, SessionState, Grid
class MyAgent(Agent):
MAX_QUERIES = 50
def query(self, session: SessionState) -> Grid | None:
"""Choose an input grid to query the oracle. Return None to stop querying."""
# Your logic here
return [[1, 2], [3, 4]]
def submit(self, session: SessionState) -> Grid:
"""Predict the output grid for session.test_input."""
# Your logic here
return session.test_input
# Run on tasks
swarm = Swarm(
tasks=["007bbfb7"],
agent_class=MyAgent,
)
swarm.run()
Configuration
Set your API key as an environment variable:
export ACTIVE_ARC_API_KEY="your_api_key_here"
Or create a .env file:
ACTIVE_ARC_API_KEY=your_api_key_here
Agent API
Agents must implement two methods:
| Method | Purpose |
|---|---|
query(session) -> Grid | None |
Choose an input grid to query the oracle. Return None to stop querying and proceed to test phase. |
submit(session) -> Grid |
Predict the output grid for session.test_input. |
Session State
The SessionState object provides:
session.task_id- Current task IDsession.query_count- Number of queries madesession.queries- List ofQueryRecordobjects (input/output pairs)session.test_input- The test input grid (available in test phase)session.phase- Current phase (learning,test, orcompleted)
Optional Methods
Override these for custom reasoning metadata:
def get_query_reasoning(self, session: SessionState, query_input: Grid) -> Any:
"""Return metadata to store with this query."""
return {"model": "gpt-4o", "tokens": 150}
def get_submit_reasoning(self, session: SessionState, answer: Grid) -> Any:
"""Return metadata to store with the submission."""
return {"confidence": 0.85}
Swarm API
The Swarm class runs agents on multiple tasks:
from active_arc import Swarm, Random
# Using a built-in agent
swarm = Swarm(tasks=["007bbfb7", "00d62c1b"], agent="random")
# Using a custom agent class
swarm = Swarm(tasks=["007bbfb7"], agent_class=MyAgent)
# With explicit configuration
swarm = Swarm(
tasks=["007bbfb7"],
root_url="https://api.active-arc.com",
agent_class=MyAgent,
tags=["experiment-1", "v1.0"],
)
scorecard = swarm.run()
print(f"Solved: {scorecard.solved}/{scorecard.attempted}")
Built-in Agents
Random Agent
Makes random queries and returns the test input as the answer:
from active_arc import Swarm
swarm = Swarm(tasks=["007bbfb7"], agent="random")
swarm.run()
LLM Agent
Uses OpenAI's API to make intelligent queries:
from active_arc import Swarm
# Requires OPENAI_API_KEY environment variable
swarm = Swarm(tasks=["007bbfb7"], agent="llm")
swarm.run()
CLI Usage
Run agents from the command line:
# Run random agent on a specific task
python main.py -a random -t 007bbfb7
# Run with custom tags
python main.py -a random -t 007bbfb7 --tags "experiment,v1.0"
Data Types
from active_arc import (
Grid, # list[list[int]] - 2D grid of integers 0-9
SessionState, # Current session state
SessionPhase, # Enum: LEARNING, TEST, COMPLETED
Scorecard, # Results for all tasks
TaskCard, # Results for a single task
QueryRecord, # Input/output pair from a query
)
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file active_arc-0.1.0.tar.gz.
File metadata
- Download URL: active_arc-0.1.0.tar.gz
- Upload date:
- Size: 42.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4904a73f36be562a6e09a9fa5b052b331eb62bdbf6300cbb3612facff72c32a2
|
|
| MD5 |
c54176b1fcd638e9f145ed5e994128d2
|
|
| BLAKE2b-256 |
f891e48b165d331676b9effb2343607495416dc58798440d5d21758fdd025657
|
File details
Details for the file active_arc-0.1.0-py3-none-any.whl.
File metadata
- Download URL: active_arc-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36ef2940bfd24c1d6f1e9a28e7ab2592d0d9b784dc649f4c1623064d6bf0d8ac
|
|
| MD5 |
984200ab40e3e04063bc990a3f62b7a3
|
|
| BLAKE2b-256 |
9bf7f90c77563bd6a34f914823bbc108d6b45b7c2bd2c402d6e89750b425153f
|