FAEA: Frontier Agent as Embodied Agent
January 29, 2026 · View on GitHub
This repository contains evaluation code and results for the FAEA (Frontier Agent as Embodied Agent) research project, which explores how frontier AI models can directly control robotic manipulation tasks through code generation.
Key Insight
Modern frontier AI models (like Claude Opus 4.5) can achieve strong performance on robotic manipulation benchmarks by:
- Reading API documentation and understanding task requirements
- Writing and iteratively refining control scripts
- Using visual feedback and state information to correct errors
This approach requires no task-specific training or demonstrations beyond reference examples.
Repository Structure
faea/
├── environments/ # Conda/Mamba environment specifications
│ ├── libero_sim.yml
│ ├── metaworld_sim.yml
│ └── maniskill_sim.yml
│
├── benchmarks/
│ ├── libero/ # LIBERO benchmark evaluation
│ │ └── src/ # Source code and prompt templates
│ │
│ ├── metaworld/ # MetaWorld benchmark evaluation
│ │ └── src/
│ │
│ └── maniskill/ # ManiSkill benchmark evaluation
│ └── src/
│
└── examples/ # Example episode scripts
├── libero_pick_place.py
├── metaworld_pick_place.py
└── maniskill_pick_cube.py
Quick Start
1. Set up environment
For LIBERO:
micromamba create -f environments/libero_sim.yml
micromamba activate libero_sim
For MetaWorld:
micromamba create -f environments/metaworld_sim.yml
micromamba activate metaworld_sim
For ManiSkill:
micromamba create -f environments/maniskill_sim.yml
micromamba activate maniskill_sim
2. Run an experiment
# List available benchmarks
python benchmarks/libero/src/run_libero_claude.py --list-benchmarks
# List tasks in a benchmark
python benchmarks/libero/src/run_libero_claude.py --list-tasks --benchmark libero_10
# Run a single task
python benchmarks/libero/src/run_libero_claude.py --experiment test --task-id 0
# Run all tasks in a benchmark
python benchmarks/libero/src/run_libero_claude.py --experiment full_eval --all --benchmark libero_90
Prompt templates
Each benchmark includes two prompt templates:
prompt_template_baseline.md— minimal prompt (default)prompt_template_with_coaching.md— includes action space references, tips, and boilerplate
Use --prompt-template to select a template:
# ManiSkill with coaching tips
python benchmarks/maniskill/src/run_maniskill_claude.py --experiment exp_001 --task-id 0 \
--prompt-template benchmarks/maniskill/src/prompt_template_with_coaching.md
# MetaWorld with coaching tips
python benchmarks/metaworld/src/run_metaworld_claude.py --experiment exp_001 --task-id 40 \
--prompt-template benchmarks/metaworld/src/prompt_template_with_coaching.md
3. View results
Results are saved to benchmarks/<benchmark>/data/<experiment>/:
run_summary.json: Overall experiment statisticsepisode_N.py: Generated control script for task Nepisode_N.mp4: Video recording of the episodemeta_N.json: Task metadata (success, num_tries)
Requirements
- Python 3.10+
- Claude Agent SDK (
pip install claude-agent-sdk) - Benchmark-specific packages (libero, metaworld, or mani-skill)
- ANTHROPIC_API_KEY environment variable set
Citation
If you use this code in your research, please cite:
@article{tsui2026demonstration,
title={Demonstration-Free Robotic Control via LLM Agents},
author={Tsui, Brian Y. and Fang, Alan Y. and Hwu, Tiffany J.},
journal={arXiv preprint arXiv:2601.20334},
year={2026},
url={https://arxiv.org/abs/2601.20334}
}
License
Apache License 2.0 - see LICENSE for details.