Hyperagent: Generalist software engineering agents to solve coding tasks at scale

์ €์ž: H. N. Phan, Phong X. Nguyen, Nghi D. Q. Bui | ๋‚ ์งœ: 2024 | DOI: ๋ฏธ์ œ๊ณต 📄 PDF


Essence

Figure 1

๊ทธ๋ฆผ 1: ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ์ž‘์—…์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐœ์ž์˜ ์ „ํ˜•์ ์ธ ์›Œํฌํ”Œ๋กœ์šฐ (๋ถ„์„ & ๊ณ„ํš โ†’ ๊ธฐ๋Šฅ ์œ„์น˜ ํŒŒ์•… โ†’ ์ฝ”๋“œ ํŽธ์ง‘ โ†’ ์‹คํ–‰)

HYPERAGENT๋Š” ์ธ๊ฐ„ ๊ฐœ๋ฐœ์ž์˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋ชจ๋ฐฉํ•˜๋Š” ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ์œผ๋กœ, ํ”Œ๋ž˜๋„ˆ(Planner), ๋„ค๋น„๊ฒŒ์ดํ„ฐ(Navigator), ์ฝ”๋“œ ์—๋””ํ„ฐ(Code Editor), ์‹คํ–‰๊ธฐ(Executor)์˜ ๋„ค ๊ฐ€์ง€ ์ „๋ฌธํ™”๋œ ์—์ด์ „ํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ์ž‘์—…์„ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์ดˆ์˜ ํ†ตํ•ฉ ์‹œ์Šคํ…œ์ด๋‹ค.

Motivation

Achievement

Figure 2

๊ทธ๋ฆผ 2: HYPERAGENT์˜ ๊ฐœ์š” - ๋„ค ๊ฐ€์ง€ ์—์ด์ „ํŠธ(Planner, Navigator, Code Editor, Executor)๋กœ ๊ตฌ์„ฑ๋œ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ

  1. ๋ฒ”์šฉ์„ฑ๊ณผ ์„ฑ๋Šฅ์˜ ๋™์‹œ ๋‹ฌ์„ฑ: HYPERAGENT๋Š” Python(SWE-Bench), Java(Defects4J), Repository-level ์ฝ”๋“œ ์ƒ์„ฑ(RepoExec) ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ์ž‘์—…์—์„œ SOTA(State-of-the-Art) ์„ฑ๋Šฅ์„ ๋‹ฌ์„ฑํ•˜๋Š” ์ตœ์ดˆ์˜ off-the-shelf ์‹œ์Šคํ…œ์ž„. GitHub ์ด์Šˆ ํ•ด๊ฒฐ์—์„œ ๊ฐ•๋ ฅํ•œ ๋ฒ ์ด์Šค๋ผ์ธ๋“ค์„ ์ดˆ๊ณผ ๋‹ฌ์„ฑ.
  2. ์ „๋ฌธํ™”๋œ ์—์ด์ „ํŠธ ์„ค๊ณ„์˜ ํšจ์œจ์„ฑ: Planner์™€ Navigator๋Š” ๊ฒฝ๋Ÿ‰ LLM์„ ์‚ฌ์šฉํ•˜๊ณ , Code Editor์™€ Executor๋Š” ๊ณ ๊ธ‰ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ, ๊ณ„์‚ฐ ๋น„์šฉ์„ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ๋„ ๋ณต์žกํ•œ ์ฝ”๋“œ ์ž‘์—…์—์„œ ๋†’์€ ์„ฑ๋Šฅ ์œ ์ง€. ์ด๋Š” ์—์ด์ „ํŠธ๋ณ„ ์ž‘์—… ํŠน์„ฑ์— ๋”ฐ๋ฅธ ์ตœ์ ํ™”๋œ ๋ฆฌ์†Œ์Šค ํ• ๋‹น.
  3. ๊ด‘๋ฒ”์œ„ํ•œ ์ ์šฉ ๊ฐ€๋Šฅ์„ฑ: Task-specific ์ ์‘ ์—†์ด๋„ ๋‹ค์–‘ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ๋ฒค์น˜๋งˆํฌ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•˜๋ฉฐ, ์ด๋Š” ์‹ค์ œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์œผ๋กœ์˜ ์ „์ด ๊ฐ€๋Šฅ์„ฑ์„ ๊ฐ•๋ ฅํžˆ ์ž…์ฆํ•จ.

