06.13 대구 영재연수 5차시: Agent Architecture
JSON 뇌 구조 파헤치기 및 자연어 디버깅
이 원고는 강경욱 선생님이 연수에서 쓴 자료입니다. 수업·연수에 참고하실 때 출처(강쌤의교실)를 남겨 주세요.
📘 5차시: 비서의 뇌를 수술하다 (Agent Architecture와 디버깅)
1. 두려움을 버리세요: 우리가 고칠 파일은 딱 하나입니다.
VS Code(에디터)를 열고 왼쪽 탐색기 창을 보면 node_modules, src, package.json 등 수십 개의 복잡한 폴더와 파일들이 보일 것입니다.
모두 무시하십시오. 비개발자인 우리가 오늘 만질 파일은 폴더 최상단에 있는 agent.config.json 단 하나입니다. 이 파일이 바로 우리 에이전트의 ’뇌’이자 ’기획서’입니다.
2. JSON 완벽 해부도 (Agent Architecture)
JSON(제이슨)은 복잡한 컴퓨터 언어가 아닙니다. 그저 인간의 기획서를 컴퓨터가 읽기 편하게 쌍따옴표("")와 중괄호({})로 묶어놓은 형식일 뿐입니다.
agent.config.json 파일을 클릭해서 열어보세요. 아래와 비슷한 구조가 보일 것입니다.
{
"agent_name": "기본_테스트_에이전트",
"version": "1.0.0",
"system_prompt": "너는 사용자를 도와주는 친절한 인공지능 비서야. 무엇이든 도와줄 준비가 되어 있어.",
"tools": [
"search_web"
],
"temperature": 0.5
}
🧠 2.1 agent_name: 비서의 이름표
가장 위쪽의 "기본_테스트_에이전트" 글자를 지우고, 내가 만들 비서의 이름을 지어주세요. (예: "영재원_기안문_작성기") 쌍따옴표는 절대 지우면 안 됩니다!
🧠 2.2 system_prompt: 영혼 주입하기
이 부분이 가장 중요합니다. 1차시에서 고생하며 만들었던 완벽한 PARTS 프롬프트를 이 안에 통째로 집어넣습니다.
- 주의사항: JSON 파일 안에서 줄바꿈(엔터)을 직접 치면 에러가 납니다. 줄을 바꾸고 싶다면 글자 사이에
\n(백슬래시+n) 기호를 입력해야 합니다.- 잘못된 예:
"system_prompt": "너는 영재 수학 교사야. 문제 3개를 만들어줘." - 올바른 예:
"system_prompt": "너는 영재 수학 교사야.\n문제 3개를 만들어줘."
- 잘못된 예:
🧠 2.3 tools: 비서에게 무기(권한) 쥐어주기
Antigravity의 꽃입니다. 일반 챗봇은 말만 하지만, 이 녀석들은 행동합니다. 대괄호 [ ] 안에 원하는 도구의 이름을 적어주면 됩니다.
"search_web": 구글을 켜서 최신 뉴스와 정보를 검색할 수 있는 권한을 줍니다."read_file": 내 컴퓨터에 있는 엑셀(csv), txt, 마크다운 파일을 열어볼 수 있는 권한을 줍니다."run_command": (위험/고급) 터미널 명령어를 직접 칠 수 있는 권한을 줍니다. 컴퓨터를 제어할 수 있게 됩니다. 여러 개를 줄 때는 반드시 콤마(,)로 구분해야 합니다. 예:["search_web", "read_file"]
🧠 2.4 temperature: 창의력 조절 밸브
0.0부터 1.0 사이의 숫자를 넣습니다.
- 0.1 ~ 0.3: 매우 건조하고 딱딱함. 사실 관계가 중요한 기안문 작성, 수학 문제 풀이 봇에 적합합니다.
- 0.7 ~ 0.9: 창의적이고 감성적임. 아이디어를 도출하거나, 칭찬봇, 창작 소설 봇에 적합합니다.
3. 앗, 코드가 터졌어요! (자연어 디버깅의 마법)
agent.config.json을 내 입맛대로 신나게 고치고 저장(Ctrl+S)을 눌렀는데, 터미널 화면에 시뻘건 글씨들이 쏟아지기 시작합니다.
SyntaxError: Expected ',' or '}' after property value in JSON at position 134
at JSON.parse (<anonymous>)
at Object.loadConfig (/Users/kain/my-agent/src/config.js:15:21)
...
선생님들, 축하합니다! 첫 번째 에러(버그)를 만나셨습니다. 개발자들은 하루 종일 이 시뻘건 글씨와 싸웁니다. 하지만 우리는 옛날 개발자들처럼 영어를 해석하거나 책을 뒤질 필요가 없습니다. 우리에겐 **자연어 디버깅(Natural Language Debugging)**이라는 사기 스킬이 있습니다.
🐛 3.1 디버깅(Debugging) 이란?
코드에 있는 벌레(Bug-에러)를 잡아내는(De) 과정입니다.
🐛 3.2 [실습] 제미나이에게 에러 던져주기
- 터미널에 뜬 빨간색 영어 에러 메시지를 마우스로 주르륵 드래그해서 모두 복사(Ctrl+C) 합니다.
- 에디터의
agent.config.json코드 전체({부터}까지)를 복사합니다. - 브라우저를 열고 제미나이(Gemini) 채팅창에 갑니다. 그리고 이렇게 말합니다.
“내가 Antigravity 2.0 프레임워크에서
agent.config.json파일을 수정했는데 터미널에 이런 에러가 떴어. 이유가 뭐야? 그리고 에러가 고쳐진 완벽한 전체 코드를 다시 짜줘.[에러 메시지 붙여넣기] [내가 짠 JSON 코드 붙여넣기]”
🐛 3.3 복붙의 함정 조심하기
제미나이는 즉시 “아! 3번째 줄 끝에 콤마(,)가 빠져서 에러가 났군요. 고쳐진 코드는 아래와 같습니다”라며 정답 코드를 뱉어냅니다.
- 🚨 주의: 제미나이가 준 코드를 무작정 덮어쓰기(
Ctrl+V) 하지 마세요. AI가 가끔 기존에 잘 있던 내용까지 임의로 삭제해버리는 경우가 있습니다. - 올바른 방법: 제미나이가 짚어준 원인(콤마 누락 등)을 눈으로 읽고 확인한 뒤, 내 에디터로 돌아가서 내 손으로 직접 그 부분만 수정하는 것이 가장 안전합니다. 정 모르겠을 때만 전체를 덮어쓰기 하세요.
[5차시 마무리] 선생님들, 고생하셨습니다! 수많은 에러와 싸우고 디버깅을 거치며 드디어 여러분만의 완벽한 에이전트 뇌 구조가 완성되었습니다. 타임머신(Git)에 지금 완성된 코드를 백업해 두는 것 잊지 마시고요. 마지막 6차시에서는 이 완성된 에이전트를 내 눈앞에 띄우고, 전 세계로 배포하는 가슴 벅찬 경험을 해보겠습니다.