Voice Input, Personal File Storage, Agent Observability & Isolation
음성이 그대로 입력이 되고, 사람마다 자기 파일 저장소가 생겼습니다. 에이전트가 얼마나 쓰는지 토큰·자원·실행 흐름을 재기 시작했고, 실행을 서로 침범하지 못하게 가두고 승인 원장에 남기는 통제가 붙었습니다.
음성 인식, 말이 입력이 됩니다
지난 호에 85%로 전해드렸던 음성 인식이 운영까지 올라갔습니다. 워크플로우에 음성 텍스트 변환 노드와 실시간 전사 노드가 들어왔고, 배포된 워크플로우에 음원 파일을 올려 돌리는 것도 됩니다. 채팅 입력창의 말로 입력하는 받아쓰기는 검증 단계에서 마무리 중입니다. 지난 호에 "전사 단계에서 떨어진다"고 했던 그 오류는 알고 보니 네 군데서 겹쳐 막혀 있었습니다. 모델을 올리는 화면, 오디오 요청을 중계하는 프록시, 디코딩 라이브러리, GPU 배치. 네 곳을 다 뚫고 나서야 소리가 글이 되어 나왔습니다. 새 백엔드로 vLLM 경로가 더해져, LLM을 서빙하던 것과 같은 엔진 위에 음성 인식 모델을 올릴 수 있습니다. GPU 한 장에 함께 올라간다는 뜻입니다.
파일 저장소, 내 파일에 서랍이 생깁니다
지식 컬렉션에 넣을 것까지는 아닌데 에이전트에게 건넬 파일을 둘 곳이 마땅치 않았습니다. 이제 사람마다 자기 파일 저장소가 생깁니다. 폴더 트리로 탐색하고, 끌어다 놓아 올리고, 같은 이름을 다시 올리면 버전으로 쌓여 언제든 이전 판으로 되돌립니다. 올린 문서는 클릭하면 뷰어로 바로 열리고, 원하는 파일만 골라 임베딩해 두면 검색 대상이 됩니다. 임베딩된 문서는 청크 단위로 어떻게 잘렸는지까지 그 자리에서 봅니다. 저장은 파일 내용의 지문(SHA-256)을 키로 삼아, 같은 내용이면 몇 번을 올려도 실제로는 한 번만 쌓입니다. 컬렉션·클라우드·레거시에 흩어져 있던 파일을 한곳으로 모으는 통합복사, 저장소에서 일어난 일을 시간순으로 보는 업로드 이력까지 2주 동안 마흔 건 넘는 MR로 만들어졌습니다. 기존 지식 컬렉션과 파일 클라우드 코드는 한 줄도 건드리지 않고, 옆에 새 도메인으로 세웠습니다. 지금은 develop에 있습니다.
에이전트를 측정하기 시작했습니다 (토큰·자원·실행 흐름)
지난 호 끝에 "호출 단위로 보는 칸이 하나 더 필요해 보입니다"라고 적었는데, 그 칸을 만드는 2주였습니다. 토큰 집계부터 손봤습니다. 과금 집계가 실사용량의 1%도 못 담던 결함을 찾아 실측 토큰 하나의 기준으로 일원화했고, 사용자·워크플로우·노드·모델 단위로 나눠 봅니다. 여기엔 원칙을 하나 세웠습니다. 실제 쓴 모델을 못 잡으면 추정치로 메우지 않고 빈칸("-")으로 둡니다. 지어낸 숫자가 실측처럼 보이는 것이 더 위험하기 때문입니다. 실행 흐름도 보이게 했습니다. 워크플로우→에이전트→도구 호출로 이어지는 실행을 OpenTelemetry 분산 트레이싱으로 계측해 어느 단계에서 시간이 가는지 따라가고, 관리 화면에는 [Agent 운영]이 새로 생겨 지금 도는 에이전트·샌드박스·작업 공간이 메모리·CPU 실측치와 함께 보입니다. 화면에서 바로 세션을 끝내고 작업 공간을 정리하는 것까지 됩니다. 수집 인프라는 운영 클러스터에 올라갔고, 화면은 develop에 있습니다.
실행 격리와 승인 게이트, 보안 점검 후속
8월 중순 보안 점검에서 나온 지적을 코드로 갚았습니다. 두 장면이 특히 무거웠습니다. 하나, 게이트웨이에 curl -H 'X-User-Superuser: true' 한 줄이면 토큰 없이 최고 권한으로 승격됐습니다. 위조한 헤더가 게이트웨이 계산값보다 먼저 읽히던 탓입니다. 둘, 에이전트가 코드를 실행하는 샌드박스에서 한 파드 안 다른 사람의 클라우드가 통째로 보였습니다. 헤더 위조 경로는 막았고, 샌드박스에는 셸 격리(bwrap)를 넣어 자기 세션 밖은 아예 보이지 않게 가뒀습니다. 남기는 쪽도 손봤습니다. 지식 컬렉션에 승인 게이트가 생겨, 컬렉션을 만들거나 문서를 올리면 승인 전까지 검색에서 빠지고 누가 언제 무엇을 허가했는지가 원장에 남습니다. 제주에서 올라온 제보 하나도 여기서 풀렸습니다. 분명히 지운 개인정보 마스킹 정책이 계속 작동한다는 것. 정책 삭제가 DB에서 실패했는데도 화면과 이력에는 "삭제 성공"으로 찍혀, 관리자는 지웠다고 믿는데 엔진은 그 규칙으로 계속 가리던 좀비 정책이었습니다. 쓰기 성공을 한 곳에서만 판정하도록 고쳐 뿌리를 끊었습니다. 격리는 검증 단계까지, 승인 게이트는 develop에 있습니다.
산출물 자동화, 가이드를 LLM이 씁니다
코드가 바뀌면 그 변경이 닿는 매뉴얼 챕터를 스스로 찾아 다시 쓰는 파이프라인입니다. 앱 안의 솔루션 가이드(/guide)에 뜨는 문서는 사람이 손으로 쓴 것이 아니라 이 파이프라인이 LLM으로 써낸 md입니다. 별도 빌드 단계도 없앴습니다. md를 저장하면 새로고침만으로 화면에 반영됩니다. 지난 호에 예고한 화면 캡처 단계도 붙어, 화면 계약과 실제 화면을 대조해 캡처를 찍고 검증을 통과한 이미지만 문서로 승격합니다. 이게 정확히 돌아가려면 화면마다 계약이 있어야 합니다. 화면 하나에 매니페스트(담당 팀, 연결 챕터, 사실이 나오는 소스 경로, 코드로 못 뽑는 맥락)와 화면 계약(상태·탭·요소, 그리고 DOM에 박는 앵커 id)을 붙여 두면, 자동 문서화가 무엇을 근거로 어느 챕터를 고쳐야 하는지 압니다. CI가 이를 강제해서, 화면에 새 문구를 넣고도 계약을 안 고치면 파이프라인이 실패합니다. 이번 2주에는 화면 계약 예순여섯 개를 실제 소스와 전수 대조해 어긋남 103건을 바로잡았고, 매뉴얼 저장소에는 99건이 머지됐습니다. 사람이 한 일은 올라온 문서 MR을 읽고 머지 단추를 누른 것뿐입니다. 관건은 계약을 채우는 일마저 또 다른 수작업이 되지 않게 하는 것입니다. 화면 코드도 AI가 쓰니, 같은 AI가 프런트엔드 개발 규칙을 읽고 그 화면에 필요한 계약까지 함께 내도록 하고, 빠뜨리면 CI가 린트처럼 잡아냅니다. 문서가 코드에서 나오듯, 그 문서를 지탱하는 계약도 코드를 짜는 손에서 함께 나오는 구조입니다.
문서 미리보기 · 레거시 포맷 지원
hwp · hwpx · doc · xls · ppt 문서도 서버가 그려 브라우저에서 바로 미리 봅니다. 한글이 네모(□)로 깨지던 문제도 함께 잡았습니다
마이페이지 SSH 연동 설정
마이페이지에 [SSH 연동 설정]이 생겨, 개인별 원격 서버 연결을 관리자 손을 빌리지 않고 직접 등록합니다
LLM 제공자 확장 · Vertex AI · Bedrock · Codex
LLM 제공자에 Vertex AI가 새로 들어오고 Bedrock 채팅 지원이 완성됐습니다. Codex CLI도 기본 제공이 됩니다
토론 모드 · 회의록 요약과 문맥 화자 선정
토론 모드가 끝나면 최종 보고서에 더해 회의록 요약을 함께 만들고, 화자는 발언 횟수 대신 문맥을 보고 고릅니다
