Transcript
00:00:00안녕하세요 여러분, 이번 영상은 '에이전트 대 오픈 코드' 데모이며
00:00:09이 예제를 통해 두 가지 하네스를 테스트해 보겠습니다. 제가 지난 영상에서
00:00:20바이브 코딩(vibe coded)으로 만든 게임인데요, 네, 이 영상에서는
00:00:29이 게임을 어떻게 고칠지 테스트해 보고 싶습니다. 몇 가지 버그가 있거든요. 보시다시피
00:00:38X 마커가 매치에서 이겼지만 셀이 강조 표시되지 않습니다. 그래서 로컬 LLM인
00:00:51Qwen 2.5 3B로 수정을 시도해 보려 합니다. 개인적으로 현재 컴퓨터에서
00:01:04돌릴 수 있는 최고의 모델이라고 생각합니다. 먼저 PAI로 시도해 보죠.
00:01:16이것이 PAI입니다. 소스 파일들이 별도로 분리되어 있는
00:01:30이 디렉토리 안에서 실행하겠습니다. index.html, game.js, style.js가 있으며
00:01:42두 하네스 모두에 동일한 프롬프트를 입력하고 결과를 비교해 보겠습니다.
00:01:55작업에 시간이 얼마나 걸리는지 확인하기 위해 타이머도 사용할 겁니다. 프롬프트는 이렇습니다.
00:02:11“셀 큐브를 더 잘 보이게 만들고 그 사이에 간격을 추가해 줘.”
00:02:19여기 보시는 것처럼 큐브들이 서로 너무 붙어 있기 때문입니다. 그리고
00:02:28두 번째 작업은 승리 로직 개선입니다. 승리한 마커들은
00:02:37녹색으로 변해야 합니다. 플레이어가 어떤 마커로 이겼는지
00:02:46보이지 않는 문제도 있으니까요. 네, 프롬프트를 따르기 시작했습니다.
00:02:59PAI가 현재 디렉토리를 분석하기 시작합니다. 여기서 사용된
00:03:09컨텍스트를 확인할 수 있습니다. 하지만 게임을 고치는 데 걸린
00:03:20시간을 보는 것이 더 흥미로울 것 같네요. 작업이 진행 중입니다. 그 후
00:03:30Open Code로 같은 작업을 수행할 것이며, 동일한 테스트를 위해 저장소를 초기화하겠습니다.
00:03:41이제 영상을 잠시 멈추고 게임 수정이 완료되면 다시 뵙겠습니다.
00:04:00좋습니다, 완료됐습니다. 변경 사항에 대한 보고서를 여전히 작성 중이네요.
00:04:20그다음에 결과를 테스트하겠습니다. 됐네요. Qwen 2.5로 7분 44초가 걸렸습니다.
00:04:38결과를 확인해 보죠. 이것이 보고서입니다. 코드에서 기술적으로
00:04:47어떤 일이 일어났는지 보여줍니다. 보시다시피 game.js 파일을 여러 번,
00:04:58여러 부분으로 나누어 부분적으로 읽었습니다. 이것은 diff 파일입니다. 보시다시피
00:05:09파일에 수정할 내용이 많았습니다. 총 9.4K 토큰을 보내고 2.8K 토큰을 받았습니다.
00:05:23컨텍스트 사용 결과는 이렇습니다. 결과를 확인해 보죠. 새로고침하면
00:05:35이제 셀 큐브들이 서로 더 멀리 떨어져 있고 간격이 생겼습니다. 게임을 해볼까요?
00:05:44중앙 셀부터 시작하겠습니다. 좋습니다. 컴퓨터가 이기게 놔둬 보죠.
00:06:00완벽하네요. 컴퓨터가 이겼고, 보시다시피 큐브들은 더
00:06:11분리되었으며 승리 마커도 강조 표시됩니다. 잘 작동하네요. 이것은
00:06:20PAI 코딩 에이전트로 한 결과입니다. 이제 Open Code로 동일한 테스트를
00:06:30진행하겠습니다. 모델과 코드는 같습니다. 코드를 초기화하겠습니다.
00:06:50이제 버그가 있던 버전으로 돌아갔습니다. 이제 Open Code에
00:07:00동일한 프롬프트를 입력하겠습니다. 셀과 승리 로직에 대한 것이죠.
00:07:11Basico와 함께 동일한 모델을 사용하겠습니다. Basico는 제가 만든 커스텀 에이전트입니다.
00:07:27기본 코딩 에이전트보다 훨씬 간단하기 때문에 Basico 에이전트를 만들었습니다.
00:07:36Basico 에이전트는 바로 이것입니다.
00:07:56단순한 마크다운 파일입니다. “당신은 Basico라는 최소화된 에이전트입니다.” 네,
00:08:07여기서 많은 것을 지정하진 않았고, 검색 엔진 도구를 사용한 웹 페치(web fetch)를
00:08:15쓰라고만 했습니다. 이번 경우에는 쓰지 않겠지만요. 아주 단순한 에이전트죠.
00:08:24Open Code를 위해 비슷한 조건을 재현하려는 목적입니다. 벌써 12K
00:08:34컨텍스트를 사용 중이네요. index.js, game.js로 시작했고, 네, 여기서도
00:08:47영상을 멈춘 뒤에 최종 결과를 확인해 보겠습니다. 피드백이 많지 않은 상태로
00:08:58여전히 실행 중입니다. 그리고 이 테스트를 Gemma 2 27B로도
00:09:07Gemma 26B와 4B로도 같은 테스트를 해봤지만, 이 정도 규모의 프로젝트에서는
00:09:20도구 호출(tool calling)을 수행하지 못했습니다. Gemma 2는 3D 틱택토 게임을
00:09:30재현할 수는 있었지만, 이 파일들을 수정하기 위해 도구를 호출하지는 못했습니다.
00:09:38그래서 Qwen 2.5로만 이 테스트를 진행했습니다. 이런 로컬 시나리오에서는 최고니까요.
00:09:48흥미롭네요, 할 일 목록(to-do)을 채우고 있습니다. 작업이 두 개인데, 하나는
00:09:58셀 큐브를 더 잘 보이게 만드는 것이고, 다른 하나는 로직 수정입니다. 그래서
00:10:07PAI 에이전트에 비해 오버헤드가 조금 더 발생할 것입니다. PAI 에이전트는
00:10:17중간에 할 일 목록 없이도 이런 작업을 수행할 수 있었습니다. 하지만 더 복잡한
00:10:26상황에서는 할 일 목록이 있는 게 유용할 수도 있습니다. 하지만 제 생각엔
00:10:35하네스보다는 사용된 LLM 모델이 더 큰 차이를 만드는 것 같습니다. 어쨌든
00:10:44지켜보죠.
00:10:56잠시만요.
00:11:27거의 다 됐습니다. 두 가지 할 일 모두 완료되었지만, 여전히 읽고 나서
00:11:40파일에 써야 합니다.
00:11:52보고서를 작성 중입니다. 곧 끝나길 바랍니다. 벌써 12분이
00:12:05지났으니 더 걸린 셈이지만, 어쨌든 끝났습니다. 멈추고 확인해 보죠.
00:12:15Open Code에서 사용된 컨텍스트는 약 23K입니다. 아마 토큰 사용량을
00:12:26보고하는 방식이 다르겠지만, PAI가 문제를 해결하는 데 토큰을 더 적게 쓴 것 같습니다.
00:12:36이것은 기술 보고서입니다. 수정을 위해 game.js 파일을
00:12:46여러 번 열었네요. 실제로 수정이 잘 되었는지 게임을 테스트해 봅시다.
00:12:57새로고침해 보니 PAI 버전과 비슷해 보입니다. 중앙 셀을 선택하고
00:13:19게임에서 이겨 보겠습니다. 제가 이겼고, 보시다시피 PAI 때와
00:13:32같은 결과를 얻었습니다. 하지만 해결책을 내는 데 더 많은 토큰과
00:13:43시간을 썼네요. 이번 사례에서는 가드레일이나 프롬프트 미세 조정 등
00:13:55기능이 더 많은 Open Code가 PAI와 동일한 해결책을 내놓았지만
00:14:06PAI가 시간과 토큰을 더 적게 썼습니다. 결론적으로 제 생각에는
00:14:18앞서 말씀드린 대로 사용된 LLM이 가장 중요하고 핵심적인 부분입니다.
00:14:28하네스도 유용하고 중요하지만, 컨텍스트에 담기는 데이터의 품질이 더 중요합니다.
00:14:36이번 상황에서는 PAI 코딩 에이전트가 오버헤드가 더 적었고
00:14:47LLM에 아주 긴 프롬프트를 주지 않고도 좋은 결과를 얻었습니다.
00:14:58여러분은 어떤 오픈 소스 코딩 에이전트 하네스를 선호하시는지 댓글로 알려주세요.
00:15:06그럼 다음 영상에서 뵙겠습니다. 안녕히 계세요!
Community Posts
No posts yet. Be the first to write about this video!
Write about this video