From 82551d87bbbe0026499030e6fb914edf418039c9 Mon Sep 17 00:00:00 2001 From: jade Date: Tue, 8 Sep 2026 09:24:05 +0900 Subject: [PATCH] =?UTF-8?q?=EC=86=8C=EC=8A=A4=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dat/lib/util/ToolScaffolder.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/dat-was-lib/src/main/java/io/shinhanlife/dat/lib/util/ToolScaffolder.java b/dat-was-lib/src/main/java/io/shinhanlife/dat/lib/util/ToolScaffolder.java index 47f967912..94ad3ee57 100644 --- a/dat-was-lib/src/main/java/io/shinhanlife/dat/lib/util/ToolScaffolder.java +++ b/dat-was-lib/src/main/java/io/shinhanlife/dat/lib/util/ToolScaffolder.java @@ -522,13 +522,35 @@ public class ToolScaffolder { return value == null ? "" : value.replace("\\", "\\\\").replace("\"", "\\\"").replace("\r", " ").replace("\n", " "); } + /** + * 콘솔 Scaffold에서 LLM 설명 대신 업무 단위의 제안서를 입력할 수 있도록 안내한다. + */ + public static String businessProposalGuide() { + return """ + \n[업무 제안서 작성 가이드] + Tool 이름만 적지 말고, 아래 항목을 한두 문장씩 포함해 작성하세요. + 1. 조회 대상·식별 기준: 무엇을 어떤 값으로 찾는지 + 2. 조회 목적·사용자: 누가 어떤 업무 상황에서 쓰는지 + 3. 조회 범위·결과 단위: 목록인지 상세인지, 반드시 필요한 정보는 무엇인지 + 4. 조건·예외: 기준일, 포함/제외 조건, 식별값 부족·다건 조회 시 처리 + 5. 권한·마스킹 및 제외 범위: 노출하면 안 되는 정보와 별도 Tool로 분리할 업무 + + [통합계약원부 조회 제안서 예시] + 상담사가 고객의 현재 유효 계약을 확인한다. 계약번호가 있으면 상세 원부를 조회하고, + 없으면 고객 식별값으로 계약 목록을 먼저 조회한다. 계약 기본정보, 계약자·피보험자, + 주계약·특약, 납입 상태와 실효 여부를 반환한다. 계약이 여러 건이면 목록을 먼저 반환하고, + 주민번호와 계좌번호는 마스킹한다. 해지·대출·보험금 상세는 별도 Tool로 분리한다. + """; + } + public static void main(String[] args) throws IOException { Scanner scanner = new Scanner(System.in); String baseName = getOrAsk(args, 0, scanner, "1. 생성할 Tool의 기본 이름 (예: ExchangeRate) [영문 PascalCase]: "); String interfaceId = getOrAsk(args, 1, scanner, "2. 레거시 API 인터페이스 ID (예: EXCH_001): "); String title = getOrAsk(args, 2, scanner, "3. Tool title: "); - String description = getOrAsk(args, 3, scanner, "4. Tool description for LLM: "); + System.out.println(businessProposalGuide()); + String description = getOrAsk(args, 3, scanner, "4. 업무 제안서 (생성 Tool의 LLM 설명으로 사용): "); String group = getOrAsk(args, 4, scanner, "5. Tool category: "); if (group.isEmpty()) group = "COMMON"; String routingType = getOrAsk(args, 5, scanner, "6. Routing type (HTTP, TCP, MCI, EAI): ");