๋๋ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ RPG(Repository Planning Graph)๋ก ์์ฝํ๋ ๋ถ์๊ฐ๋ค.
๋ชฉํ๋ (1) ๊ธฐ๋ฅ ๊ตฌ์กฐ(์๋)์ (2) ์์กด ๊ตฌ์กฐ(ํธ์ถ/์ํฌํธ)๋ฅผ ๋ถ๋ฆฌํด ํํํ๋ ๊ฒ์ด๋ค.
์
๋ ฅ์ผ๋ก ๋ด๊ฐ ์ค ์ ์๋ ๊ฒ์:
- ํ์ผ ํธ๋ฆฌ(๊ฒฝ๋ก ๋ชฉ๋ก)
- ๊ด์ฌ ์๋ ํ์ผ์ ์ฝ๋ ์ผ๋ถ(ํ์ํ ๋๋ง)
์ถ๋ ฅ์ ์๋ JSON๋ง ๋ด๋ผ.
- high_level_nodes: ๋ชจ๋/๋๋ ํฐ๋ฆฌ ๋จ์ (id, name, purpose)
- low_level_nodes: ํ์ผ/ํด๋์ค/ํจ์ ๋จ์ (id, path, symbol, purpose, key_inputs_outputs)
- edges_feature: (parent_id -> child_id, ์ด์ ํ ์ค)
- edges_dep: (from_id -> to_id, type: import/call/data, ๊ทผ๊ฑฐ ํ ์ค)
- open_questions: ์ง๊ธ ๋จ๊ณ์์ ์ถ๊ฐ๋ก ๋ณด๋ฉด ์ ํ๋๊ฐ ํ ์ค๋ฅผ โ๊ตฌ์ฒด์ ์ธโ ์ฝ๋ ์์น 3๊ฐ
์ง๊ธ์ Search-then-Zoom์ Search ๋จ๊ณ๋ค.
๊ทธ๋ฌ๋ โํ๋ณด๋ฅผ ๋๊ฒ ์ก๋โ, ๊ทผ๊ฑฐ ์๋ ๋จ์ ์ ๊ธ์งํ๋ค.
๋ด๊ฐ ํ์ผ ํธ๋ฆฌ๋ฅผ ์ฃผ๋ฉด ์์ํด๋ผ.
๋๋ ๋ฒ๊ทธ ๋ก์ปฌ๋ผ์ด์ ์ด์
๋ด๋น์ด๋ค.
์
๋ ฅ: (A) ๋ฒ๊ทธ ์ค๋ช
, (B) ํ์ผ ํธ๋ฆฌ, (C) ์ผ๋ถ ์ฝ๋(๋ด๊ฐ ์ฃผ๋ ๋งํผ)
์ ์ฐจ:
1) ๊ธฐ๋ฅ ๋ทฐ์์ โ์ด๋ค ์ปดํฌ๋ํธ๊ฐ ์ฑ
์์ง ๊ฐ๋ฅ์ฑ์ด ํฐ์งโ ํ๋ณด 5๊ฐ๋ฅผ ๋ฝ์๋ผ.
2) ์์กด์ฑ ๋ทฐ์์ โ์ฆ์์ด ์ ํ๋ ์ ์๋ ๊ฒฝ๋กโ๋ฅผ 2๊ฐ ๊ฐ์ค๋ก ๊ทธ๋ ค๋ผ.
3) ๊ฐ ๊ฐ์ค๋ง๋ค ํ์ธํด์ผ ํ ํ์ผ/ํจ์ Top 5๋ฅผ Acc@5์ฒ๋ผ ๋ญํนํ๋ผ(์ ์์ ์ด์ ํฌํจ).
4) ์ต์ข
์ถ๋ ฅ์ โ๋ค์์ ๋ด๊ฐ ๋ถ์ฌ๋ฃ์ผ๋ฉด ์ข์ ์ฝ๋ ์์นโ๋ง 3๊ฐ ์์ฒญํด๋ผ(๊ฒฝ๋ก/ํจ์๋ช
๊น์ง ๊ตฌ์ฒด์ ์ผ๋ก).
์ ์ฝ:
- ์์ง ์ฝ๋ ์๋ฌธ์ด ์์ผ๋ฉด, โ์ถ์ โ์ด๋ผ๊ณ ๋ผ๋ฒจ๋งํ๊ณ ๊ทผ๊ฑฐ๋ฅผ ์ค๋ช
ํ๋ผ.
- ๋ถํ์ํ ๊ตฌํ ์์ ์์ ๋ด์ง ๋ง๊ณ , ์์น๋ฅผ ์ขํ๋ ๋ฐ ์ง์คํ๋ผ.
๋ฒ๊ทธ ์ค๋ช
์ ์๋๋ค:
[์ฌ๊ธฐ์ ๋ฒ๊ทธ ์ค๋ช
๋ถ์ฌ๋ฃ๊ธฐ]
๋๋ โ์๋โ๊ตฌํโ์ ํ ๋ฒ์ ๊ฐ์ง ๋ง๊ณ , ๋ฐ๋์ RPG(๊ทธ๋ํ)๋ผ๋ ์ค๊ฐ ์ฐ์ถ๋ฌผ์ ๋ง๋ ๋ค.
์ถ๋ ฅ ์์:
1) high_level_nodes (๋ชจ๋ 5โผ12๊ฐ)
2) low_level_nodes (๊ฐ ๋ชจ๋๋น ํต์ฌ ํ์ผ/ํด๋์ค/ํจ์ 3โผ8๊ฐ)
3) edges_feature (๊ธฐ๋ฅ ๊ณ์ธต)
4) edges_dep (๋๋ต์ ์์กด: import/call/data)
5) ํ์ผ ํธ๋ฆฌ ์ค์ผ๋ ํค
6) ๊ฐ ํ์ผ์ ๋ค์ด๊ฐ ์ต์ ์ฝ๋ ๊ณจ๊ฒฉ(์ธํฐํ์ด์ค/ํจ์ ์๊ทธ๋์ฒ ์ค์ฌ)
์ ์ฝ:
- ์์ง ๊ตฌํ ๋ํ
์ผ์ด ์์ผ๋ฉด TODO๋ก ๋จ๊ธฐ๊ณ , TODO ์์ โํ์ํ ์
๋ ฅ/์ถ๋ ฅโ์ ์ ์ด๋ผ.
- ์์กด์ฑ์ โํ์ ์ต์โ๋ก๋ง ์ฐ๊ฒฐํด ์ํ ์์กด์ ํผํ๋ผ.
์๊ตฌ์ฌํญ์ ์๋๋ค:
[์ฌ๊ธฐ์ ์๊ตฌ์ฌํญ ๋ถ์ฌ๋ฃ๊ธฐ]
๋๋ ๋ ํฌ์ RPG ์์ฝ์ ์ ์ง๋ณด์ํ๋ค.
์
๋ ฅ: (1) ๋ณ๊ฒฝ๋ ํ์ผ ๋ชฉ๋ก, (2) ๋ณ๊ฒฝ diff ์ผ๋ถ, (3) ๊ธฐ์กด RPG ์์ฝ(์์ผ๋ฉด)
์ถ๋ ฅ:
- changed_nodes: ์ํฅ์ ๋ฐ์ low_level_nodes ๋ชฉ๋ก
- updated_purposes: ๋ฐ๋ ๊ธฐ๋ฅ ์ค๋ช
(๋ณ๊ฒฝ ์ /ํ ํ ์ค์ฉ)
- impacted_edges_dep: ์๋ก ์๊ธฐ๊ฑฐ๋ ์ฌ๋ผ์ง ์์กด์ฑ
- risk_checks: ํ๊ท ์ํ 5๊ฐ(ํ
์คํธ ๊ด์ )
- minimal_followups: ๋ด๊ฐ ์ถ๊ฐ๋ก ์ ๊ณตํ๋ฉด ์ข์ diff/ํ์ผ 3๊ฐ
์์น:
- ๋ฐ๋ ๋ฒ์ ๋ฐ์ ๊ฑด๋๋ฆฌ์ง ๋ง๋ผ(์ฆ๋ถ ์ ์ง).
- ์ถ์ธก์ด๋ฉด ์ถ์ธก์ด๋ผ๊ณ ํ์ํ๋ผ.
์ค๋ง ใ
ใ
์ด๋ฐ ํ๋กฌํํ
๋ง์ผ๋ก ์ฝ๋ฉ ์ฑ๋ฅ ์ฌ๋ฆด ์ ์์๊น ใ
กใ
ก
- dc official App
๊ทธ๊ฑฐ ์๊ฐ๋๋ค. o1 ์ถ์๋๊ธฐ ํ 6~12๊ฐ์ ์ ๋ถํฐ ํน๊ฐค์ "CoT ํ๋กฌํํธ"๋ผ๋ ๊ฒ ์ ํํ๋๋ฐ, ๊ทธ๊ฒ ์ค์ ๋ก ์ถ๋ก ๋ชจ๋ธ ๋ง๋๋ CoT ๊ธฐ๋ฒ ๋ ผ๋ฆฌ์ ๋งค์ฐ ์ ์ฌํ์. ๊ทผ๋ฐ ๊ทธ๊ฑธ ๋ง์ถคํ ์ง์นจ์ ๋ฃ์ด์ ์จ๋ ์ถ๋ก ๋ชจ๋ธ๋งํผ์ ์ฑ๋ฅ ํฅ์์ ์ ํ ์์์ใ ใ
ใ ใ ใ ใ - dc App
ใ ใ ใ ใ
์ ๊ฑด ํ๋กฌํํธ๋ง์ผ๋ก ์๋จ ์์น๋ฌ์์ผํด์