AI 페르소나로 UX 테스트하는 플러그인 persona-feedback v0.2.0 출시
요약
AI 플러그인 `persona-feedback` v0.2.0이 출시되어, 여러 AI 페르소나가 동시에 UX 테스트를 수행할 때 발생하는 브라우저 충돌 문제를 해결했습니다. 기존의 MCP 연결 방식 대신 Playwright CLI를 사용하여 각 페르소나별로 독립적인 세션을 분리함으로써 안정성을 크게 높였습니다.
핵심 포인트
- Playwright CLI 전환으로 페르소나별 전용 브라우저 세션 확보
- 서브 에이전트에게 Bash 명령어만 전달하여 안전성 강화
- 병렬 구동 시에도 각 페르소나의 입력값이 독립적으로 유지됨
이전에 소개했던, AI 페르소나가 개발 중인 화면을 조작하게 하는 Claude Code 플러그인 persona-feedback를 v0.2.0으로 업데이트했습니다.
가장 큰 변경 사항은 여러 페르소나를 병렬로 구동할 때 브라우저가 섞이는 문제를 해결한 것입니다.
페르소나별 브라우저 분리
v0.1에서는 여러 페르소나를 병렬로 구동하면, 한 페르소나의 입력이나 화면 전환이 다른 페르소나의 화면에도 나타나는 문제가 있었습니다. 예를 들어, 신규 등록 화면을 열었는데 다른 페르소나의 입력값이 이미 채워져 있거나, 저장하기 전에 화면이 임의로 전환되는 식입니다. 개별적으로 하나씩 구동할 때는 발생하지 않아 인지하는 것이 늦었습니다.
원인은 모든 주체가 동일한 브라우저를 조작하고 있었기 때문입니다. 서브 에이전트는 기본적으로 메인 대화의 MCP(Multi-Agent Communication Protocol) 도구를 그대로 상속받으므로, 연결도 같아집니다. 아무리 많은 서브 에이전트를 구동해도 Playwright MCP 연결은 1개이고 브라우저 역시 1개였습니다. --isolated 옵션을 추가하면 분리될 것이라고 생각했지만, 이는 프로파일을 디스크에 저장하지 않을 뿐인 옵션이었습니다.
서브 에이전트가 전용 MCP 서버를 가지게 하려면, 에이전트 정의에 서버를 직접 작성하는 방법이 있습니다. 이렇게 하면 서브 에이전트 구동 시 연결되고 종료 시 끊어집니다. 하지만 플러그인에 포함되는 에이전트의 경우, 같은 페이지에서는 이 지정이 무시된다고 합니다.
그래서 MCP를 포기하고 Playwright CLI로 전환했습니다. CLI는 -s=<이름>으로 세션에 이름을 붙일 수 있고, 이름별로 다른 브라우저가 실행됩니다. 세션 이름에 실행 시각과 페르소나 ID를 넣어 페르소나별로 각각 하나씩 열리게 했습니다.
npx -y @playwright/[email protected] -s=<실행시각>-<페르소나ID> open <URL> --browser=chromium
세션을 열고 닫는 것은 메인 에이전트만 담당하고, 페르소나는 전달받은 세션만을 조작하도록 변경했습니다. 두 개를 병렬로 구동하여 같은 폼에 각각 다른 값을 입력하게 해보니, 끝까지 서로의 값은 보이지 않았습니다.
대신, 페르소나 역할을 하는 서브 에이전트에게 Bash를 전달하기로 했습니다. 파일을 수정하는 Write나 Edit 기능은 전달하지 않고, Bash에서는 Playwright CLI 명령어만 실행하도록 에이전트 정의에서 지시했습니다. 사용자는 허용 목록에 다음 한 줄을 추가해야 합니다.
"Bash(npx -y @playwright/[email protected]:*)"
이 외의 명령어는 자동으로 거부되지 않으며, 메인 세션에서 확인 메시지가 나옵니다. 플러그인의 에이전트에서는 hook도 사용할 수 없기 때문에, 여기서는 지시에 의존하고 있습니다. 생소한 명령어가 확인되면 승인하지 말아 주십시오.
CLI 자체는 버전을 고정하여 npx로 호출하므로 설치가 필요 없습니다. 브라우저(Chromium)는 별도로 설치해야 합니다.
기타 변경 사항
같은 화면에 대한 지적은 하나로 통합하도록 했습니다. 지적에 화면의 URL을 포함시켜, 같은 화면에서 같은 종류의 지적이라면 페르소나별로 버튼 등의 호출 방식이 달라도
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기