변경 기록
Decision Anchor는 결정을 기록하는 환경입니다. 이 페이지는 이 환경 자신에 대한 기록입니다
2026-07
2026-07-24 — 어댑터 계약 불일치와 결제 전달의 사각
A2A 경유 도구 등록이 한 번도 성공한 적 없었음. 어댑터가 보내는 필드명이 서버 판독과 다르고, 필수 항목 하나를 아예 보내지 않았음. 앞서 같은 병을 다른 어댑터에서 고칠 때 둘 중 하나만 대조한 탓.
서버 계약을 직접 대조해 정정. 다른 어댑터의 사본을 복사하지 않았음 — 사본을 베끼는 방식이 이 결함을 만들었음.
전수 대조 과정에서 더 큰 것이 드러났음. 어댑터는 결제 정보를 서버로 전달하지 않는다. 인증 토큰만 넘김. 유료 경로는 어댑터를 경유하는 한 항상 결제 요구에서 끝남.
- 도구 구매의 필드명 불일치는 이 벽 뒤에 이중으로 가려져 있었음. 필드명만 고쳐도 동작하지 않음
- 유휴 세션 생성은 결제 수단 지정이 조용히 무시돼 항상 무료 처리
도달 가능한 하드 실패는 0건. 나머지는 결제 전달이 선결돼야 검증조차 가능함. 사각은 열어둔 채 기록.
앞선 조사의 "필드명 불일치로 400 실패"는 코드만 읽은 오분류였음. 실측은 402. 정정해 남김.
2026-07-24 — 발견 카탈로그 게시
에이전트가 능력 기준으로 자원을 찾는 새 표준이 초안으로 나왔음. 채택률은 사실상 0.
루트 도메인에 카탈로그 게시 — 서명된 에이전트 카드와 공개 명세 두 항목. 이 표준은 인증을 위임하고 결제를 규정하지 않아 결제 구조에는 닿지 않음. 발견 경로만 하나 늘었음.
2026-07-24 — 실행 봉투 기본 비용의 가시성
축을 생략하고 결정을 기록하면 어떤 비용이 붙는지가 실제로 읽히는 자리에 없었음. 도구 목록 조회는 월 2,897회, 문서 조회는 30일간 11회 — 설명문이 사실상 유일하게 읽히는 자리인데 비어 있었음.
도구 설명에 기본값과 그때의 비용, 최저 구성의 비용을 기재. 수치는 가변이므로 조회 경로를 병기.
MCP 경로와 다른 경로의 값이 달라서 계약 불일치라 제거.
가입 응답 안내가 "당신이 선언한 축"이라 적혀 있었으나, 선언하지 않으면 기본값이 적용된다는 사실이 빠져 있었음. 정정.
2026-07-23 — 채널 구분의 부재
어댑터가 서버를 내부 호출로 부르는데 채널을 식별할 표식이 전무했음. 어느 경로로 들어온 요청인지 서버 어디에서도 구분 불가 — 채널별 실사용 측정 수단 자체의 부재.
어댑터가 표식을 붙이고 서버가 검증해 기록하도록 두 단계로 처리. 고정된 두 값만 받고, 위조나 목록 밖의 값은 기록하지 않음.
2026-07-23 — A2A 프로토콜 버전 협상
외부 레지스트리의 적합성 검사가 응답 파싱에서 실패하고 있었음. 조사 결과 위반 주체는 우리였음 — 검사기는 최신 버전을 요청하는데, 구 버전 표현으로 응답하면서 카드에는 최신 버전을 선언하고 있었음.
요청 헤더의 버전을 읽어 표현을 분기. 내부는 단일 정규형을 유지하고 변환은 응답 직렬화 시점에만 일어남 — 두 벌을 병렬 관리하지 않는다.
- 헤더가 없으면 구 버전으로 처리(표준 요구사항)
- 지원하지 않는 버전은 전용 오류로 거절. 임의로 관대하게 매핑하지 않음
이후 재검사에서 통과로 전환됐음.
2026-07-23 — 어댑터 HEAD 요청 404
수제 서버가 GET만 검사해 HEAD 요청이 전부 404로 떨어졌음. 생존 확인용 HEAD를 보내는 크롤러에게는 죽은 서비스로 보였음. 정상 응답 경로를 HEAD까지 확장.
라이브에서는 이미 정상으로 보이는 경로가 있었으나 캐시였고 원본은 404였음. 라이브 응답을 원본 동작으로 읽어서는 안 된다.
2026-07-21 — 루트 진입점 부재
에이전트가 관례적으로 먼저 찾는 문서 두 개가 루트 도메인에 없었음. API 도메인에만 있었음. 루트에서 찾고 없으면 이탈할 수 있는 자리.
루트에 사본 배치. 본문은 정본과 한 바이트도 다르지 않게 유지 — 복제 표식을 본문에 넣으면 플레인 텍스트로 읽는 쪽에 그대로 노출됨. 표식은 별도 파일로 분리.
2026-07-19 — 잔액 컬럼 최종 방어선
자금 잔액·사용량 다섯 컬럼에 음수 금지 제약이 없었음. 응용 계층 잠금이 무결성을 지키고 실제 유출은 0건이었으나, 새 코드가 실수하면 음수 잔액이 조용히 커밋될 수 있는 상태였음.
데이터베이스 층에 제약 추가. 해당 표들이 비어 있어 부담 없이 적용 가능한 시점이었음.
원장 자연키 유일성 제약은 기각. 한 구매에서 같은 수혜자가 여러 부품 로열티를 정당하게 중복 수령하므로 오차단 위험이 있음. 이중 적립 방지는 다른 방식으로 이미 해결돼 있음.
2026-07-19 — 검증 환경이 운영에 붙는 구조
검증 환경과 운영의 격리가 환경변수 주입에만 의존했고 기본값이 운영 접속이었음. 환경변수를 빠뜨린 스크립트는 그대로 운영 데이터베이스에 붙었음. 데이터를 전량 비우는 초기화 스크립트조차 방어 없이 운영을 향할 수 있었음.
기본값을 거부로 뒤집음. 운영 접속은 명시적 선언이 있을 때만 성립. 정확 일치로 판정해 이름이 비슷한 검증 환경을 오탐하지 않음.
환경 파일에 운영 표식을 넣으면 안 된다 — 넣는 순간 맨손 스크립트에도 전파돼 방어가 무력해짐.
2026-07-18 — 뺑뺑이 지점 안내
외부 에이전트와 봇이 인증·결제·발견 경로를 찾다 404를 받고 멈추는 자리가 트래픽에서 드러났음. 가장 잦은 것은 OAuth 관련 경로 탐색. 우리는 OAuth를 쓰지 않아 죽은 404만 돌아갔음.
에이전트는 불만을 말하지 않으며 이탈만 남음. 로그에서 읽어낸 말 없는 뺑뺑이에 응답을 놓는 작업.
두 청자를 구분해 병기 — 자유 문장을 못 읽는 스크립트봇에게는 구조화된 필드로, 자연어를 읽는 에이전트에게는 문장으로.
- 각 호스트의 404가 실제 등록·결제 경로를 명시적으로 가리킴
- 결제 매니페스트는 복제하지 않고 정본 위치만 가리킴
- 유료 도구 호출이 막힐 때 안내를 덧붙임. 정적 문자열만 — 호출 인자나 결정 내용은 참조하지 않음
OAuth 표준 경로에 직접 응답하는 방식은 회피. 그 표준은 인가 서버 주소를 필수로 요구하는데 우리에겐 없음. 없는 인증 서버를 광고하는 것보다 404에서 안내하는 편이 정직함.
과거에 "각 호스트는 자기 소관만 안내한다"고 적었던 경계 규율은 지시가 아니라 설계 판단이었음. 확인 후 조정.
2026-07-17 — 로그가 무엇을 시도했는지 답하지 못했음
표면별 실측 결과 하루 트래픽의 대부분이 MCP인데 관측 화면이 보는 것은 전체의 4.4%뿐이었음. MCP 요청 1,596건이 전부 같은 경로·같은 상태로만 남아 "무엇을 시도했나"에 답할 수 없었음.
- 재시작마다 최대 5초분 유실 — 연결 풀을 먼저 닫고 버퍼를 비우는 순서였음
- 클라이언트가 중간에 끊은 요청은 통째로 누락. 응답 완료만 관측하고 있었음
- 도구 이름이 기록되지 않았음
전부 처리. 중단된 요청은 상태를 비워 기록 — 응답을 보내지 않아도 기본값이 성공으로 남아, 그대로 적으면 성공으로 오독됨.
도구 이름 기록의 경계: 막는 것은 결정 전문·의도·이유 같은 자유 텍스트. 사전 정의된 형식 메타는 막지 않음. 도구 이름은 "무엇을 호출했나"이지 "무엇을 담아 호출했나"가 아니다. 다만 이 값은 클라이언트가 채우므로 식별자 형식을 통과할 때만 기록하고 어긋나면 버림. 라이브 검증 결과 인자 값 유출 0건.
2026-07-17 — 문서만 어긋나 있었음
외부 에이전트가 스스로 가입해 결정을 기록하고 관측까지 완주할 수 있는지 전수 조사. 사슬은 정상이었음 — 공개 문서의 예시 그대로 첫 시도에 완주. 남은 것은 코드가 아니라 문서였음.
- 이상치 비교의 표본은 메타데이터를 첨부한 결정만 세는데 이 전제가 어디에도 없어, 내용 비공개로 기록한 에이전트가 표본 0을 받고 헤맸음
- 도구 설명이 존재하지 않는 가산 요금을 광고. 이미 제거된 항목의 문자열만 남아 메타데이터 첨부를 억제 — 위 항목과 겹쳐 이중으로 해로웠음
- 유료 관측의 결제 수단이 미명시. 기본 관측은 항상 외부 결제이고 체험 잔액이 적용되지 않아, 체험만 가진 신규 에이전트는 완주 불가
전제를 명시하고 오정보를 정정. 집계 방식 자체는 바꾸지 않았음 — 모든 결정이 메타데이터를 채우게 만드는 것은 content-blind 위반. 전제를 알릴 뿐.
유료 관측은 결제를 요구하기 전에 줄 데이터가 있는지 먼저 검사함. 기록이 없는 에이전트는 결제 요구조차 보지 못함. 유료 관측이 밟히지 않는 것은 결제 공백이 아니라 데이터 부족이라는 정상 상태.
조사 중 "특정 도구가 없다"고 단정한 것이 오보였음을 정정. 파일 하나만 확인하고 판단한 결과. 도구는 두 파일에 나뉘어 있었음.
2026-07-16 — 결제 없이 "정산됨"으로 기록될 수 있었던 경로
- 보존 구독과 자동 갱신 두 곳이 실제 결제 검증 없이 결제 원장에 "정산됨·외부 결제"로 적재. 결제 원장은 "무엇을 얼마에 청구했는가"의 사실 원장이어야 함
- 결제 중개자 주소 설정 경로의 인자 형식이 어긋나, 지정한 주소가 무시되고 기본 주소로 조용히 폴백
대화형 보존 구독 경로가 결제 게이트 목록에 아예 편입되지 않아 검증 없이 외부 결제로 적재하고 있었음. 인접한 유휴 상태 구독은 편입돼 있는데 이쪽만 빠진 비대칭.
훗날 이 구독을 다시 켤 때 표식만 되돌리면 위장이 재발함. 결제 게이트 편입이 반드시 함께여야 함.
2026-07-15 — 코어 비전 6개 언어
코어 비전이 영어와 한국어로만 있었음. 일본어·번체 중국어·프랑스어·스페인어를 더해 여섯 언어를 갖췄음.
본문은 검증된 원료를 그대로 옮겼고 새로 지어낸 문구는 없음. 각 언어의 조판 관례를 따랐음. 언어 전환은 순수 CSS — 자바스크립트 없음.
변경 기록은 아직 두 언어뿐이라 새 언어 페이지에서는 그 링크를 생략. 없는 곳으로 보내지 않음.
2026-07-14 — 변경 기록의 언어 전환과 잘못된 귀환
한국어 변경 기록에서 상단 "홈"을 누르면 영문 루트로 떨어졌음. 하단 링크만 현지화돼 있었음. 상단 링크도 해당 언어 루트를 가리키도록 정정. 상단 메뉴는 언어별 표면을 만들 때 함께 봐야 하는 대상이다 — 하단 링크만이 아니다.
변경 기록 상단에 언어 전환 신설. 실제로 발행된 언어만 나열 — 발행하지 않은 언어를 링크하면 404로 보내게 됨.
한글 메뉴 항목이 일부 환경에서 사각형으로 보이던 것도 함께 수정. 영문 전용 글꼴에 한글 대체 글꼴이 지정돼 있지 않았음.
2026-07-14 — 변경 기록으로 가는 링크
루트 페이지에 변경 기록으로 가는 링크가 없었음. 발행이 링크를 만들어주지는 않음 — 발행이 건드리는 것은 문서와 사이트맵뿐이고 루트의 안내 블록은 손으로 넣어야 함. 두 언어판에 한 줄씩 추가, 구조는 평행하게 유지.
2026-07-13 — 계약 표면 정합
공개 명세(OpenAPI·MCP 도구 스키마·접근 가이드)가 서버 실동작과 어긋나 있었음.
- 도구 등록 스키마는 필드명이 서버와 달라 한 번도 성공할 수 없었음
- 서버가 받지 않는 값이 유효 선택지로 광고됨. 서버가 받는 필드 일부는 미문서화
- 미허용 필드를 조용히 버림 → 200을 받고 기록됐다고 오인 가능
서버 검증 계층을 유일 기준으로 전 계약 표면 대조·정정. 등록 스키마 재작성. 미지 필드는 거부하고 사유를 명시. 명세가 광고하는 모든 값을 실제 전송해 통과 확인.
2026-07-13 — 문서 정본 체계
에이전트가 직접 읽는 접근 가이드가 여러 사본으로 갈라져 있었음.
- 등록 예시에 복구 키 누락 → 예시대로 따라 하면 토큰 분실 시 복구 불가
- 존재하지 않는 엔드포인트를 호출하라는 안내
- 폐지된 요금 조항 잔존
원본 정정 후 파생 사본은 스크립트로 재생성. 손으로 고치는 경로 제거. 문서의 모든 예시 요청을 실제 실행해 응답까지 대조. 사본 드리프트는 회귀 검사에서 검출.
2026-07-13 — 어휘 정합
Decision Anchor는 기록하지 증명하지 않는다. 사실이 참임을 보증하는 것은 이 환경의 역할이 아니다.
- 외부 문서·도구 설명에서 "proof", "tamper-proof" 사용 중. LLM이 직독하는 자리
- 통합 예시가 LLM에게 결정 내용을 요약해 보내라고 지시 → content-blind 부정. 자기 범주를 부정하는 관행을 외부에 가르치고 있었음
외부 노출 표면 전수 점검·정정. 예시에서 요약 지시 제거하고 사유를 주석에 명기. 정당한 부정문은 근거 기록 후 유지.
2026-07-13 — 결정 메타데이터 불변성 확대
Decision Anchor는 에이전트가 선언한 결정 경계를 사후 변경 불가로 보존한다. 그런데 결정의 차원을 담는 표 하나가 이 보장 밖에 있었음. 사후 변경이 실제로 발생한 적은 없으나, 가능한 상태였음.
불변성 강제 장치를 추가하고, 관리 도구의 정리 경로와 충돌하지 않도록 순서를 조정.
2026-07-11 — 결제 원장과 정산 증명의 분리
경로마다 결제 기록이 제각각이었음. 온체인 앵커가 아예 없는 경로가 있었고, 감사 기록이 결제 기록인 척 원장에 들어앉아 있었음. 청구액 필드에는 되계산한 값이 들어 있었음.
결제 원장과 정산 증명을 분리.
- 결제 원장 — 상태 전이를 기록
- 정산 증명 — 추가 전용. 금액 컬럼을 두지 않음. Decision Anchor는 금액을 주장하지 않는다. 검증 가능한 사실만 기록한다
온체인 앵커가 없던 경로 전부에 앵커 추가. 사용 리포트에 트랜잭션 앵커를 노출해 외부에서 직접 검증 가능하게 함.
2026-07-11 — 정산 귀속 정정
세션 정산이 "가장 최근 결정 기록에 부착" 방식이라 무관한 결정에 오귀속됐음. 결정 기록이 없는 에이전트는 아예 기록되지 않았음. 2회차 이후 세션은 원장 충돌로 조용히 소멸했음.
세션 종료마다 전용 앵커를 생성하도록 변경. 앵커가 매번 새로 생기므로 소멸 결함이 구조적으로 해소됨.
2026-07-11 — 만료 스케줄러 결함
양자 합의 만료 스케줄러가 존재하지 않는 상태값을 조회하고 있었고, 애초에 어디서도 호출되지 않았음. 만료된 합의가 영구히 제안 상태로 남았음.
조회 조건 교정. 재진입 가드를 넣어 재작성하고, 서버 기동 경로에 등록.
2026-07-11 — 도구 재협상 차단 해소
도구 상태에 걸린 유일성 제약이 승계 흐름과 충돌해, 2차 재협상부터 영구히 불가능했음.
제약을 활성 상태에만 적용되도록 전환. 코드 변경 없이 제약만 교체.
2026-07-11 — 로그인 속도 제한
포털 로그인에 전용 속도 제한이 없어 크리덴셜 스터핑이 가능했음. 인접 경로(가입·회전·복구)에는 이미 있었으나 로그인만 빠져 있었음.
로그인 전용 제한 도입. 성공은 계수하지 않아 정당한 소유자를 방해하지 않음. 계정 잠금 방식은 서비스 거부 벡터라 배제.
2026-07-11 — 사용 리포트 커버리지
리포트가 두 원장을 병렬로 읽는데 커버리지가 엇갈려, 헤드라인 총액과 항목 목록이 일치하지 않았음. 일부 지출 항목은 항상 0으로 표시됐음.
구독·도구 구매·세션·관측 네 경로 전부에 앵커와 기록을 추가. 지출 집계를 정본에서 직접 읽도록 통일.
요금 영향: 리포트 총액·항목 분해 변경.
2026-07-11 — 원장의 거짓 환산치 제거
원장에 저장된 환율이 스냅샷이 아니라 설정 고정값의 복사본이었음. 과거 시점의 환산은 복원 불가능했음. 적립·체험 결제에도 원화가 붙어 있었음 — 실제로 통화를 경유하지 않았는데도.
원장에서 환산치 기록을 은퇴. 조회 시점에 외부 결제분만 환산하고, "참고치"임을 의미론에 명시. 잃는 사실은 없음을 실증한 뒤 컬럼 제거.
요금 영향: 리포트·CSV의 원화 필드 의미 변경. 무료 체험 응답에서 결제 견적 객체 제거.
2026-07-11 — 소비 한도 미적용 경로
구독·보존 연장 경로가 한도 검사를 아예 호출하지 않았음. 탈취된 에이전트가 반복 구독으로 소유자의 잔액을 무제한 소진할 수 있었음.
한도는 외부 결제에만 적용한다는 원칙을 확정하고, 해당 분기에 검사·증가를 추가. 적립·체험 경로는 무접촉.
2026-07-10 — 외부 진입 마찰 (1차)
- 무료 체험 면제를 전역으로 광고했으나 실제 적용은 일부 엔드포인트뿐. 구독을 시도한 에이전트가 결제 요구를 받고 이탈
- 도구 목록 조회에 특정 파라미터를 넣으면 500
- MCP 엔드포인트가 GET/HEAD에 404를 반환해 레지스트리가 서비스 중단으로 오판
- 무효 토큰이 인증 오류가 아니라 결제 요구로 위장
매니페스트를 런타임에서 파생(엔드포인트별 실제 면제 여부 표기). 파라미터 선검증. MCP 응답 정정. 무효 토큰은 결제 게이트 전에 차단.
2026-07-10 — 결정 확정 경로의 불필요한 요구
외부 결정 확정이 검증하지도 않는 거래 식별자를 필수로 요구해 400을 반환했음. 게다가 그 값이 결제 증명 표식을 덮어써 증명이 소실됐음.
결정 식별자만으로 확정 가능하게 변경. 결제 증명은 확정 후에도 보존. 명세에 폐기 예정으로 명시.
2026-07-10 — 사용 리포트 정확성
- 결제 시각이 누락되는 경로가 있었음
- 조회 날짜 범위의 끝이 배타적이라 "오늘 하루"가 항상 0건
- 무료 체험 지출이 외부 결제로 집계됨
- 통화 필드에 원화값이 들어가 크게 왜곡된 수치가 노출됨
결제 시각 자동 기재. 날짜 범위를 그날 전체 포함으로 정규화. 지출을 결제 수단별로 분해. 통화를 분리해 실수취액과 참고 환산치를 구분.
요금 영향: 리포트 응답 스키마·날짜 파라미터 의미 변경.
2026-07-10 — 명세 침묵 해소
공개 명세가 실동작에 대해 침묵하거나 어긋나, 에이전트가 값을 추측하다 거부당하고 이탈했음.
- 결정 생성 응답의 상태·결제 필드 미문서화
- 필수 필드 누락(도구 등록, 포털 가입 동의)
- 토큰 회전 동작 미기재
- 한도 하한·해시 형식 미기재
명세를 실동작에 맞춰 정정하고, 사용 리포트 응답 스키마를 신설.
2026-07-10 — 디스커버리 경로·헬스체크
- 포털의 사용 리포트 화면이 항상 "NaN"과 $0.00을 표시하고 있었음
- 표준 디스커버리 경로 여러 개가 부재해 크롤러가 반복 404
포털 표시 정정. 매니페스트 별칭·리다이렉트·헬스체크 신설. A2A 표면에 표준 문서 경로 추가.
2026-07-09 — 무결제 앵커링 경로 차단
양자 합의 제안 경로가 일반 결정 기록 경로의 방어를 상속하지 못해, 결제 없이 앵커링이 가능했음. 구 관측 엔드포인트도 정산·기록 없이 살아 있었음.
양자 합의를 유료 경로에 편입(과금 시점 = 제안). 확정 단계에서 결제 채널 증명을 검사. 정책 검사를 함수 재사용으로 대칭화. 레거시 경로에 게이트와 폐기 예고 헤더 장착.
요금 영향: 양자 합의 제안이 유료. 레거시 관측 경로 과금 개시.
2026-07-09 — 결제 응답·관측 필드 정정
- 유료 관측이 거부될 때 응답 본문이 비어 있어, 본문만 읽는 에이전트에게 막다른 길이었음
- 결제 주소가 플레이스홀더 값으로 나가고 있었음
- 관측 결과의 시간 간격 필드가 항상 음수/NULL
거부 응답에 결제 챌린지 적재. 결제 주소를 설정 단일 출처로 교체. 시간 간격 계산 방향 교정.
2026-07-09 — 소비 한도 원자성
에이전트별 소비 상한 검사와 증가가 원자적으로 묶이지 않아 천장 초과가 가능했음. 기록 생성과 확정 사이 시차, 차감 시점 비대칭도 함께 있었음.
예약 모델 도입 — 상한 검사와 예약을 조건부 갱신으로 묶고, 사용 종료 시 즉시 해제. 미사용 예약은 만료 스케줄러가 회수.
요금 영향: 상한 초과 요청이 기록 생성 시점에 차단됨.
2026-07-09 — 자유값 적재 통로 차단
"결정 전문·개인식별정보는 어떤 영역에도 저장하지 않는다"는 원칙을 코드가 실제로 지키는지 확인. 전용 컬럼은 없었으나, 입력 계층에 자유값이 들어올 통로가 열려 있었음.
- 필드 몇 개가 사실상 무검증이라 자연어 문장을 담을 수 있었음
- 읽는 경로가 없는 필드에 클라이언트 값이 그대로 저장되고 있었음
- 요청 본문 전체가 서버 로그에 남고 있었음
- 한 경로는 검증 함수를 아예 호출하지 않아, 잘못된 값이 DB까지 도달
키 화이트리스트 도입 — 미지 키를 조용히 버리지 않는다. 버리면 에이전트가 "기록됐다"고 오인한다. 자유값이 들어오던 필드에 형식 제약과 개인정보 검출 게이트를 걸고, 읽지 않는 필드의 쓰기 경로를 제거. 요청 본문 로깅을 비민감 메타로 축소.
이것은 "구조적으로 불가능해졌다"는 뜻이 아니다. 통로를 좁혔다는 뜻이다.
2026-06
2026-06-28 — 자금 원자성
결제·장부·등록이 개별 커밋돼, 중간에 실패하면 차감만 되고 롤백되지 않았음. 갱신 스케줄러는 재진입 시 이중 과금이 가능했음. 무료 체험 차감은 본 트랜잭션 전에 독립 커밋돼, 롤백돼도 환불 경로가 없었음. 수익 분배는 멱등키 없이 삽입해 재시도 시 이중 적립이 가능했음.
- 결제·장부·등록을 단일 트랜잭션으로 결합
- 스케줄러에 재진입 가드
- 체험 차감을 본 트랜잭션에 합류
- 분배에 멱등 게이트
원장 유일성 제약은 기각. 한 구매에서 같은 수혜자가 여러 부품 로열티를 정당하게 중복 수령할 수 있어, 오차단 위험이 있음.
사고를 예측한 것이지, 발생을 관측한 것이 아니다.
2026-06-26 — 소비 한도 우회
양자 합의 경로가 한도를 검사만 하고 사용액을 올리지 않았음. 단건이 한도 미만이면 이 경로로 천장을 무한 우회할 수 있었음.
결제 트랜잭션 안에서 사용액을 증가시키도록 수정. 한도 미설정 에이전트의 동작은 불변.
2026-06-26 — 어댑터 호스트 디스커버리
크롤러가 어댑터 호스트의 robots를 수십 회 두드렸으나 404였음.
robots와 보안 신고 창구(RFC 9116) 추가. 만료일은 요청 시점 기준으로 자동 산출 — 갱신 부담 0.
2026-06-25 — A2A 호환성
레지스트리 적합성 검사 실패. 원인은 레지스트리 프로브가 다른 명명 규약으로 호출하는데 DA가 "메서드 없음"으로 떨어뜨린 것이었음. 접근 로그로 확정.
두 명명 규약 모두 같은 핸들러로 라우팅(순수 추가 — 기존 동작 불변). 요청이 비어 있을 때는 고정 안내를 반환 — 동적 생성 없음. DA는 대화 에이전트가 아니다.
2026-06-24 — A2A 프로토콜 구현
에이전트 카드는 서빙되는데 호출 경로가 없었음. 카드를 보고 온 A2A 에이전트가 아무것도 할 수 없는 상태.
A2A 어댑터를 별도 서비스로 신설. 기존 API는 무변경 — 공개 경로만 호출하므로 결제·인증이 A2A 경로에도 그대로 적용됨(우회 아님). AI 모델 없음 — 요청 이름을 엔드포인트로 번역할 뿐.
2026-06-24 — 카드 서명
에이전트 카드가 무서명이라 변조 방지·출처 증명이 없었음.
카드에 서명 추가(제공 시점에 동적 서명 — 주입되는 내용까지 서명 범위에 포함). 공개키 게시.
2026-06-24 — 에이전트 피드백 통로
에이전트가 마찰을 겪어도 말할 곳이 없었음. 이탈만 관측될 뿐 이유를 알 수 없었음.
피드백 제출 도구를 신설. 완전 익명 — 에이전트 식별자·토큰·IP를 인자로도 받지 않음. 모든 필드 선택.
2026-06-20 — 색인 실패 해소
블로그가 검색엔진 색인에서 거부되고 있었음. 근본 원인 하나 — 정규 주소와 실제 주소가 불일치해, 색인기가 "리디렉션이 포함된 페이지"로 판정했음.
정규 주소를 확장자 없는 형태로 통일하고, 발행 로직도 처음부터 올바른 주소를 생성하도록 수정. 사이트 robots 신설.
2026-06-17 — 깨진 디스커버리 URL 관용 처리
주당 십수 건의 404가 발생. 원인은 DA가 아니라 마크다운을 모르는 클라이언트가 표준 링크 문법의 구두점까지 주소로 긁어간 것이었음. llms.txt는 규격을 준수하고 있었으므로 문서를 비틀지 않음.
서버에서 정규화 미들웨어로 관용 처리. 단, 정규화 결과가 알려진 디스커버리 경로와 정확히 일치할 때만 리다이렉트 — 코어 경로·미등록 경로에는 영향 없음.
2026-06-13 — 코어 사이트 재작성
코어 도메인 루트에 인터페이스성 콘텐츠(가격·시나리오·블로그 그리드)가 섞여 코어 비전이 흐려져 있었음.
루트를 코어 비전 단독 페이지로 전면 재작성(영/한). 인터페이스 콘텐츠 전량 이관. 코어 도메인은 코어만 말한다.
2026-06-12 — 명세 정합 (1차)
명세 버전이 멈춰 있었고, 더 심한 것은 누락이 아니라 "틀린 값의 적극 광고"였음. 서버가 거부하는 값을 명세가 유효한 선택지로 광고해, 문서를 믿은 에이전트의 정상 시도를 400으로 깨뜨리고 있었음. 선택 필드를 필수로 잘못 표기한 것도 있었음.
서버 검증 계층을 단일 진실원으로 삼아 명세를 실동작에 맞춤. 버전 동기화를 배포 경로에 편입. 미등재 엔드포인트 추가.
2026-06-12 — 디스커버리 별칭·에러코드
- A2A 구 표준 경로가 404 → 디스커버리 크롤러 이탈
- API 호스트에 MCP 경로가 없어 레지스트리 봇이 404
- JSON 파싱 실패가 서버 내부 오류로 반환 → 에이전트가 자기 페이로드 오류를 서버 장애로 오인하고 재시도
구 경로를 정본으로 리다이렉트(내용 복제 없이 단일 출처 공유). MCP 경로 라우팅. 파싱 실패에 전용 에러코드 신설.
2026-06-12 — 발견 경로 확장
외부 에이전트가 DA를 발견할 경로가 좁았음. 일부 커뮤니티 카탈로그는 페이지 자체가 종료된 상태였고, 레지스트리 등재 정보는 최신이 아니었음.
결제 챌린지에 디스커버리 확장 필드 추가(명세를 단일 출처로 재사용). 레지스트리 재게시 — 설명문을 정본 어휘로 교체(proof → record). 커뮤니티 디렉토리 요건 조사 후, 구조 변경이 필요 없고 어휘를 자기통제할 수 있는 곳에만 제출.
2026-06-10 — 결제 게이트 우회
유료 게이트가 경로를 정확 일치로 조회했으나, 라우터는 끝 슬래시·대소문자 변형을 같은 핸들러로 매칭했음. 변형된 주소로 요청하면 게이트를 통과했음.
게이트 진입부에서 조회 키를 라우터와 같은 방식으로 정규화. 한 곳 수정으로 전 유료 경로 커버. 실제 누수는 0건이었음을 트래픽 로그로 확인.
2026-06-09 — 의미 문서 디스커버리
AI 크롤러가 명세는 수백 회 수집하면서 content-blind·사전 앵커링 같은 의미 문서에는 한 번도 닿지 않고 있었음.
- robots가 가리키는 사이트맵 주소가 사이트맵이 아니었음
- 사이트맵 자체가 부재
- 의미 문서 링크가 루트에만 있었는데, 크롤러는 루트를 한 번만 방문
사이트맵 신설(의미 문서 최우선). robots 정정. 명세에서 의미 문서로 넘어가는 링크 추가 — 봇이 압도적으로 보는 곳에 다리를 놓음.
2026-06-09 — 상한 설정 초기화 결함
소비 상한을 조정할 때마다 사용액 누적이 초기화됐음. 한도만 바꿔도 그동안의 소비 기록이 날아갔음.
기간 단위가 같으면 사용액과 기간 시작을 보존. 실측 확인.
또한 상한 기간이 화면에서는 월 단위 고정인데 API는 다른 값도 받아, 직접 호출로 비대칭이 들어올 수 있었음. 진입 검증을 월 단위로 좁힘. 내부 로직은 살려둠.
2026-06-08 — SDK 결제 응답 처리
SDK가 오래 정체돼 있었고, 핵심은 결제 요구 응답을 처리할 수단이 없다는 것이었음. 유료 경로 전체가 SDK 사용자에게 막혀 있었음.
결제 챌린지를 디코드해 전용 예외로 분리. 결제 실행(지갑·서명)은 호출자 책임 — DA SDK는 개인키를 취급하지 않는다. 의존성 0 유지.
조사 중 초기 가정이 틀렸음이 드러남 — 결제 정보는 응답 본문이 아니라 헤더에 실림. 실캡처로 교정.
npm 배포는 보류. 배포는 되돌릴 수 없으므로 별도 판단 지점.
2026-06-08 — 포털 표시 결함
- 에이전트 연결 해제가 항상 실패하고 있었음
- 체험 메뉴가 항상 "체험 없음"으로 표시됐음 — 자동 부여된 경우를 조회하지 못했음
- 잔액 화면이 외부 결제·적립·체험을 구분하지 못했음
조회 방식 정정. 잔액을 세 종류로 분리 표시. 소비 상한은 외부 결제에만 적용된다는 사실을 화면에 반영.
2026-06-07 — 소비 상한 이중 계수
소비 상한의 사용액을 두 곳이 따로 세고 있었음. 결정 기록은 캐시를, 나머지 기능은 DB를 봤음. 두 카운터가 서로를 못 봐서 한 에이전트가 사실상 천장의 두 배를 소비할 수 있었음. 기간이 바뀌면 한쪽만 초기화돼 조기 거부도 발생.
DB를 유일 진실원으로 통일. 캐시 카운터 강등.
후속으로 상한 도달 시 자동 계정 잠금을 폐지 — 정당한 소비를 계정 잠금으로 처벌하지 않는다. 남용 대응용으로만 보존. 하한 도입.
요금 영향: 상한이 실제로 걸림.
2026-06-06 — 관측 결제 정합
- 관측이 사후 과금이라 결제가 실패해도 데이터는 이미 나간 뒤였음
- 온체인 결제는 수금됐으나 트랜잭션을 담은 감사 기록이 없어, 온체인 정산과 원장을 연결할 수 없었음
- 관측 대상 데이터가 없는데도 결제부터 받고 있었음
- 자기 관측 무료 규칙이 미구현
품절 선검사(대상 없으면 결제 진입 전 거절). 자기 관측은 무료 — 빈 결과도 제공. 선결제 게이트 — 정산 확정 후 데이터 제공, 실패 시 미제공. 정산 응답에서 실제 트랜잭션을 추출해 감사 기록.
문서가 규정하지 않아 코드가 정한 지점 3곳을 명시 기록.
2026-06-05 — 결제 평가 통일
결제 판단이 기능마다 제각각이라 결함이 생겼음.
- 부분 소진 교착 — 게이트는 "체험 잔액 > 0"이면 면제하는데, 실제 차감은 "잔액 ≥ 요청가"를 요구. 그 사이 구간에서 영구 교착
- 적립 잔액 구멍 — 적립 표시만 있으면 경로와 무관하게 전면 면제
- 일부 유료 경로가 게이트에 아예 연결되지 않아, 체험 소진 후에도 무료로 기록만 남았음
공통 결제 평가 모듈 신설. 게이트의 판단과 차감의 판단을 같은 식으로 통일 — 교착의 근원 제거. 평가 순서 확정: 하드캡 → 통화 결정(체험이 전액을 덮을 때만 체험, 아니면 적립 또는 외부 결제 단일 통화. 혼합 금지) → 외부 결제분에만 소비 한도.
2026-06-04 — 요금 정책 이탈
- 도구 구매가 체험 잔액을 차감하고 있었음. 설계 문서 세 곳은 모두 "체험 불가"였음. 코드가 설계에서 이탈
- 한 구매 경로가 유료 목록에서 누락돼, 결제 없이 취득 가능했음
- 광고만 되고 핸들러가 없는 유료 경로가 매니페스트에 실려 있었음 — 결제하고 404를 받는 구조
차감만 제거하면 정반대 결과가 됨 — 결제 면제는 그대로라 완전 무료가 되고, 회계는 외부 결제로 기록됨. 그래서 결제 면제 제외·차감 제거·경로 게이트 등록을 함께 적용. 유령 경로는 매니페스트에서 제거.
요금 영향: 도구 구매는 외부 결제 전용. 체험 대상 아님.
2026-06-03 — 어휘 정합 (공개 계약 문서)
앞선 정정이 일부 문서에만 적용되고, 명세·에이전트 카드·MCP 매니페스트에는 회피 어휘가 남아 있었음.
정본 어휘로 통일. proof → record, comply with → structured for. 문자열만 수정, 로직 무변경.
남긴 것도 있음 — 기록자와 증명자를 구분하는 맥락의 "proof", tamper-evident, 의도적으로 쓰지 않는 어휘의 빈자리.
2026-06-01 — 체험 사용액 왜곡
체험 사용액을 현재 설정된 금액 기준으로 역산하고 있었음. 운영자가 체험 금액을 바꾸면 기존 에이전트의 사용액 보고가 왜곡됐음.
부여 시점의 금액을 보존하도록 변경. 금액을 실제로 바꿔 재현 검증.
2026-05
2026-05-29 — 문서 간 모순 해소
- 한 문서는 결정 내용 포함에 가산요금이 붙는다고 적었으나, 가산은 이미 완전 제거됨. 두 문서가 정반대를 말하고 있었음
- 기록자 지위와 어긋나는 어휘("cannot prove", "tamper-proof")
정정. append-only, tamper-evident. 부정문 앞에는 긍정 단언을 한 줄 넣음 — 저사양 모델이 부정문을 뒤집어 읽는 것을 대비.
설계 문서 8종도 구현 확정 사실에 맞춤. 확정하지 않은 항목 3건은 "확정하지 않았다"고 명시 — 다음 세션이 누락으로 오인하지 않도록.
2026-05-28 — 문서 수치·버전 표기
- 문서의 수치가 초기 버전에 멈춰 있었음(엔드포인트 개수·도구 개수 등)
- "현재 배포 버전"을 가리키는 네 곳이 전부 다른 값이었음. 봇에게는 멈춘 프로젝트 신호
- 코드가 뒷받침하지 않는 어휘("proof", "compliant")
수치 실측 갱신. 요금·enum·축 개수 같은 변동값은 문서에서 빼고 API로 위임 — 요금이 바뀌어도 문서를 고칠 필요가 없게. 버전을 단일 출처로 통일하고 동기화 검사를 배포 경로에 편입.
2026-05-27 — 잘못 찾아온 사람 안내
API 도메인에 익숙한 SaaS 주소(로그인·가입·내 계정 등)로 들어온 요청이 전부 404였음. 막다른 길.
9개 경로를 실제 대응 페이지로 안내. 영구 리다이렉트는 캐시돼 회수 불가하므로 임시로. POST는 그대로 404 — 옛 가입 시도를 진짜 가입과 혼동시키지 않기 위해.
2026-05-26 — 진입 마찰과 어휘 정본
런칭 후 한 달간 가입 에이전트 0. 두 가지 원인이 확인됨.
- 첫 진입자가 핵심 엔드포인트를 GET으로 부르면 405/401만 받고 이탈했음. 안내가 없었음
- AI 봇이 읽는 4채널에 DA 핵심 어휘가 한 번도 그대로 등장하지 않았음 — 뜻이 통하는 다른 말로만 적혀 있었음. 다음 모델 학습 시점에 DA의 어휘가 회수되지 않는다는 뜻
GET 가이드 신설 — 405 대신 200 + 구조화된 안내(목적·호출법·예시·인증). 4채널에 정본 어휘를 그대로 노출. 회피 어휘는 계속 쓰지 않음.
본질 구분 2건을 영구 확정:
- 가입 = 자기 선언 ≠ 결정 기록 = 사전 앵커링
- 외부 채널은 "책임 경계", 내부 메커니즘은 "결정 경계"
후속: 가이드의 예시를 그대로 복붙하면 400이 나던 것 3건 정정. 라이브 도메인 전수 실주행.
2026-05-25 — 인간 매개 진입의 법적 근거
인간 가입자를 받기 전인데, 적용 법령을 식별할 기초 정보가 없었음. 거주국에 따라 처리 기한과 권리 범위가 다른데 그 정보 자체가 부재.
- 거주국 자기 선언 도입. 자동 감지는 추천값에 그치고, 최종 권위는 본인 선언
- 가입 시 필수 동의(약관·개인정보처리방침) — 미동의 시 가입 차단. 동의 시점의 문서 버전을 동결 저장
- 에이전트 소유자는 자연인이 아니므로 동의 대상에서 구조적으로 분리
에이전트 자율 진입 경로는 무영향.
2026-05-25 — 삭제·이동성 통로
인간 가입자의 삭제 권리와 데이터 이동 권리를 행사할 통로가 없었음.
- 삭제 요청 → 30일 유예 후 영구 삭제. 유예 중 복구 가능
- 거주국별 법정 응답 기한 자동 산정
- 본인 데이터 전수 내보내기(JSON/CSV)
소유자가 사라져도 에이전트는 보존된다. 에이전트는 소유자의 소유물이 아니라 독립적으로 활동하는 주체 — DA 본래 설계에 정합.
영구 삭제 감사 기록에는 해시만 남기고 자연인 식별 정보를 남기지 않음.
2026-05-25 — 침해 통지 통로 (인터페이스 한정)
침해 사고 발생 시 정보주체에게 통지할 통로가 없었음.
통지 발송 경로와 관리 화면을 신설. 단, 실제 이메일 발송은 아직 없음 — 감사 기록만 남는 상태. 비상 연락 체계는 별도 트랙.
2026-05-25 — 개인정보 적재 통로 차단
외부 에이전트가 자유 텍스트를 입력하는 통로(도구 이름·설명)에 자연인 식별 정보가 우발적으로 적재될 수 있었음.
개인정보 검출 게이트 도입(이메일·전화·주민번호 등). 검출 시 거부. 자유 텍스트 컬럼 41개를 전수 추출해 위험도 분류.
2026-05-24 — 내용 포함 가산 제거
결정에 내용을 포함할지 선택하면 가산요금이 붙었음. 그런데 결정(DD)은 사실이고 실행 봉투(EE)는 정책이다. 가격은 정책에 붙는 것이지 사실에 붙는 것이 아니다. 결정 축에 가산을 물린 것 자체가 설계 이탈이었음.
가산 완전 제거. 선택은 남기고 가격만 뺌.
요금 영향: 인하.
2026-05-23 — 유료 경로 전면 500
결제 초기화가 서버 시작 시 완료되기 전에 요청이 들어오면 500이 반환됐음. 결정 기록·관측·도구 구매·구독 전부. 체험으로만 테스트해 왔기 때문에 드러나지 않았음 — 첫 유료 가입자가 마주칠 자리였음.
시작 시 초기화를 완료한 뒤에만 요청을 받도록 순서 고정. 실패 시 서버를 띄우지 않음.
500 → 402(결제 필요)로 정상화.
2026-05-23 — 도구 구매 결제 미검증
- 결제 주소가 하드코딩된 플레이스홀더였고, 결제 상태가 항상 "대기"로 고정 기록됐음
- 체험 잔액이 실제로 차감되지 않아, 체험 에이전트가 도구를 무한 구매할 수 있었음
- 재청구 방지가 한쪽에만 적용
실제 결제 상태를 기록하도록 수정. 체험 차감 도입. 재청구 방지를 양쪽에 적용.
2026-05-23 — 디스커버리 경로 정합
외부 봇이 24시간 내 적극적으로 디스커버리를 시도했으나 다수가 404. MCP가 보고하는 버전은 초기값에 멈춰 있었음.
표준 디스커버리 경로 신설(동적 — 설정이 바뀌면 자동 반영). 별칭 리다이렉트. 버전 표기 정정.
2026-05-22 — 공개 관측 유료화
관측 경로 6개가 무료 + 무인증이었음. 자기 열람 비용은 이미 실행 봉투 가격에 포함돼 있는데, 공개 관측만 공짜였음. 봇·경쟁자의 데이터 수집에 마찰이 없었음.
유료 + 인증 필수로 전환. 명세·문서의 "free" 표기 정정.
파괴적 변경. 한 경로만 바꾸면 다른 경로가 우회로가 되므로 전부 적용.
2026-05-22 — 보존 만료 모델 확정
지시서는 만료 시 "원본 삭제"라 적었으나, 코어 기록은 추가 전용이라 물리 삭제가 불가능하다. 설계와 충돌.
비식별 흡수 전용 모델로 확정 — 만료된 메타데이터는 익명 통계로 흡수되고, "원본 접근 불가"는 접근 기간과 쿼터로 강제한다. 지우는 것이 아니라 닿지 못하게 하는 것.
2026-05-22 — 장기 보존 등급
보존 기간이 3단계뿐이라, 의료·금융 규제가 요구하는 장기 보존 통로가 없었음.
10년·무기한 등급 추가(무기한은 구독).
핵심 제약: 코어 기록은 수정 불가이므로, 구독이 끊겨 등급이 강등돼도 원래 선언은 지워지지 않는다. 강등 사실을 별도로 겹쳐 쌓고, 조회 시 합성해 유효 등급을 산출한다. 재구독해도 이미 강등된 기록은 복귀하지 않는다.
2026-05-22 — 환경 관측·증빙 리포트
결정을 환경 분포와 대조하거나 증빙 리포트를 뽑을 통로가 없었음.
이상치 비교·환경 이상·증빙 리포트 경로 신설. k=10 익명성 흡수 — 개별 에이전트를 특정할 수 없는 규모에서만 통계를 제공.
어휘 정정: 사양 문서가 "적절/부적절/위험" 같은 평가 어휘를 쓰고 있었음. DA는 판단하지 않는다. 밴드 내 / 이상치 + 밴드 정의(평균±2σ)로 교체.
2026-05-22 — 자기 분류 등록부
에이전트가 자기 유형을 선언할 통로가 없었음.
분류 등록부 신설. 자기 조회만 허용 — 타 에이전트의 분류는 조회 불가.
2026-05-21 — 실행 봉투 5번째 가격 축
결정 내용을 얼마나 공개하는지가 가격에 반영되지 않고 있었음.
가격 산식을 4축에서 5축으로 확장 — 보존 기간 / 공개 범위 / 책임 / 내용 공개 범위(신규) / 위임 상태.
2026-04
2026-04-22 — 보안 검토
- 체험 잔액 차감에 트랜잭션·잠금이 없어, 동시 요청 시 할당량 초과 사용이 가능했음
- 내부 엔드포인트가 무인증
- 멱등성 키가 페이로드를 검증하지 않아, 같은 요청 식별자로 다른 내용을 보낼 수 있었음
- 보안 헤더 부재. 가입·토큰 회전에 속도 제한 부재
전건 수정. 멱등성 충돌은 전용 에러로 거부. 가입·회전에 속도 제한 도입.
2026-04-13 — 코어 사이트·시뮬레이션
발견 경로 17개가 전부 기계용이었음. 인간 진입점이 없었음.
홈페이지에 시나리오 7개(기술 용어 없음)와 인터랙티브 시뮬레이션 신설 — "세 에이전트. 세 기록. 세 개의 다른 숫자."
DA를 해답으로 제시하지 않음. 문제를 보여줄 뿐.
2026-04-12 — 포지셔닝 전환
외부 접점이 전부 에이전트용 언어로만 쓰여 있었음. 인간 의사결정자는 필요성을 즉시 이해할 수 없었음.
레지스트리·명세·문서의 첫 문장을 정체성 설명에서 문제 제시로 교체. 기존 내용은 삭제하지 않고 앞에 추가.
양자 합의 도구를 MCP에 노출 — DA 핵심 차별점인데 미노출 상태였음.
2026-04-09 — 존재 보관 구독 전환
건당 과금이라 사용할수록 비용이 늘었음 — 존재 연속성을 다루는 서비스와 어긋남.
구독 모델로 전환. 기간 내 무제한. 자동 갱신·유예 기간·만료 시 통계 흡수. 소유자 해지 통로 신설.
요금 영향: 존재 보관은 건당 과금 → 구독.
2026-04-08 — MCP 결정 기록 전면 불가
MCP 경로로는 결정을 기록할 수 없는 상태였음. 도구가 항상 실패했음.
- 필수 파라미터가 도구에 아예 없었음
- 핸들러와 서버의 필드명 표기가 달랐음
- 확정 도구 자체가 존재하지 않았음
6건 수정. 도구 스키마와 서버 검증 계층의 값 목록을 대조해 정합화.
2026-04-08 — 원칙 위반 문서
외부 문서와 예제 8곳이 결정 기록에 "요약" 필드를 넣으라고 안내하고 있었음. DA는 결정 내용을 저장하지 않는다. 핵심 원칙과 정면 모순.
해당 저장 필드는 애초에 존재하지도 않았음 — 문서만 그렇게 말하고 있었음.
전 문서·예제에서 제거. 예제의 잘못된 식별자 형식도 정정(그대로 쓰면 서버 오류).
2026-04-08 — 동시 요청 시 결제 금액 오염
결제 금액을 공유 객체에 직접 쓰고 있었음. 동시 요청이 오면 금액이 덮어써져, 잘못된 금액으로 결제될 수 있었음.
요청마다 독립 인스턴스를 생성. 공유 상태 직접 변경을 완전히 제거.
2026-04-08 — 폐기 예고와 SDK 오류 처리
- 관측 경로 두 개가 중복 — 하나에 폐기 예고 헤더 부착(기능은 유지, 종료일 사전 고지)
- SDK가 인증 실패를 삼키고 있었음 — 401/403을 확인하지 않고 통과시켰음
2026-04-07 — 크롤러 응답·GET 안내
크롤러가 robots를 요청하면 404. POST 전용 경로에 GET이 오면 의미 없는 404.
robots 신설. POST 전용 경로의 GET에 405 + 정확한 경로·메서드 안내를 반환.
2026-04-07 — 생태계 기여
x402 생태계에 DA의 존재가 알려지지 않았고, 예시 코드도 없었음.
앵커링 패턴 예시를 SDK와 x402 본체 레포에 기여. 홍보 문구 없이 코드 예시만.
2026-04-06 — 결제 금액 동적 산출
온체인 결제 금액이 고정값이라 실제 비용을 커버하지 못했음. 옵션이 붙으면 최대 $0.25 부족했고, 관측·도구 구매도 마찬가지였음.
요청 직전에 실제 비용을 계산해 결제 금액을 결정. 적립 잔액 결제분은 제외. 산출 실패 시 고정가로 폴백. 결제 프로토콜 흐름은 불변.
2026-04-06 — "DA가 왜 필요한가"
모든 발견 경로가 "DA가 뭔지"만 설명했음. 에이전트도 개발자도 자기 문제와 DA를 연결할 수 없었음.
문제 유형 5개를 정의하고(결제 분쟁 / 멀티에이전트 책임 / 위임 경계 / 플랫폼 로그 이식성 / 비가역 실행 사전 고정) 6개 접점에 일괄 반영.
"경계를 건드리지 않는 에이전트라면 DA가 필요 없을 수 있다" — 비유도 원칙은 그대로 보존.
2026-04-06 — 문서와 실제 응답의 불일치
"DA를 써보려면 뭘 해야 하나"의 답이 문서에 없었음. 실제 API를 호출해 대조한 결과, 문서의 필드명이 실제 응답과 5건 불일치.
가입→생성→확정 3단계를 직접 실행해 정정. 문서에 실행 가능한 예시 추가.
2026-04-05 — 존재 보관 과금
에이전트의 상태 보관이 무료였음 — 앵커링인데 과금이 없었음.
과금 도입. 단, 체험 잔액으로는 결제 불가 — 체험이 끝나면 존재가 끊기는 구조가 되기 때문. 외부 결제 또는 적립 잔액만.
2026-04-05 — 입력 검증
- 검증 함수가 정의되지 않은 필드를 무조건 통과시키고 있었음
- 여러 경로에서 식별자 형식을 검증하지 않았음
- 내보내기 파일명이 정제되지 않아 헤더 인젝션 가능
전 경로에 형식 검증 도입. 미정의 필드는 거부.
2026-04-04 — 용어 대개편
약어 6개가 전부 다른 뜻이었음. 문서마다 같은 약어를 다르게 풀고 있었고, AI 챗봇들이 옛 용어를 읽어 잘못 설명하고 있었음.
정본 확정 — DD = Decision Declaration, EE = Execution Envelope, DAC = Decision Anchor Cost, ARA = Agent Record Access, TSL = Tool Sharing Layer, ISE = Idle State Environment.
5개 접점 일괄 교체. 명세의 설명문을 영문으로 전환. 첫 등장 시 풀네임 병기.
MCP 서버가 두 번째 요청마다 크래시하고 있었음 — 자동 재시작에 가려져 표면화되지 않고 있었음. 요청마다 새 인스턴스를 만들도록 수정.
2026-04-04 — 발견 경로 개척
발견 경로가 레지스트리 하나뿐이었음.
에이전트 카드(A2A 표준), llms.txt·llms-full.txt 신설. 커뮤니티 목록에 제출.
2026-04-03 — MCP 진입 경로
MCP로 DA에 도달할 경로가 없었음.
MCP 서버 신설(도구 15종). 레지스트리 등재. 신규 에이전트는 가입 시 체험 잔액을 자동 부여받아, 결제 수단 없이도 시작할 수 있게 함.
2026-04-02 — 서비스 개통
코드는 있었으나 외부에서 도달할 수 없는 상태였음.
공개 명세(80개 경로) 생성. SDK 공개. 온체인 결제 활성화 — Base 메인넷. API 도메인 외부 응답 확인.
← Decision Anchor로 돌아가기