====== Agentless ======
**Agentless** is a lightweight approach to autonomous software engineering that solves development problems **without** persistent agent loops.(("Agentless: Demystifying LLM-based Software Engineering Agents." [[https://arxiv.org/abs/2407.01489|arXiv:2407.01489]])) Developed by researchers from the University of Illinois Urbana-Champaign, it follows a simple three-phase "localize-then-repair" methodology. With over **2,000 GitHub stars**, Agentless achieved 40.7% on SWE-bench Lite and 50.8% on SWE-bench Verified when integrated with Claude 3.5 Sonnet — proving that simpler approaches can rival complex agent systems.
GitHub: [[https://github.com/OpenAutoCoder/Agentless|OpenAutoCoder/Agentless]](([[https://github.com/OpenAutoCoder/Agentless|GitHub Repository]]))(([[https://openautocoder.github.io/|Project Website]]))
===== Key Features =====
* **No Agent Loop** — Unlike most AI coding tools, Agentless uses a fixed three-phase pipeline rather than an iterative agent loop
* **Localize-Then-Repair** — Hierarchical fault localization followed by targeted patch generation
* **Cost Efficient** — Significantly cheaper per task than agent-based approaches due to fewer LLM calls
* **SWE-bench Performance** — 40.7% on SWE-bench Lite, 50.8% on SWE-bench Verified (with Claude 3.5 Sonnet)
* **Best Open-Source Approach** — Achieved top open-source results on SWE-bench Lite at time of release
* **Multi-Model Support** — Works with GPT-4, Claude 3.5 Sonnet, and other LLMs
* **Reproducible** — Deterministic pipeline with published artifacts for all benchmark runs
===== Architecture =====
Agentless follows a deliberate anti-pattern to traditional agent design:
* **Phase 1: Localization** — Hierarchical narrowing from repository level to file, class, method, and finally specific code lines
* **Phase 2: Repair** — Generate candidate patches using the localized context
* **Phase 3: Selection** — Rank and select the best patch using test execution and heuristics
* **No Iterative Loop** — Each phase runs once; no backtracking or multi-turn agent conversation
* **Minimal Tool Use** — Only needs file reading and test execution, no complex tool orchestration
===== Usage Example =====
# Clone and set up
git clone https://github.com/OpenAutoCoder/Agentless.git
cd Agentless
# Create conda environment
conda create -n agentless python=3.11
conda activate agentless
pip install -r requirements.txt
# Set API key
export OPENAI_API_KEY="your-key-here"
# Run localization phase
python3 agentless/localize.py \
--instance django__django-16379 \
--model gpt-4
# Run repair phase
python3 agentless/repair.py \
--instance django__django-16379 \
--localization results/localization.json
# Run patch selection
python3 agentless/select.py \
--candidates results/patches/
===== How It Works =====
graph TD
A[Bug Report / Issue] --> B[Phase 1: Localization]
B --> C[Repository-Level Analysis]
C --> D[File-Level Narrowing]
D --> E[Class/Method-Level Narrowing]
E --> F[Line-Level Localization]
F --> G[Phase 2: Repair]
G --> H[Context Extraction]
H --> I[LLM Patch Generation]
I --> J[Multiple Candidate Patches]
J --> K[Phase 3: Selection]
K --> L[Test Execution]
L --> M[Patch Ranking]
M --> N[Best Patch Output]
style B fill:#e1f5fe
style G fill:#fff3e0
style K fill:#e8f5e9
===== Philosophy: Why Agentless? =====
The Agentless approach challenges the assumption that autonomous software engineering requires complex agent architectures:
* **Simplicity** — A fixed pipeline is easier to understand, debug, and improve than an open-ended agent loop
* **Predictability** — Deterministic phases produce more consistent results than stochastic agent exploration
* **Cost** — Fewer LLM calls mean significantly lower API costs per task
* **Reproducibility** — Fixed pipeline enables fair comparisons and scientific evaluation
* **Baseline Value** — Provides a strong baseline against which agent-based approaches should be measured
The authors argue that if a simple three-phase pipeline can match or exceed agent-based systems, the field should question whether agent complexity is always justified. (([[https://arxiv.org/abs/2407.01489|Research Paper]]))
===== See Also =====
* [[autocoderover|AutoCodeRover]] — Agent-based autonomous program improvement
* [[trae_agent|Trae Agent]] — ByteDance's research-friendly CLI agent
* [[smol_developer|Smol Developer]] — Generates entire codebases from a prompt
* [[devon|Devon]] — Open-source pair programmer
* [[cline|Cline]] — Model-agnostic autonomous coding agent
===== References =====