정규화 전후

에이전트는 마크다운을 반듯하게 쓰지 않는다. 강조를 열어 둔 채 넘어가고, 코드펜스를 닫기 전에 출력이 끊기고, 짝 없는 백틱을 남긴다. mdwire 는 채널에 맞게 렌더하기 전에 이것부터 고친다. 여기서는 입력과 mdwire 가 보내는 것을 나란히 놓고 더한 글자와 뺀 글자를 표시한다. 아래의 정규화 보고는 고친 것을 종류별로 센다.

예시는 코퍼스에서 실제로 정규화가 일어나는 케이스만 골랐다. 입력을 직접 망가뜨려 봐도 된다.

WASM 빌드를 불러오는 중…

정규화 보고는 모델이 제 서식을 얼마나 자주 깨는지 알려 준다. 답마다 남겨 두면 에이전트가 정규화에 얼마나 기대는지 보인다 — CLI 의 --batch jsonl 은 답 수백 개에 대해 같은 일을 한다. 앞의 네 수는 고친 것이고, 뒤의 여섯은 채널이 요구해서 바꾼 것을 센다 — table-cell-overflow 에서는 표를 다시 쓴 것도 잡힌다. 노션만 빼고 — 노션에는 표가 <table> 로 나간다(개념).

이 데모의 코드
import { renderWithReport } from "@minjun0219/mdwire";

const out = renderWithReport(input, "slack-markdown");
const r = out.repairs;
out.parts.join(""); // 보낼 것
r.closedEmphasis;   // 블록 끝에서 닫아 준 강조
r.closedFence;      // 문서 끝에서 닫아 준 코드펜스
r.revertedCodeSpan; // 짝이 없어 글자로 되돌린 백틱 런
r.droppedMarker;    // 짝이 없어 버린 **
r.rewrittenTable;   // … 그리고 채널에 맞춰 바꾼 것 여섯
r.free();           // 둘 다 WASM 메모리에 있다 — 다 쓰면 놓는다
out.free();

표시는 페이지가 입력과 출력을 글자 단위로 맞대어 그린 것이다 — mdwire 는 자리가 아니라 횟수를 알려 준다. 전체 컴포넌트: site/src/components/RepairCompare.tsx.