How

Figure 3

๊ทธ๋ฆผ 3: ์—์ด์ „ํŠธ ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ์˜ˆ์‹œ - Planner์˜ ์‚ฌ๊ณ (Thought)์™€ ์š”์ฒญ(Request)์ด Navigator, Code Editor, Executor๋ฅผ ์ฐจ๋ก€๋กœ ํ˜ธ์ถœํ•˜๋Š” ํ˜‘๋ ฅ ๊ณผ์ •

Originality

Limitation & Further Study

Evaluation

Novelty: 4.5/5 Technical Soundness: 4/5 Significance: 4.5/5 Clarity: 4/5 Overall: 4.2/5

์ดํ‰: HYPERAGENT๋Š” ์ธ๊ฐ„ ๊ฐœ๋ฐœ์ž์˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๋ชจ๋ฐฉํ•˜๋Š” ์„ค๊ณ„ ์ฒ ํ•™์œผ๋กœ ๋ฒ”์šฉ์„ฑ, ํšจ์œจ์„ฑ, ํ™•์žฅ์„ฑ์„ ๋ชจ๋‘ ๋‹ฌ์„ฑํ•œ ์‹ค์šฉ์ ์ด๊ณ  ํ˜์‹ ์ ์ธ ๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ์ด๋ฉฐ, ๋‹ค์–‘ํ•œ ๋ฒค์น˜๋งˆํฌ์—์„œ์˜ ๊ฐ•๋ ฅํ•œ ์„ฑ๋Šฅ ์ž…์ฆ์œผ๋กœ ์‹ค์ œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์œผ๋กœ์˜ ์ฆ‰์‹œ์  ์ ์šฉ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์—ฌ์ฃผ๋Š” ์˜๋ฏธ ์žˆ๋Š” ๊ธฐ์—ฌ์ด๋‹ค.

๊ฐ™์ด ๋ณด๋ฉด ์ข‹์€ ๋…ผ๋ฌธ

