AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
ayoai는 자율 에이전트를 위한 인지 기반으로, 세계를 스트리밍하고 런타임을 추론해 로컬 엔진이 실행 가능한 행동을 제공합니다
The cognition substrate for autonomous agents. Stream your world; ayoai reasons off your runtime and returns portable, debuggable behavior your engine runs locally.
개발 도구Python · ShellGitHub @zkysar1온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Ayoai's ARC-AGI-3 integration.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Minimal agent framework for ARC-AGI-3 abstract reasoning games, stripped down to essentials for integration with ayoai.com.
This is a simplified version of the ARC-AGI-3 agent framework containing only:
• Game Loop Driver - Simple main.py that interacts with the ARC-AGI-3 API
• Random Action Picker - Basic random action selection for testing (to be replaced with ayoai.com)
• Core Data Structures - Pydantic models for game data (structs.py)
• Recording Utilities - Gameplay recording to JSONL files (recorder.py)
• Minimal Dependencies - Just 3 core packages (dotenv, pydantic, requests)README 전문 보기 ↗Minimal agent framework for ARC-AGI-3 abstract reasoning games, stripped down to essentials for integration with ayoai.com.
This is a simplified version of the ARC-AGI-3 agent framework containing only:
All LLM-related code, agent abstractions, multi-agent orchestration (Swarm), and optional features have been removed for clarity.
uv run main.py --game ls20-fa137e247ce6uv run main.py --game ls20-fa137e247ce6 --recorduv run main.py --game ls20-fa137e247ce6 --tags "experiment,v1.0"Install uv package manager if not already installed:
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
uv sync
Get an API key from the ARC-AGI-3 Website and set it as an environment variable:
export ARC_API_KEY="your_api_key_here"
Alternatively, create a .env file in the project root:
ARC_API_KEY=your_api_key_here
Game IDs include a unique hash suffix (e.g., ls20-fa137e247ce6). To see current game IDs, run:
uv run main.py --game test
The error message will show all available games:
Available games: ls20-fa137e247ce6, as66-821a4dcad9c2, vc33-6ae7bf49eea5, sp80-0605ab9e5b2a, lp85-d265526edbaa, ft09-b8377d4b7815
Common game prefixes:
ls20-* - Locksmith game (20 levels)as66-* - Another game (66 levels)vc33-* - Another game (33 levels)Run the game loop with random actions (for testing):
uv run main.py --game ls20-fa137e247ce6
The game currently uses a simple random action picker for testing the game loop. This will eventually be replaced with ayoai.com integration.
Record gameplay to a JSONL file for later playback:
uv run main.py --game ls20-fa137e247ce6 --record
Recordings are saved to the recordings/ directory.
Add tags to track scorecard results:
uv run main.py --game ls20-fa137e247ce6 --tags "experiment,v1.0"
-g, --game Game ID to play (required). Example: "ls20-fa137e247ce6"
-r, --record Record gameplay to a JSONL file and keep a per-run copy of logs.log
(on by default; --no-record turns it off)
-t, --tags Comma-separated tags for scorecard (optional)
Note: Game IDs include unique hash suffixes. Run with an invalid game ID to see the list of available games.
arc-agi 0.9.9 and arcengine 0.9.3 run games locally from environment_files/. Play one dev game through the local solver and print FPS, end state and levels_completed (held-out exam games in eval/heldout.json are refused):
.venv/bin/python offline_run.py --game ls20 --frame-out tests/fixtures/offline_frame_ls20.json
Measured on cc-03 (2026-09-24): ls20, 401 actions in 0.63 s = 640 FPS through the solver, 1853 FPS bare engine; NOT_FINISHED, levels_completed 0 of win_levels 7. Frames carry levels_completed and win_levels; there is no score field.
Where uv is not installed, the gate is .venv/bin/python -m pytest -q -p no:cacheprovider, .venv/bin/ruff check . and .venv/bin/mypy ..
Run the test suite from the repo root:
uv run python -m pytest
Use python -m pytest. The bare pytest script cannot collect this repo
(ModuleNotFoundError: structs; see conftest.py). The full suite ran 1600 passed and
16 skipped, measured 2026-09-28 at 2ee06f4 (see CLAUDE.md).
The choose_random_action() function in main.py:41 is a placeholder that currently generates random actions for testing. This is where you'll integrate with ayoai.com:
def choose_random_action(frame: FrameData) -> GameAction:
"""
Simple random action picker for testing the game loop.
TODO: Replace this with ayoai.com integration:
- Send frame data to ayoai.com
- Receive action decision
- Return the chosen action
"""
# Reset if game not started or game over
if frame.state in [GameState.NOT_PLAYED, GameState.GAME_OVER]:
return GameAction.RESET
# Pick random action from available (exclude RESET)
actions = [a for a in GameAction if a != GameAction.RESET]
return random.choice(actions)
To integrate with ayoai.com, replace this function with API calls to your decision-making service.
The send_action() function (main.py:59) handles communication with the ARC-AGI-3 API:
def send_action(
session: requests.Session,
game_id: str,
card_id: str,
action: GameAction,
guid: str | None = None
) -> FrameData | None:
Important: The guid parameter is required for all actions except RESET:
guid in the returned FrameDataExample flow:
The game loop (main.py:229) automatically passes the current frame's guid to each action:
new_frame = send_action(session, args.game, card_id, action, current_frame.guid)
The GameState enum in structs.py defines the possible game states:
NOT_PLAYED - Game hasn't been started yetNOT_FINISHED - Game is currently in progressWIN - Game was completed successfullyGAME_OVER - Game ended without winningYour integration code should check for terminal states (WIN or GAME_OVER) to know when the game has ended.
├── tests/
│ └── unit/ # Unit tests
├── main.py # Game loop driver (entry point)
├── structs.py # Data structures (FrameData, GameAction, etc.)
├── recorder.py # Gameplay recording utilities
├── README.md # This file
└── pyproject.toml # Dependencies and configuration
This project uses:
Set up pre-commit hooks:
pip install pre-commit
pre-commit install
This project contains code derived from the ARC-AGI-3-Agents repository.
C:\ZakNoCloud\GitHub\Ayoai\Ayoai-ARC-AGI-3-Integration\.venv cannot be used because it is not a valid Python environment (no Python executable was found)"""