尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證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)"""