๊ธฐ๋ฐ˜ ์—ฐ๊ตฌ
From LLMs to LLM-based Agents for Software Engineering ๋…ผ๋ฌธ์€ LLM ์—์ด์ „ํŠธ๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๋ฌธ์ œ์— ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๋Š”์ง€ ์ข…ํ•ฉ์  ๋ฐฐ๊ฒฝ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.
๊ธฐ๋ฐ˜ ์—ฐ๊ตฌ
๋ฒ”์šฉ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ์™€ ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ตฌ์กฐ์  ์š”์†Œ๋“ค์„ ์ž๋™ํ™” ๋„๊ตฌ ์ƒ์„ฑ์— ์ „์ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์ ‘๊ทผ
416๋ฒˆ ๋…ผ๋ฌธ์€ ๋ฒ”์šฉ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ์—์ด์ „ํŠธ(Hyperagent)๋กœ์„œ ChatDev์˜ ๋‹ค์ค‘ ์—์ด์ „ํŠธ ํ˜‘๋™ SW์„ค๊ณ„์™€ ๊ฐœ๋…์ ยท๊ธฐ์ˆ ์  ์ฐจ์ด๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์ ‘๊ทผ
Executable Code Actions ๋…ผ๋ฌธ์€ ๋‹ค์–‘ํ•œ ์‹ค์„ธ๊ณ„ ์ฝ”๋”ฉ ์ž‘์—…์—์„œ LLM ์—์ด์ „ํŠธ ์„ฑ๋Šฅ์„ ์‹œํ—˜ํ•ด HYPERAGENT์™€ ์œ ์‚ฌ๋ฌธ์ œ๋ฅผ ๋‹ค๋ฃจ์ง€๋งŒ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์ ‘๊ทผ
์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ์ž‘์—…์„ ์œ„ํ•œ AI ๊ฐœ๋ฐœ์ž ํ”Œ๋žซํผ์œผ๋กœ, ๋‹ค์–‘ํ•œ ์–ธ์–ด ๋ฐ ํ™˜๊ฒฝ์—์„œ์˜ ๋ฒ”์šฉ์„ฑ๊ณผ ์‹ค์šฉ์„ฑ์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์ ‘๊ทผ
416๋ฒˆ ๋…ผ๋ฌธ์€ ์ผ๋ฐ˜ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ์—์ด์ „ํŠธ ์„ค๊ณ„ ๊ด€์ ์—์„œ OpenHands์™€ ๋น„๊ต๋˜๋Š” ์ดˆ์ ์œผ๋กœ, ๋‹ค์–‘ํ•œ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ platform ๊ตฌํ˜„์„ ๋…ผํ•œ๋‹ค.
๋‹ค๋ฅธ ์ ‘๊ทผ
AutoP2C๋Š” ๋…ผ๋ฌธ ๊ธฐ๋ฐ˜ ์ฝ”๋“œ ์ €์žฅ์†Œ ์ž๋™ํ™”์— ์ง‘์ค‘ํ•˜๋Š” ๋ฐ˜๋ฉด, HyperAgent๋Š” ๋ฒ”์šฉ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ์ž‘์—…์—์„œ์˜ ์ž๋™ํ™” ๋Šฅ๋ ฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์ ‘๊ทผ
๋ฉ€ํ‹ฐ์—์ด์ „ํŠธ ์‹œ์Šคํ…œ์˜ ๊ณผํ•™ ๋ฌธ์ œ ์ ์šฉ ์‚ฌ๋ก€๋กœ, ์†Œํ”„ํŠธ์›จ์–ด ์™ธ ๊ณผํ•™ ์‹คํ—˜ ์ž๋™ํ™”์—์˜ ํ™•์žฅ์„ฑ์„ ๋น„๊ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ›„์† ์—ฐ๊ตฌ
๋ฌผ๋ฆฌ ํ†ตํ•ฉํ˜• ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฒ”์šฉ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ์ž๋™ํ™”๋ฅผ ์ง€ํ–ฅํ•˜๋Š” ์ผ๋ฐ˜ํ™”๋œ ๋…ผ์˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
ํ›„์† ์—ฐ๊ตฌ
๊ณต๊ฐœ๋œ ๋…ผ๋ฌธ ์ฝ”๋“œ ์ €์žฅ์†Œ๋กœ๋ถ€ํ„ฐ LLM ๋„๊ตฌ๋ฅผ ์ž๋™ ์ƒ์„ฑํ•˜๋Š” ์—์ด์ „ํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, HYPERAGENT์˜ ์ž๋™ํ™”๋œ ์ฝ”๋”ฉ workflow ์ง„ํ™”์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
์‘์šฉ ์‚ฌ๋ก€
์‹ค์ œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ LLM ์—์ด์ „ํŠธ ์ž๋™ํ™”๊ฐ€ ์‹คํ˜„๋œ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ ์‚ฌ๋ก€๋ฅผ ์ถ”๊ฐ€๋กœ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
← ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

๐ŸŽง Audio Overview

์ด ๋…ผ๋ฌธ ๋ฆฌ๋ทฐ๋ฅผ ํŒŸ์บ์ŠคํŠธํ˜• ์˜ค๋””์˜ค๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (Gemini ยท ํ‚ค๋Š” ๋ธŒ๋ผ์šฐ์ €์—๋งŒ ์ €์žฅ ยท ์™„์„ฑ๋ณธ์€ ์ด๋ฉ”์ผ๋กœ๋„ ์ „์†ก)
โ–ธ ๊ณ ๊ธ‰: ๊ตฌ์„ฑ ๋ฐฉํ–ฅ(๋Œ€๋ณธ ์ž‘์„ฑ ์ง€์นจ) ์ง์ ‘ ์ˆ˜์ •