2026.10 – 2026.10고객사 구축 · 은행
에이전트 DB 도구의 이름 충돌과 결과 전량 전달: 행 상한·스키마 사전 적재·DB 방언 등록 구조로 통합
원인 분석·백엔드 리팩터링DB 도구 노드를 여러 개 붙이면 도구 이름이 겹쳐 하나만 남던 문제와, 쿼리 결과를 전량 LLM에 넘기고 테이블 목록·구조·쿼리를 차례로 왕복하던 구조를 실행 기록으로 진단해 행 상한, 스키마 사전 적재, DB 방언 등록 구조로 고쳤습니다.
4.00 → 2.00회질문당 LLM 호출Qwen 27B 모델, 판매 DB 질문 4종 × 3회, 정답 12/12 유지
2.6초 → 1.4초에이전트 응답 시간같은 조건, 입력 토큰 2,930 → 1,435
41.7초 → 12ms100만 행 표를 LIMIT 없이 조회로컬 PostgreSQL 15, 메모리 598MB → 0.1MB
2026.06 – 2026.10플래티어 · XGEN
정형 데이터(CSV·RDB) 온톨로지화: 키 기반 정체성, 원자적 교체, 행 지문 동기화
설계·구현(백엔드·프론트엔드)표 데이터는 스키마가 명시돼 있어 LLM 없이 결정론적으로 그래프를 생성할 수 있지만, 정체성을 이름이 아닌 키에서 도출해야 했습니다. 정형 클래스 과병합과 동명 행 병합을 막고 재실행 원자성을 확보한 뒤, 증분 키(watermark)를 버리고 PK keyset 전수 읽기와 sha256 행 지문으로 추가·변경·삭제를 스스로 감지하는 동기화를 만들었습니다.
24초 / 4초첫 동기화 / 변경 없는 재동기화로컬 Oracle 샘플 6개 테이블 1,610행, PK keyset 전수 읽기와 sha256 행 지문 비교
0.0~0.3초200만 행 테이블 미리보기SQL 내부 행수 제한 적용 후. 이전엔 전체 fetch로 프로세스 메모리가 229MB에서 738MB로 증가
2026.10 – 2026.10고객사 구축 · 은행
폐쇄망 문서 다운로드 502와 API 게이트웨이 신원 헤더: 응답 헤더 비대화와 클라이언트 헤더 위조 차단
원인 분석·API 게이트웨이 보안 수정원격 조회가 불가능한 폐쇄망의 다운로드 502를 응답 본문 형태로 가설을 배제해 게이트웨이가 신원 헤더를 응답에도 붙인 데서 오는 헤더 크기 초과로 좁혔고, 조사 중 클라이언트가 보낸 신원 헤더가 서비스까지 전달되던 위조 경로를 찾아 막았습니다.
약 3.6KB권한 목록 응답 헤더 하나의 크기목록형 권한 141개 사용자, 외부망 실측, 앞단 프록시 헤더 버퍼 기본 4KB 대비
15/15게이트웨이 테스트 통과운영 Dockerfile과 같은 Rust 이미지, 보안 테스트 6종 포함, release 빌드 통과
2026.09 – 2026.10플래티어 · XGEN
결정론적 개체 추출의 이름 품질: 형태소 기반 용어 정제와 적재 계층 이름 게이트
원인 분석·구현(백엔드)기본 빌드가 LLM 없이 개체를 뽑게 되자 그래프 품질은 곧 이름 품질이 됐습니다. 산문을 표로 오인하는 판정, 형태소 결합 규칙의 어근 탈락, 경로마다 흩어진 정제 로직을 원인별로 고치고, 이름 정규화와 모양 검사를 추출기가 아닌 그래프 적재 계층 한 곳으로 내려 모든 추출 경로에 같은 게이트를 적용했습니다.
916 → 0이름 꼴이 아닌 개체규정 문서 표본 1,235청크, 레코드 덤프 값만 읽기·표 판정 강화·이름 꼴 게이트 적용 전후. 같은 표본 쓰레기 클래스 30 → 0
23,865 → 0스키마 엣지 수열 이름 속성을 클래스별이 아니라 술어당 하나로 선언한 전후, 그래프 뷰 페이로드 23MB → 1.8MB
62종 중 61종잘린 개체 이름 복원실컬렉션 3곳 청크 120개, 형태소 어근·접미사 결합 규칙 적용 후. 나머지 1종은 기존 이름으로 통합
2026.08 – 2026.10플래티어 · XGEN
온톨로지 빌드 2단계 분리: LLM 0회 결정론적 기본 빌드와 선택형 관계 형성
설계·구현·평가(백엔드)업로드마다 LLM 추출을 실행하면 비용을 감당할 수 없어, 개체 추출은 결정론적 기본 빌드(LLM 0회·자동·증분)로, 관계 추출은 사용자가 켤 때만 실행하는 관계 형성으로 분리했습니다. 표를 행 단위 사실로 읽게 해 기본 빌드만으로 값 질의에 답하게 했고, 관계 형성은 닫힌 어휘가 빈 응답을 만들던 구조를 어휘 우선 분류로 바꿨습니다.
0.3~1.6초 · LLM 0회기본 빌드 소요문서 6개 테스트 컬렉션. 같은 컬렉션 관계 확장은 6청크 10.0초·LLM 7회·15,194토큰
2시간 57분 → 23분관계 형성 소요규정 문서 평가 컬렉션, 게이트웨이 Qwen 27B → gpt-4.1-mini 전환, 2,495콜·약 8달러
2,495콜 중 2건관계 형성 빈 응답응답 스키마에 단위 번호 목록을 먼저 쓰게 한 뒤. 이전엔 배치의 34~53%가 빈 응답
2026.04 – 2026.10플래티어 · XGEN
대규모 지식 그래프 뷰어: WebGL 커스텀 렌더러, Web Worker 물리 연산, 구조 우선 샘플링
설계·구현(프론트엔드·백엔드)수만~10만 노드 온톨로지를 브라우저에서 탐색하기 위해 Three.js InstancedMesh 기반 커스텀 렌더러와 Web Worker 물리 연산을 만들었습니다. 이후 CDP 프로파일링으로 렌더링 대상 선택을 구조 우선 계층 샘플링으로 바꿔 CPU 점유를 25%에서 7%로 낮추고, 렌더 상한 밖 노드는 서버 검색으로 불러와 병합하게 했습니다.
7,469 → 2,652렌더링 노드 수2만 2,001노드 시험 컬렉션, 비율(1/3) 정책 → 구조 우선 정책
25% → 7%브라우저 CPU 점유같은 컬렉션, CDP 프로파일러 약 22초 창(유휴 74.9% → 93.1%)
4~125ms컬렉션 전체 노드 검색 응답로컬 PostgreSQL 실제 함수 호출, label ILIKE 검색, 첫 조회 553ms 제외
2026.09 – 2026.10플래티어 · XGEN
온톨로지 엔진의 이식성: 고객 환경 동기화, 출력 동일성으로 검증한 라이브러리 추출, 포트·어댑터 계층 설계
설계·구현(백엔드·라이브러리)같은 온톨로지 기능을 고객 환경과 다른 서비스에 반복해서 싣는 비용을 줄이기 위해, 고객 환경 판을 파일 단위로 표준판에 맞추고, 빌드 로직을 컬렉션·DB 의존 없는 라이브러리로 추출해 원본과 동일한 출력을 실코퍼스로 검증했으며, 남은 연동 코드를 포트·어댑터 구조로 분리하는 설계를 제안했습니다.
14,924청크 diff 0라이브러리 이식 출력 동일성원본 서비스 함수와 라이브러리를 같은 프로세스에서 같은 실코퍼스로 대조, 개념 27,109·개체 166,525·관계 2,544·값 2,625 일치
0 → 852고객 환경 그래프 노드 수SDK가 WITH로 시작하는 조회 결과를 버리던 결함을 SDK 버전 교체로 해소한 전후, 검수 환경 실측
2026.09 – 2026.09고객사 구축 · 캐피탈
경쟁 클라우드 에이전트와의 공정 비교 평가 설계: 조건 통제, 대조군 오염, 평가기 이벤트 루프 차단
평가 설계·하네스 구현·분석사내 규정 165문항으로 경쟁 클라우드 에이전트와 비교하면서 점수 차이가 검색과 답변 구성에서만 나오도록 조건을 통제했고, 그 과정에서 적재 결함, 오염된 대조군, 지연을 부풀리던 평가기, 회수를 과소 집계하던 지표를 찾아 고쳤습니다.
80.0% vs 66.7%사내 규정 165문항 정확도같은 답변 모델(gpt-5.4-mini)·시스템 프롬프트·청크 2,000/200·임베딩, judge claude-sonnet-4-5 정확도 100점, 근거 수 자동 구성 1회 실행
54 s → 16.8 s평가기 기록 문항당 시간 중앙값평가 런 3건 동시, judge 동기 호출을 스레드로 분리 전후, 서버 노드 실행 시간 11~14 s
57 / 235누락으로 집계되던 정답 규정골든셋 파일명(.docx)과 우회 적재 파일명(.md)의 확장자 불일치, 확장자 무시 대조로 재계산
2026.09 – 2026.09고객사 구축 · 은행
영업점 단말 연동: 루프백 웹소켓 화면 호출과 크롬 Local Network Access 정책 실측
연동 가능성 검토·프론트엔드 구현·현장 실측에이전트 답변과 현황판에서 영업점 단말 화면을 여는 루프백 웹소켓 연동을 방향별로 판정해 구현하고, 사용자 PC에서 연결이 실패하던 원인을 크롬 Local Network Access 차단으로 확정한 뒤 그룹정책 경로와 채팅 코드펜스 파서 결함까지 정리했습니다.
1ms error → 2ms open루프백 웹소켓 연결사용자 PC 크롬 153, LocalNetworkAccessAllowedForUrls 정책에 출처 등록 전후
버튼 0 → 정상 표시답변 속 화면 호출 버튼닫는 코드펜스 뒤에 글이 붙은 실제 답변, 파서 수정 후 배포 환경 재실측
2026.09 – 2026.09플래티어 · XGEN
컬렉션 재색인을 비동기 작업으로 전환: 202 응답, 상태 조회, 다중 파드 단일 실행 보장
원인 분석·백엔드·프런트엔드 구현요청 하나 안에서 전 청크 재임베딩까지 끝내던 재색인 API가 클라이언트 30초 타임아웃에 걸려 실패처럼 보이고 중복 실행되던 문제를, 백그라운드 작업과 상태 조회, Redis 기반 다중 파드 단일 실행 보장으로 바꿨습니다.
0.09 s재색인 시작 응답(202)로컬 사이드 컨테이너 API 실측, 종전에는 재임베딩 완료까지 동기 대기
10 · 19 · 7단위·API·두 파드 시나리오 통과 수사이드 컨테이너 2개 실측, 두 파드 시나리오가 작업 반환 순서 결함 1건을 검출
2026.09 – 2026.09플래티어 · XGEN
그래프 저장소 조회 계층의 비용·재현성 결함: 플래너 통계, O(그래프) 읽기, 정렬 없는 LIMIT
진단·설계·구현PostgreSQL 위 GraphRAG 검색에서 질의당 비용이 후보가 아니라 그래프 크기에 비례하던 조회들과, 같은 질문에 근거가 달라지던 비결정성을 실행 계획과 프로브로 추적해 고쳤습니다.
43/50 → 50/50두 번 검색 시 근거가 같은 문항캐피탈 규정 컬렉션 50문항, LLM 없이 검색 결과만 비교
208 ms → 1 ms질의당 PPR 계산PPR 간선 34,293개 컬렉션, 전체 간선 PPR 대 로컬 push PPR
8.6 s → 5.4 s검색 p90같은 50문항, 결정적 정렬과 동시 읽기 적용, 중앙값 2.50 s 유지
2026.09 – 2026.09고객사 구축 · 캐피탈
오답 기반 검색 감사: 실패를 근거 활용과 후보 회수로 분해한 개선 기획
오답 분석·개선 기획·검증평가 런 4개의 오답을 모아 정답 청크 60건을 골든셋 앵커 없이 시스템 시점에서 감사하고, 원인 9가지와 개선안 10가지를 변경 위치·근거·검증 방법까지 적은 기획으로 정리했습니다. 오답의 60%는 검색이 아니라 근거 활용에서 났습니다.
36 / 60근거에 있는데 답변이 쓰지 못한 정답 청크사내 규정 165문항, 근거 수 자동 구성 오답 29문항의 정답 청크 감사
119 vs 101 / 125교차 문서 정답 규정 회수(상위 40)본문 BM25 대 벡터 단독, 같은 컬렉션 약 1.5만 청크
0.19 → 0.95답변·기대답변 3-gram 겹침(대표 문항)같은 검색 결과에서 답변 프롬프트만 정의 조항 각 호 원문 인용으로 변경
2026.09고객사 구축 · 은행
은행 Admin Console용 에이전트 온톨로지: 운영 메타데이터의 결정론적 그래프 구성과 규칙 기반 인사이트
설계·구현(백엔드·프론트엔드)관리자가 수백 개 에이전트와 컬렉션·DB·도구 자산의 관계를 탐색하고 질문할 수 있도록, 운영 테이블에서 에이전트 단위 지식 그래프를 LLM 없이 결정론적으로 구성했습니다. 상태 서명 기반 자동 증분, 분포 기반 임계값의 규칙 인사이트 7종, 그래프 근거 자연어 질의를 붙였고, 선행 단계로 PG-native 온톨로지 엔진을 고객 환경에 이식했습니다.
3,373 노드 / 3,867 엣지에이전트 306개 그래프 구성은행 외부망 DB 읽기 전용 드라이런, LLM 0회. 소요 시간은 별도 기록 없음
0.96초낡은 에이전트 30개와 자산 목록 갱신외부망 드라이런, Admin Console 진입 시 catch-up 경로
7/7집계형 관리 질의 정답Qwen 27B 계열 모델, 정답을 그래프에서 직접 계산해 대조, 응답 2~5초
2026.05 – 2026.09플래티어 · XGEN
출처 표시 파이프라인 재정비: 인용 생산 지점 게이트, 원본 열람 마스킹, 대용량 시트 뷰어
설계·구현답변 출처가 검색 모드에 따라 사라지거나, 검색 노드 없이도 붙거나, 원본 열람이 마스킹 정책을 우회하던 문제를 출처는 생산 지점에서 결정하고 원본도 같은 정책을 거친다는 원칙으로 정리했습니다.
63케이스 불일치 0마스킹 공용 코어 차분 검증기존 인라인 구현 대조, 정상·빈 패턴·잘못된 정규식·중복 매치·빈 문자열 등
22,278 → 385CSV 출처 뷰어 DOM 노드2,473행 CSV, 가상 스크롤 적용 전후(-98.3%)
92,457 ms → 0 ms시트 하이라이트 처리 시간700행×12열 시트, 시트 경로에서 텍스트 하이라이터 분리
2026.09 – 2026.09고객사 구축 · 캐피탈
FAQ 검색 랭킹 결함 수리: 그래프 융합의 전제 불일치와 빠져 있던 BM25F 어휘 채널
진단·수정·평가고객센터 FAQ 165문항에서 정답 문서가 후보에는 있는데 상위 3개 밖으로 밀리던 원인을 단계별 순위 측정으로 추적해, 그래프 융합의 잘못된 전제를 걷어내고 빠져 있던 BM25F 어휘 점수를 하이브리드 랭킹에 되돌렸습니다.
66.1% → 96.4%정답 문서 1위 비율고객센터 FAQ 165문항, 기대답변 3-gram 겹침으로 정답 문서 판정, 청크 800자·겹침 50자 같은 컬렉션
90.9% → 99.4%정답 문서 3위 안 비율같은 조건, 근거 3개 고정
91.5% → 99.4%LLM-as-a-judge 정확도claude-sonnet-4-5 정확도 채점, 같은 조건의 경쟁 클라우드 에이전트 96.4%
2026.08 – 2026.09고객사 구축 · 은행
DB 조회 결과의 컬럼 단위 PII 마스킹과 감사 로그 실행 신원 기록
설계·백엔드·프론트엔드 구현값의 모양을 보는 전역 정규식 위에 '어느 컬럼이 개인정보인가'를 선언하는 층을 얹어, DB 결과가 LLM에 닿기 전에 연결·쿼리 템플릿·노드 3층 규칙으로 가리고 감사 로그에 실행 신원과 마스킹 방식을 남기게 했습니다.
88건백엔드 단위 테스트 통과컬럼 마스킹 엔진·노드·템플릿 병합·fail-closed 포함, 로컬 실행
NULL 5칸 → 기록감사 로그 실행 신원수정 전 실측 행은 workflow·node·execution·user·username 모두 NULL, 배포 후 재실행에서 workflow·node·사용자 기록 확인
2026.06 – 2026.09플래티어 · XGEN
증분 빌드를 진짜 증분으로: 청크 기준선, 조회 상한 결함, 문서 단위 사전 필터링
원인 분석·설계·구현(백엔드·프론트엔드)증분 빌드가 실제로는 전량을 다시 처리하고 있었습니다. 빌드된 청크 집합을 PostgreSQL 기준선으로 저장해 신규 청크만 추출하게 하고, SDK 조회 기본값 limit=500 때문에 문서 절반 이상이 그래프에서 빠지고 백필이 무한 반복되던 결함을 잡은 뒤, 본문을 받기 전에 문서 단위로 걸러 빌드 비용이 신규분에 비례하도록 바꿨습니다.
6콜 → 2콜이어서 빌드 LLM 호출 수은행 샘플 컬렉션 11청크 중 신규 3청크 시뮬레이션, 토큰 25,755 → 7,789
57.8%그래프에서 빠져 있던 문서 비율(수정 전)공공기관 컬렉션 문서 1,186개 중 686개. 청크 기준으로는 29,506개 중 19,450개(65.9%)
2026.08 – 2026.09고객사 구축 · 은행
정상 요청 차단의 원인 가르기: 가드레일 모델의 PII 판정과 SQL 가드 토큰 차단 오탐
원인 분석·쿼리 가드 수정채팅 입력이 '허용되지 않는 요청'으로 막힌 원인을 마스킹이 아닌 가드레일 모델의 PII 카테고리 판정으로 특정하고, DB 조회의 읽기 전용 가드가 컬럼명을 예약어로 오인하고 데이터 변경 문장은 통과시키던 차단 목록을 정리했습니다.
PII 1 / 200건가드레일 차단 이벤트 중 PII 카테고리외부망 개발 환경 통제 정책 로그 누적치
4/4 ControversialPII 포함 입력의 가드 모델 판정PII 조합·마스킹본·이름과 연락처·내부 문서 요약 요청 4종 직접 호출
2026.07 – 2026.08고객사 구축 · 은행
PII 마스킹 정책 엔진의 오탐과 좀비 정책: 정규식 경계, 쓰기 실패 반환값, findall 그룹 튜플
원인 분석·백엔드·프론트엔드 수정날짜·금액·계좌번호가 마스킹되고 지운 정책이 계속 적용되던 현상을 정규식 경계 누락, 쓰기 실패를 성공으로 기록하던 컨트롤러, 그룹 정규식에서 튜플을 반환하는 findall 세 갈래로 분리해 고쳤습니다.
5종 → 0내장 정규식 템플릿 오탐날짜·일시·전표·타임스탬프 입력 5종, Python re와 JS RegExp 결과 동일, 정탐 유실 0
4/4그룹 정규식 시나리오 통과배포 파드에서 캡처 그룹 3개 시험 규칙으로 실행, 실패 0·시험 규칙 잔존 0
2026.08 – 2026.08플래티어 · XGEN
사전 검색(always_search) 엔진 재설계: 판단 주체가 없는 검색 경로에 질의 정제와 실행 시점 버전 전환 넣기
원인 분석·설계·구현매 턴 코드가 무조건 검색하는 사전 검색 모드가 특정 조항을 못 찾던 원인을 판단 주체의 부재로 정의하고, 도구 모드에서 LLM이 하던 질의 정제·다중 검색·재시도·폴더 선택을 사전 검색 단계로 옮겼습니다. 엔진 버전은 노드 ID를 바꾸지 않고 실행 시점 설정으로 전환합니다.
30 s 이내엔진 버전 전환·롤백 반영노드가 관리 설정을 실행 시점에 읽음(30초 캐시), 배포 환경에서 양방향 전환 확인, 저장된 에이전트 재저장·재배포 없음
약 10 sLLM 사전 검색 구간개발 환경 에이전트 실측, 이후 답변이 25회 점진적으로 스트리밍
2026.07 – 2026.08고객사 구축 · 은행
취약점 점검 대응: 배포 기준 라이브러리 인벤토리(SBOM)와 vLLM 0.20.1 → 0.27.1 업그레이드 파급 분석
인벤토리 생성기 작성·취약점 대조·업그레이드 검토레포를 그냥 읽으면 틀리는 세 가지 함정을 피해 8개 서비스의 직접·전이 의존성을 배포 기준으로 수집하는 생성기를 만들고, 은행의 CVSS 기준표와 대조해 vLLM 취약을 확정한 뒤 어댑터 결합도와 런타임 위험을 좁혀 무수정 업그레이드를 권고했습니다.
1,742건8개 서비스 직접·전이 의존성배포 기준 원격 ref에서 수집, 최초 작성 시점
1,801건 · 변경 87행업그레이드 반영 후 재생성추가 61행, 버전 변경 26행
0.20.1 → 0.27.1vLLM 버전기준표상 0.24.0 미만 취약, 업그레이드 후 모델 어댑터 변경은 주석 1줄
2026.08플래티어 · XGEN
RDF 트리플스토어 의존 제거: Fuseki에서 PostgreSQL 네이티브 그래프 저장소로 마이그레이션
설계·구현(백엔드)별도 JVM 프로세스인 Fuseki는 폐쇄망·경량 배포에서 운영 부담이 컸고 설정 하나로 그래프 계층 전체가 멈추기도 했습니다. 노드·엣지·청크 링크 PostgreSQL 테이블 3개로 빌드·조회·GraphRAG 검색을 재구현하고, 듀얼라이트와 파리티 검증을 거쳐 Fuseki를 기본 비활성화했습니다.
0.6초그래프 조회(PostgreSQL)공공기관 22문서 컬렉션, 같은 조회가 Fuseki에서는 콜드 30초·빌드 경합 시 87초
4.2초 → 0.005초Fuseki 부재 시 호출 실패 비용트랜스포트 레벨 서킷 브레이커(TTL 60초 half-open) 적용, 두 번째 호출부터
10/10골드 팩트 질의 정답1,636청크 컬렉션 10문항, PG 경로+검색 라이브러리 6.6초. 기존 Fuseki 경로는 9/10·14.7초
2026.06 – 2026.08플래티어 · XGEN
검색 지연 예산 재설계: 시간 상한은 탐색 단계에만, 합성 지연은 프롬프트 예산과 스트리밍으로
원인 분석·설계·구현질문당 총시간을 보장하려고 건 하드 시간 상한이 합성 LLM을 굶겨 내부 근거가 답변으로 새는 사고로 이어졌습니다. 단계별 계측으로 지연의 대부분이 합성 대기임을 확인하고, 상한은 탐색에만 두고 체감 지연은 프롬프트 문자 예산과 답변 스트리밍으로 다뤘습니다.
25.7 s vs 0.3 sLLM 합성 대 그래프·벡터 검색개발 환경 온톨로지 검색 1회 단계별 실측
86%검색 1회 비용 중 LLM 합성 비중공공기관 문서 그래프(2,000+ 노드) 단계별 실측, 합성 21,461 ms
4.16 s결함 당시 합성에 남은 시간 예산총 상한 25 s에서 시드 소요를 뺀 값, 서버 로그
2026.08 – 2026.08고객사 구축 · 은행
문서 생성 도구의 .xlsx 실패를 계산되는 데이터 시트 변환으로: 마크다운 표의 숫자·서식 복원과 차트 위임 구조
원인 분석·문서 생성 도구 구현LLM이 마크다운으로 넘긴 엑셀 요청이 항상 실패하던 렌더러 분기를 단순 폴백이 아닌 데이터 시트 변환으로 고쳐 숫자·표시형식·틀고정을 살리고, 셀 검색 도구 부재와 반복 한도 계산 오류로 편집이 중단되던 문제, 코드 생성 없는 차트 경로까지 정리했습니다.
1,000행 약 1초마크다운 표 → XLSX 변환과 렌더변환 0.27초 + 렌더 0.79초, 실 컨테이너 측정
8,327건 예외 0퍼즈 입력셀 값 5,727 · 표 렌더 600 · 문서 구조 2,000, 수정 후 기준
중단 → 4턴 완료조건 행 찾아 열 채우기 요청수정 전 실사용 요청은 10번째 LLM 호출에서 반복 한도 초과, 수정 후 로컬 스택에서 같은 요청 E2E(120행 시트)
2026.08 – 2026.09고객사 구축 · 은행
목록 API 전수 감사: 전량 조회와 무거운 필드를 페이로드 경량화·서버 페이지네이션으로
성능 감사·백엔드·프론트엔드 수정채팅 목록 렉의 원인이 클라이언트 분할이 아니라 응답에 실린 캔버스 JSON 1.6MB였음을 실측으로 확인하고, 인자 없는 GET 336개를 전수 프로브해 같은 부류를 소비처 기준으로 색출한 뒤 필드 경량화와 하위호환 서버 페이지네이션으로 고쳤습니다.
64분의 1채팅하기 목록 API 응답로컬 스택 213,002 → 3,309바이트, 캔버스 JSON 필드 제거
2.9MB → 0.95MB도구 목록 API 응답개발 환경, OpenAPI 스키마 등 무거운 필드 3개 제외
336개응답 크기를 전수 측정한 GET 엔드포인트개발 환경, 인자 없는 호출의 응답 바이트·시간
2026.08 – 2026.09고객사 구축 · 은행
컨텍스트 초과 안내의 오지목과 토큰 예산 계층: 축소 불가능한 축, 길어지는 truncate, 그리고 원복
원인 분석·에이전트 런타임 수정'이전 대화가 쌓였다'는 안내만 반복하던 에이전트를 토큰 버킷 로그로 추적해 문구의 오지목, 시스템 프롬프트·도구 스키마의 축소 경로 부재, 텍스트를 늘리던 truncate를 고쳤고, 그 수정이 잠들어 있던 압축 경로를 깨워 공유 GPU 지연을 만든 메커니즘을 확인해 원복했습니다.
2,701 → 184,825 토큰사전 예산 검사 추정 대비 실제 입력원복 후 같은 구성을 128K 윈도우 모델로 재현, 검색 도구 4회 병렬 결과 포함, 제공자 400 응답에 찍힌 실측치
100,000자 → 119,706자자르라는 호출이 반환한 길이truncate 결함 재현, 상한 119,695토큰 지정
32,911 토큰질문 없이 도구 스키마만의 입력로컬 스택 토큰 예산 로그
2026.08 – 2026.08고객사 구축 · 은행
HWP 첨부의 유니코드 서로게이트가 에이전트 도구 결과와 SSE 전송을 멈추던 문제
원인 분석·백엔드 수정날짜 경계로 보이던 에이전트 도구 멈춤을 첨부 형식별 전수 대조로 HWP 파서가 남긴 UTF-16 서로게이트 쌍 문제로 특정하고, 서로게이트를 원래 코드포인트로 복원하는 정규화를 발원지와 공통 길목에 넣었습니다.
16 → 0짝 없는 서로게이트실패하던 날짜의 HWP 첨부, 워크플로우 파드 안 사본 코드로 before/after
9,080자복원 후 추출된 본문같은 파일, 사설 영역 문자 U+F02B1 보존 확인
28건전수 대조한 7월분 첨부오염 여부가 날짜가 아니라 사설 영역 문자 포함 여부와 일치
2026.07 – 2026.10플래티어 · XGEN
컬렉션 데이터 소스: 내부 스토리지와 API 응답을 해시 증분으로 인덱싱하는 주기 수집 워커
설계·백엔드·프론트엔드 구현기동조차 되지 않던 저장소 동기화 스케줄러를 되살리는 대신, 원천과 무관한 소스 바인딩·durable 작업 큐·해시 diff 골격을 만들고 내부 스토리지와 API 도구를 provider로 붙여 컬렉션을 변경분만 자동 인덱싱하게 했습니다.
indexed 1 · updated 1 · skipped 1레코드 변경 후 수동 동기화 결과목 API를 도구로 등록한 11단계 E2E, content_hash 증분
20초원천 3종 첫 동기화개발 환경 시험 컬렉션, 파일 5개·API 레코드 100건·DB 200행
60.1초 → 5.1초응답 없는 DB의 카탈로그 실패 판정연결 접속 시간 제한 5초 설정, 수정 전후
2026.06 – 2026.07플래티어 · XGEN
검색 라이브러리 벤치마크 프로그램: BM25F·그래프 동반 융합·SQLite 영속화를 재현 가능한 하네스로 검증
라이브러리 설계·구현·벤치마크XGEN의 GraphRAG 검색 로직을 저장소 비종속 라이브러리(OmniFuse)로 추출한 뒤, 한국어 금융법령 코퍼스와 공개 IR 데이터셋으로 랭킹 품질과 저장·지연 효율을 같은 하네스에서 재현 가능하게 측정하며 개선했습니다.
0.797 → 0.851single-hop MRR@10한국 금융법령 4,417건·120질의, LLM 미사용, 제목 필드 4배 가중 BM25F 적용 전후
19 → 103 / 120multi-hop strict 정답같은 코퍼스의 조문 인용 질의, 1-hop 그래프 구조를 랭킹에 직접 융합 전후
MRR@10 0.9083TREC-COVID 171,332문서50질의, 메모리 인덱스, p50 109.49 ms
2026.06 – 2026.07플래티어 · XGEN
에이전트 기억의 계층화: stateful loop, 4스코프 메모리 DAG, 교훈 이월의 최신성
메모리·상태 계층 설계작업 기억, 실행 상태, 장기 기억을 분리해 엔진에 훅으로 꽂고, 메모리를 4개 스코프의 DAG로 설계했습니다. 저장만 되고 효과가 없던 교훈은 검증 사유를 담고 최신순으로 공급되도록 고쳐 다음 실행의 재시도를 없앴습니다.
61 / 69다음 실행으로 이월된 정제기억 / 교훈로컬 스택, 앞선 실행 기록을 다음 실행이 resume한 로그
약 3/387수정 전 최신 교훈이 선택될 확률무정렬 공급, 엔진 cap 교훈 3건, 누적 교훈 387건 기준
재시도 0회교훈 수정 후 다음 실행로컬 스택 E2E, 교훈 외 기억을 비활성화한 상태에서 첫 초안 검증 1.00
2026.06 – 2026.07플래티어 · XGEN
Judge와 재시도 정책 재설계: 종료 조건 오판 제거와 점진 채점
실행 루프·판정 로직 설계제출 후 무한 루프, 침묵하는 Judge, 통과할 수 없는 기준, 같은 답을 반복 채점하는 retry-death를 텍스트 휴리스틱 대신 상태 기반 신호로 고치고, 이분 채점을 점진 채점으로 바꿨습니다.
80%수정 전 Judge 재시도율대형 유통 QA 워크플로우 재실행 5개 런, 420회 채점 중 339회
0.70~0.98점진 채점 후 점수 분포같은 strict citation 설정, 이전에는 0.00과 만점 양극단. 로컬 스택 라이브
237건엔진 회귀 테스트v1.29.4 기준, GitHub Actions
2026.05 – 2026.08플래티어 · XGEN
LLM 온톨로지 추출 파이프라인의 조용한 실패 제거: 구조 복원, 부분 커밋, 출력 예산 기반 배치 사이징
원인 분석·구현(백엔드)빌드는 완료로 표시되는데 그래프가 비어 있거나 구조가 무너지는 문제를 추적했습니다. 리팩토링이 지운 dedup·상속 로직을 복원하고, 예외를 삼키던 배치 처리와 all-or-nothing 저장을 고쳤으며, 배치 크기를 모델 컨텍스트와 출력 한도에서 산출하고 절단 시 반분 재시도하도록 바꿨습니다.
194초 → 17초추출 배치 1개 처리 시간35B 모델·단일 GPU, 추론(thinking) 출력 비활성화 전후. 빈 그래프의 근본 원인은 아니었음
94.2분2만 6,934청크 컬렉션 첫 전체 빌드 완주공공기관 문서 컬렉션, 클라우드 LLM 추출, 트리플 16만 1,287개. 병목은 계정 단위 API 레이트리밋
2026.05 – 2026.07플래티어 · XGEN
2026.06 – 2026.06플래티어 · XGEN
동일 하네스 설정에서의 모델 통제 비교: 오픈 웨이트 27B와 상용 프론티어 모델
실험 설계·엔진 결함 수정같은 하네스 노드에서 메인 모델만 바꾸고 고정 심판으로 채점해 내부 Qwen3.6-27B와 Claude Sonnet 4.6을 비교했습니다. 설정 조정으로 품질은 동률 수준까지 맞췄고, 비교 중 드러난 빈 도구 결과 처리 결함은 엔진에서 고쳤습니다.
4승 2패실무 컨설팅 6개 과제 재현 실행같은 하네스 노드와 설정, 고정 Sonnet 4.6 심판, 점수 차 0.01~0.05, 양쪽 모두 pass
41분 → 약 100초코드 과제 실행 시간Qwen3.6-27B, 재시도 제거와 max_tokens 4096 적용
약 2배Qwen 응답 지연재현 실행 기준 73~92초 대 38~52초
2026.06 – 2026.06고객사 구축 · 대형 유통
품질검사 판정의 결정론적 설계: 파일별 LLM 판정, 코드 집계, 공유 추론 서버의 배치 비결정성
판정 파이프라인 재설계·검증재실행할 때마다 판정이 바뀌던 품질검사 파이프라인을 파일별 단일 판정과 코드 집계로 재구성하고 판정 규칙을 결정형으로 다시 썼습니다. 이후 실파일에서 남은 흔들림은 별도 실험으로 공유 추론 서버의 배치 처리까지 좁혔습니다.
0/23판정이 바뀐 케이스판정 규칙 재작성 후, OCR 요약 텍스트 입력 실데이터 23건을 같은 입력으로 3회. Qwen3.6-27B
9 : 1동일 텍스트 10회 판정 분포공유 vLLM 서버, 같은 OCR 텍스트를 판정 노드에 10회 입력, 경계 파일 1건
3.7초파일당 판정 시간도구 호출 제거 후 첨부 직독, 파일당 LLM 호출 1.0회, 29파일 요청
2026.06 – 2026.06플래티어 · XGEN
GraphRAG 검색 재설계: 순차 ReAct 탐색에서 병렬 인덱스 시드와 단일 합성 구조로
설계·구현·A/B 평가단일 적응형 ReAct 검색이 기존 1턴 검색보다 느리고 부정확하다는 A/B 결과에서 출발해, 탐색과 답변 합성을 분리한 병렬 인덱스 시드 구조로 바꿨습니다. 고정 100문항에서 정답성이 0.230에서 0.465로 올랐습니다.
0.230 → 0.465정답성(고정 100문항)같은 로컬 스택·골든셋, gpt-4o LLM-as-a-judge 0/0.5/1 채점, 그래프 활성 상태에서 기존 검색 대비
34 vs 13완전 정답 문항 수위와 같은 100문항 조건
1,700~4,500 → 40~200질의당 근거 후보 청크무순위 scroll 5종을 키워드 필터+벡터 랭킹 조회 1회로 교체, 24문항 비교에서 정답성 0.562 동일
2026.06 – 2026.07플래티어 · XGEN
자가단조(Self-Forging): HarnessConfig 공간의 설정 탐색과 Goodhart 방어 게이트
자가개선 루프 설계·구현에이전트가 자기 지시문을 고쳐 쓰는 대신, 타입이 있는 하네스 설정을 실행 기록 기반으로 변이하고 dev와 held-out 벤치 게이트를 통과한 변경만 채택하는 설정 탐색 루프를 엔진에 구현했습니다.
0.5 → 0.96held-out 벤치 점수 JQwen3.6-27B 실 파이프라인, Goodhart 방어 하드닝 후. 같은 모델의 self-judge라 관대 편향 가능성 있음
225 → 237엔진 테스트forge, int(None) 회귀 가드, Goodhart 차단, GEPA 신규 테스트 포함
2026.04 – 2026.06플래티어 · XGEN
플랫폼 독립 하네스 엔진과 이식 브리지: 경계 절단과 설정 진실원본 일원화
엔진·플랫폼 통합 아키텍처엔진이 플랫폼 코드를 알던 구조를 Protocol과 entry_points로 끊고 플랫폼 특화 로직을 브리지 계층으로 옮긴 뒤, 흩어진 설정 조회 경로를 하나의 우선순위 체인과 공용 매핑 함수로 일원화했습니다.
2,251줄엔진에서 제거한 플랫폼 특화 코드v0.22.0, 이식 측 브리지로 2,040 LOC 이관
44/44도구 노드 로드노드 레지스트리 조회 키 불일치 수정 후, 수정 전 44개 중 39개 누락
161파일SDK로 흡수한 엔진 소스전부 상대 import라 문자열 import 4곳만 수정, 엔진 테스트 225건 통과
2026.05 – 2026.07플래티어 · XGEN
온톨로지 빌드 상태 계층 재설계: 진행 상태를 그래프에서 분리하고 PostgreSQL을 source of truth로
설계·구현(백엔드·프론트엔드)빌드 진행률을 RDF 그래프 역질의로 복원하던 구조 때문에 좀비 잡, 폴링 지연, 전체 API 무응답이 반복됐습니다. 진행 상태와 빌드 결과를 분리해 PostgreSQL 카운터를 단일 진실원으로 두고 동기 I/O를 이벤트 루프 밖으로 오프로드해, 대형 빌드 중에도 폴링이 수십 ms 안에 응답하게 했습니다.
74초 → 0.2초빌드 진행률 API 응답개발 서버, PG 카운터 fast-path 재배포 전후 /build/progress 실측(74.19s → 0.17~0.20s)
평균 12ms빌드 중 잡 폴링 응답로컬 스택, 2만 6,934청크 컬렉션 빌드 준비 스캔 25.6초 동안 폴링 50회, 최대 57ms. 수정 전에는 같은 구간 전체 블로킹
2026.04 – 2026.06플래티어 · XGEN
컴파일된 에이전트의 자족 실행: 도구 정의 동결, 서브파이프라인, MCP stdio 브리지와 패키징 결함
컴파일러·배포 채널 설계캔버스에서 만든 에이전트를 wheel, npm, MCP 도구로 내보내 환경변수만으로 실행되게 만들고, 그 과정에서 드러난 wheel 누락과 사문화된 RAG 경로를 fresh-clone 빌드 검증으로 바로잡았습니다.
1.18.1~1.18.4import 실패로 깨진 배포 대역fresh-clone 빌드 wheel에서 memory/__init__.py 누락, PyPI 실물 검사로 확인
151건추적 거부 해제로 확보한 테스트.gitignore가 test_*.py와 tests/를 막던 것을 해제, 같은 날 190건까지 확장
2026.06 – 2026.06고객사 구축 · 대형 유통
품질검사 에이전트의 범용 하네스 노드 이식: 캡슐 노드의 암묵 기능 분해와 결함 17건
하네스 노드 이식·결함 수정전용 캡슐 노드가 암묵적으로 처리하던 이미지 입력, 서브툴 바인딩, RAG 전달, 종료 판정을 범용 하네스 노드로 옮기며 드러난 결함 17건을 고객사 개발 환경에서 실측하며 수정했습니다.
17건이식 과정 결함 수정고객사 개발 환경 실측 기반, 2026-06-04~10
5 → 8초기 바인딩 도구 수런타임 서브툴을 on-demand 발견이 아닌 bound로 등록한 뒤의 tools_count
23 → 83-way 머지 실질 충돌 파일세 버전을 모두 LF로 정규화해 공급한 뒤
2026.04 – 2026.05플래티어 · XGEN
에이전트 전용 상태 머신 실행기: DAG 실행기 내장 실패에서 10단계 Python 엔진까지
엔진 설계·구현기존 워크플로우 실행기 안에 검증 로직을 심는 시도가 되돌려진 뒤, 에이전트 루프를 별도 상태 머신 실행기로 분리하고 Rust 프로토타입을 Pure Python으로 재작성해 10단계 구조로 정리했습니다.
10단계스테이지 구조 확정v1.0.0(2026-04-30), 첫 커밋 후 20일. 이후 7월까지 단계 구성 유지
25/26전략 변형 SSE 매트릭스 통과v1.0.0 릴리즈 기록, 미해결 1건을 함께 명시
2025.01 – 2025.07㈜쉐브론 · LG CNS Singlex 파견
LG CNS Singlex 사내 RAG 챗봇
프롬프트·평가 담당(3인 팀)목차로 매뉴얼을 먼저 고르는 2단계 검색을 제안하고, 프롬프트 버전별 실제 화면 응답 비교를 자동화했습니다.
60% → 85%검색 정확도매뉴얼 600개 한·영·중 내부 테스트셋