2.8 KiB
문제 해결
텍스트만 답하고 리포트가 생성되지 않음
원인: 포털이 단일 조회만 실행했거나, MCP discovery 결과에 이전 결과 입력형 렌더러가 없다.
확인:
- 포털 설정 endpoint가
https://hmm-backoffice.cloud-handson.com/mcp인지 확인한다. tools/list결과에 조회 도구와reportJson입력을 가진 HTML/리포트 렌더러가 모두 있는지 확인한다.- 포털 실행 상세에서 실행 방식이
agent, Agent 단계가 두 번인지 확인한다.
해결: endpoint와 허용 목록을 함께 갱신한 뒤 포털 서비스를 재기동한다. 렌더러 설명에는
조회 결과 후속 처리처럼 선행 결과를 받는다는 문구를 유지한다.
재발 방지: 새 업무 리포트 도구도 reportJson류 입력과 후속 처리 의도를 설명에 선언한다.
포털 코드에 특정 도구명을 추가하지 않는다.
렌더러가 입력 형식 오류를 반환함
원인: 조회 도구가 items/results 배열을 반환하지 않거나, 렌더러가 요구하는 payload 계약과
템플릿 계약이 다르다.
확인: 첫 Agent 단계의 응답에 행 배열이 있는지, 두 번째 단계 arguments에 report와 rows가
있는지 확인한다. 비밀값·Bearer token은 실행 상세에 남기지 않는다.
해결: 조회 도구는 구조화 행 배열을 반환하고, 렌더러 함수는 report와 rows 계약을 유지한다.
생성된 HTML이 화면에 표시되지 않음
원인: 렌더러 응답에 html 문자열이 없거나, HTML이 유효하지 않다.
확인: 두 번째 MCP 응답의 response.html 존재와 길이를 확인한다.
해결: DB 템플릿 활성 상태와 custom Agent Tool의 반환 형식을 확인한다. 포털은 유효한 html
또는 rendered_html만 sandboxed iframe으로 표시한다.
리포트는 생성됐지만 행이 0건임
원인: 다음 둘 중 하나다.
- 선행 조회가 실제로 0건이다.
- 선행 Select AI Tool은 행을 반환했지만 포털이
response.result안의 JSON 배열 문자열을reportJson.rows로 구조화하지 못했다.
확인: Agent 첫 단계의 원본 response.result 배열 건수와 두 번째 단계 reportJson.rows를
비교한다. 원본이 8건이고 rows가 0건이면 권한이나 Select AI 문제가 아니라 결과 전달 문제다.
해결: 포털의 범용 결과 해석기가 items, results, rows, response, result wrapper와
JSON 배열 문자열을 재귀적으로 처리하는지 확인한다. 조회 Tool, endpoint, VPD 정책, DB package를
교체하지 않는다.
재발 방지: 중첩 JSON 배열 회귀 테스트와 운영 연속 호출 검증을 유지한다. 같은 Bearer 문맥에서 조회 원본 행 수와 renderer 입력 행 수가 같아야 배포를 완료한다.