시스템 구성
사용자에게 상품을 추천하는 시스템을 Multi Agent로 구현하려고 합니다.사용자가 "벗꽃차를 추천해줘" 라고 입력하면, 사용자의 의도를 파악해서 (Intent_agent)
상품 목록에서 상품을 선택하고(product_agent) 이것을 추천하는 comment를 담아서 제안하는(propose_agent) 일련의 과정을 sequence_agent 로 만들어서 진행하려고 합니다.
그런데 이것을 제가 코딩하기가 싫더라구요. 암요. 저는 엄청 게으른 사람이라..
하려고 하는 일을 명확히 정의
2-1. 상품리스트가 담긴 json을 chatGPT에게 넣어주고 이것으로 상품을 추천해주는 agent workflow에 대해서 여러가지 의견을 나누었습니다.
2-2 마지막에 해당 내용으로 google adk와 A2UI를 이용해서 프로젝트를 할수 있도록 PRD, TRD, Agent_description을 마크다운으로 만들어 달라고 했습니다.
Skill로 PM Agent, DEV Agent, TESTER Agent를 만듬
원래는 TASKS.md를 만들고 내가 하나씩 진행했는데, 왠지 PM에게 시키고 싶더군요.
이 일을 내가 시킬 수 있는 PM AGNET가 필요해 PM Agent를 하나 만들어줘. PM은 이 프로젝트에 대한 TASK 리스트를 만들고, DEV와 TESTER를 Agent를 오케스크레이션 시키는 역할을 해. PM Agent, DEV Agent, TESTER Agnet 를 모두 Skill로 만들어주고, 필요한 workflow를 지정해줘.
라고 Antigravity에 요청하니,
와 같이 만들어 주었습니다.
저에게 Team이 생겼네요.
@pm 프로젝트 TASKS 만들어줘.라고 해서 TASKS.md를 만들고 하나씩 단계별로 만들어 갔습니다.
google ADK 로 Agent 만들기
아무런 참조를 안넣었더니, python으로 이상한 class를 만들고서 Agent라고 우기길래.
https://github.com/google/adk-docs/tree/main/docs 참조 해서 agent 코드를 작성하라고 함sequence agent로 처음에는 연결하지 않길래 연결해 달라고 요청함.
product agent에게 필요한 tool도 알아서 만들어줌.
adk web으로 동작을 확인하면서 진행중임.
배운 점
1. 완벽한 개발팀 skill이나 agent team이 있어야 한다고 생각했지만, 다른 사람들이 짜놓은 코드들은 나에게 맞지 않았다.
오히려 하려고 하는 것을 명확하게 하고, Team을 skill로 만드는 것이 나에게 더 맞는 것 같다.
2. TASKS.md를 먼저 만들고, 하나씩 기능을 만들면서 테스트를 진행하니 혼란스럽지 않고, LLM이 잘못 코드를 짜도 바로 잡기가 쉬웠다.
3. 이제는 코드 한줄 안짠다. 구조를 짠다.