Skip to main content

Teacher/Student orchestration toolkit for Bring-Your-Own-Agent workflows.

Project description

Atlas SDK — PyPI Quickstart

Atlas wraps your Bring-Your-Own-Agent (BYOA) in a guided Teacher → Student → Reward loop. Install the SDK from PyPI, point it at your agent, and Atlas handles planning, orchestration, evaluation, and optional persistence for you.

Install in Minutes

python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install --upgrade pip
pip install arc-atlas
  • Python 3.10 or newer is required (3.13 recommended).
  • For development tooling and tests, install extras with pip install arc-atlas[dev].

Configure Your Environment

Set API keys before running Atlas:

export OPENAI_API_KEY=sk-...
# Optional judges (only if you enable the RIM helpers)
export GOOGLE_API_KEY=...

Atlas reads additional provider keys from adapter-specific llm.api_key_env fields.

Create a Minimal Config

Save the following as atlas_quickstart.yaml (storage disabled by default):

agent:
  type: openai
  name: quickstart-openai-agent
  system_prompt: |
    You are the Atlas Student. Follow instructions carefully and keep responses concise.
  tools: []
  llm:
    provider: openai
    model: gpt-4o-mini
    api_key_env: OPENAI_API_KEY
    temperature: 0.1
    max_output_tokens: 1024
student:
  max_plan_tokens: 1024
  max_step_tokens: 1024
  max_synthesis_tokens: 1024
teacher:
  llm:
    provider: openai
    model: gpt-4o-mini
    api_key_env: OPENAI_API_KEY
    temperature: 0.1
    max_output_tokens: 768
orchestration:
  max_retries: 1
  step_timeout_seconds: 600
  emit_intermediate_steps: true
rim:
  active_judges:
    process: false
    helpfulness: false
storage: null

Run Your First Task

from atlas import core

result = core.run(
    task="Summarise the latest Atlas SDK updates",
    config_path="atlas_quickstart.yaml",
)

print(result.final_answer)

result is an atlas.types.Result containing the final answer, reviewed plan, and per-step evaluations. Set stream_progress=True to mirror planner/executor telemetry in your terminal.

Wrap Your Existing Agent

OpenAI-Compatible Chat Agent

from atlas import core
from atlas.connectors import create_adapter
from atlas.config.models import OpenAIAdapterConfig

adapter = create_adapter(OpenAIAdapterConfig(
    type="openai",
    name="my-openai-agent",
    system_prompt="You are a helpful assistant.",
    tools=[],
    llm={
        "provider": "openai",
        "model": "gpt-4o-mini",
        "api_key_env": "OPENAI_API_KEY",
    },
))

result = core.run(
    task="Draft a product brief for Atlas",
    config_path="atlas_quickstart.yaml",
    adapter_override=adapter,
)

Override the adapter to reuse the same orchestration settings with different agents.

Local Python Function

# my_agent.py
def respond(prompt: str, metadata: dict | None = None) -> str:
    return f"echo: {prompt}"

Update the config’s agent block:

agent:
  type: python
  name: local-function-agent
  system_prompt: |
    You call a local Python function named respond.
  import_path: my_agent
  attribute: respond
  tools: []

Atlas imports your callable (optionally from working_directory), handles async execution, generator outputs, and metadata passing.

HTTP Endpoint

agent:
  type: http_api
  name: http-agent
  system_prompt: |
    You delegate work to a REST endpoint that accepts {"prompt": "..."}.
  transport:
    base_url: https://your-agent.example.com/v1/atlas
    timeout_seconds: 60
  payload_template:
    prompt: "{{ prompt }}"
  result_path: ["data", "output"]
  tools:
    - name: web_search
      description: Search the web.
      parameters:
        type: object
        properties:
          query:
            type: string
        required: [query]

Atlas retries requests based on the adapter’s retry policy and normalises JSON responses using result_path.

Optional: Persist Runs with PostgreSQL

docker compose -f docker/docker-compose.yaml up -d postgres

export STORAGE__DATABASE_URL=postgresql://atlas:atlas@localhost:5433/atlas_arc_demo

Add a storage section to your config when you want Atlas to log plans, attempts, and telemetry into Postgres for later inspection.

Observe and Export

  • Set stream_progress=True in core.run to stream planner/executor/judge events.
  • Export stored sessions with arc-atlas --database-url postgresql://... --output traces.jsonl.
  • Explore docs/examples/ for telemetry and export walkthroughs.

Next Steps

  • Browse configs/examples/ for richer orchestration templates.
  • Enable RIM judges by toggling rim.active_judges.
  • Integrate Atlas into async services with core.arun.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arc_atlas-0.1.2.tar.gz (71.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arc_atlas-0.1.2-py3-none-any.whl (89.2 kB view details)

Uploaded Python 3

File details

Details for the file arc_atlas-0.1.2.tar.gz.

File metadata

  • Download URL: arc_atlas-0.1.2.tar.gz
  • Upload date:
  • Size: 71.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for arc_atlas-0.1.2.tar.gz
Algorithm Hash digest
SHA256 506a09cbcb1b0baf81414d2ee7835bc74d27f2d2f04cb83d9d505274068d4f13
MD5 202786ca6c4dd0668c2b233b7472ff16
BLAKE2b-256 22c7e9a0ab913192b0ae89372c6f5f29df18ed6688fefc81cc196c1c8a6930e3

See more details on using hashes here.

File details

Details for the file arc_atlas-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: arc_atlas-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 89.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for arc_atlas-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d5fd502df8eee428887d5fa6cc3c19d92fdea615d71364ab9988656eaaa6f0fe
MD5 5e060b5a2b5a1a120804ff34eedee4c2
BLAKE2b-256 21ddef4f5d446f6f9aa69ff2de3a36ed7ab36bce02c72bfae94fc36055f5b416

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page