ASTRA 자기 제안(검증 통과분) 1순위 구현: 충돌을 '감지'에서 '재구성'으로.
[충돌 → 통합 초안 (사람 승인 대기)]
- conflictScan: 모순 감지 시 LLM이 통합 초안 생성 → .astra/growth/reconcile/
(런당 ≤3건). 신뢰 권고 우선 쪽 기준 + 타방의 유효 정보 보존 + 판단 불가
사실은 "(확인 필요: A는 X, B는 Y)" 병기 + 출처 표기 강제.
- 자동 반영 절대 없음 — 초안 머리에 명기, 승인 시 사람이 직접 반영 (status:
pending-review). 거부 = 파일 삭제.
[A-MEM 레슨 네트워크 (NeurIPS 2025 이식, deep research 2순위)]
- lessonNetwork.ts: 새 레슨 저장 시 기존 레슨과 토큰 자카드 유사도 상위 3개를
"## 관련 레슨" [[위키링크]]로 연결 + 기존 레슨에 백링크(역방향 갱신 —
memory evolution). LLM 호출 0 — 캡처 경로 지연 없음. 멱등(재실행 안전).
- 연결 지점: Correction Loop 자동 레슨 + 수동 레슨 생성(Astra: New Lesson).
고립된 카드 모음 → 상호 연결 네트워크: "같은 종류의 실수" 패턴이 파일
수준에서 보이고 RAG 위키링크로 함께 검색됨.
테스트 6건 추가 (유사도·링크 멱등·양방향·초안 형식). 전체 588 통과.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
v2.2.226 후에도 동일 구식 제안("CoVe 도입하라" 등 + 출처: 모델 지식) 재현.
이번 보강의 핵심은 실패를 *관측 가능*하게 만드는 것 — "주입이 안 됨" vs
"주입됐는데 무시"를 구분 못 해 같은 버그를 3번 쫓았다.
- 개념 매핑 갭 봉쇄: 인벤토리에 "학술 개념 ↔ 구현 매핑" 섹션 자동 생성
(CoVe/Self-Critique↔coveEnabled+critic-loop, 노후점검 자동화↔주간 사이클,
충돌 해결↔일일 스캔+신뢰도 권고, 피드백 태깅↔Correction Loop 등 8건).
모델이 학술 명칭으로 제안할 때 설정 키와 같은 것임을 모르는 갭 제거.
- 관측성: 주입 성공 logInfo + 모델에게 "출처: ASTRA 기능 인벤토리 v<버전>"
표기 지시 — 답변만 봐도 인벤토리가 도달했는지 판별 가능.
- 감지 확대: SELF_RE 에 connectai/프로젝트/업무 능력 추가, 길이 상한 600→1500
(배경 설명 붙은 실사용 질문 포착).
- 앵커 차단: "직전 대화의 본인 제안 반복 금지 — 인벤토리가 우선" 지시
(같은 세션 재질문 시 이전 답변 히스토리에 끌려가는 것 방지).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
[근본 수정 — 자가검증 구식 정보 버그]
ASTRA 자기 지식이 사람이 쓴 스냅샷(selfIdentity 블록·아키텍처 위키 문서)에
의존해 릴리스마다 구식이 됐고, 자기 개선 제안에서 이미 있는 기능을 신규
제안하는 오류가 반복됨. 수정:
- featureInventory.ts: 활성화 시 package.json(contributes.commands/configuration)
+ POST_ANSWER_HOOKS 레지스트리에서 "ASTRA 기능 인벤토리" 문서를 두뇌에
기계 생성 (버전 변경 시 자동 재생성 — 사람이 갱신을 잊을 수 없는 구조).
- selfIdentity: "자기 기능 평가·제안 전 인벤토리와 대조, 기억 의존 서술 금지" 규칙.
[검증-피드백-재설계 파이프라인 보강 — 의견 검토 후 역제안 3건]
- A-1 골든셋 회귀 경보: 주간 사이클이 metrics-history.jsonl 적립 + 직전 대비
recall@1 -10%p 또는 MRR -0.08 하락 시 ⚠️ + 그 기간 추가된 문서를 용의자로
제시(regression-alert.md). 자동 롤백 없음 — 판단은 사람.
- A-2 신규 지식 충돌 스캔(conflictScan.ts): 일일(사전 소화와 같은 슬롯) 신규/변경
문서를 기존 유사 top-2와 LLM 모순 비교 → 충돌 시 conflict-report.md +
"기존 A vs 신규 B" 알림. 쓰기 주체(Datacollect/수동/Research) 무관 포착.
런당 비교 ≤5건·최초 실행 24h 한정 (폭주 방지).
- A-3 criticLoop 게이트 확장: 업무 turn 외에도 "근거 약함(top<0.25) + 단정
표현(수치·날짜·확언)" 트리거 추가. 전 답변 강제 2-pass 는 기각 — intrinsic
self-correction 은 외부 신호 없이 효과 없음(arXiv 2310.01798).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
골든셋(24질의) 측정으로 기존 하이브리드 구현의 결함 3건을 잡고 기본 활성화.
측정 결과: recall@3 83.3%→87.5%, MRR 0.802→0.806, recall@1 회귀 없음 (α=0.5).
수정 (측정으로 검증):
- 임베딩 입력을 토큰 재조합(tokens.join)→원문 슬라이스로 교체 + nomic/e5
task prefix (search_query:/search_document:). 토큰 죽 입력은 하이브리드를
전 지표 하락시켰음 (recall@1 75%→54%). @r2 리비전 키로 구벡터 자동 무효화.
- 블렌드 스케일 버그: 벡터 있는 후보만 정규화돼 벡터 없는 후보의 raw 점수가
상위 독식 → 전 후보 정규화 + cosine 후보군 내 min-max 정규화.
- 헤딩-only 청크도 헤딩 텍스트로 임베딩 (벡터 공백 제거).
추가:
- embeddingBootstrap: 활성화 시 엔진 모델 목록에서 임베딩 모델 자동 감지 →
embeddingModel 자동 설정 + "전체 색인" 버튼 알림. 다국어 모델(e5/bge-m3) 우선.
사용자가 의도적으로 비우면 재설정 안 함 (globalState 가드).
- 벡터 저장 시 소수 4자리 양자화 — 캐시 360MB→~150MB (코사인 순위 영향 없음).
- tests/retrievalEvalEmbedding.test.ts: env-gated 하이브리드 측정 하니스 (alpha sweep).
- scripts/compact_brain_index.mjs: 기존 full-precision 캐시 1회 압축 도구.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
두뇌 미설정 시 config 가 숨김 점폴더(~/.g1nation-brain)로 조용히 폴백해
성장 데이터(레슨·기억·지식)가 비개발자는 찾을 수 없는 곳에 쌓이거나 기능이
멈추던 문제 해결. 설치 컴퓨터마다 저장 위치가 결정적이고 발견 가능해진다.
- 활성화 시 brainProfiles/legacy 경로가 모두 비어 있으면:
· 문서\AstraBrain 폴더 실제 생성 (lessons/·memory/ + 설명 README)
· settings(global) brainProfiles 에 명시 기록 → 설정 UI 에서 보이고 변경 가능
· 사용자 1회 알림 (경로 + 백업 권장)
- 데이터 보호: 옛 폴백(~/.g1nation-brain)에 데이터가 이미 있으면 이동 없이
그 경로를 그대로 등록 (유실 방지).
- 기존 사용자(프로필/legacy 설정 존재)는 완전 no-op.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
신뢰성 코어 (P1~P2):
- Requirement Graph: 업무 유형(회의록/시장조사/업무조사/일정) 필수 요소 주입 + 커버리지 hook
- Confidence Engine(0~100 결정론적) / Escalation Engine(검토 요청) / Epistemic Guard(모름·추정·확실 3분류)
- Provenance: citationTrace 에 출처 수정일·오래됨 경고
- Critic Loop: 문제 신호 turn 만 LLM 검수 1회 + 보완 카드
성장 루프 (P3):
- Gap Detector(Requirement-Knowledge) / Need Engine(30/25/20/15/10 공식) / Knowledge Inventory
- Learning Queue(proposed 전용 병합 — 승인은 사람만) / Decision Journal / Reflection 기록
- 반복 누락 요소(3회+)는 다음 turn 체크리스트에 자동 강조 (T5 루프)
지식 운영 (P4) + 기억 (P5) + 학습 실행 (P6):
- Knowledge Validation + Belief Revision(중복 reject·충돌 시 update/add 권고)
- Knowledge Decay(분야별 반감기 감사) / Knowledge Debt(blocked x impact)
- Organizational Memory(.astra/organization.md 상시 주입)
- Research Agent(approved 큐 -> 조사 브리프+추정 라벨 초안+Validation 게이트 -> proposals/)
- Skill Score(전/후반 추세) + Success Pattern DB(전요소충족+확신도90+ 자동 적재)
병렬 트랙:
- 캘린더 충돌 게이트: conflictCheck + 구조화 이벤트 캐시 + create_calendar_event 차단(force 는 사용자 승인 후)
- Task Eval Harness: 회의록 골든셋 자동 채점 명령 + 성장 리포트/학습 큐/노후 점검 명령
신규 모듈 17종(src/intelligence/), VS Code 명령 5종, 설정 11종, 테스트 +89건(전체 508 통과).
설계 문서: docs/SELF_EVOLVING_OS_MASTER_PLAN.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
설정 패널 dropdown 이 LM Studio 에서 모델 1개만 보이고, 변경하면 원복되던
회귀 수정. 원인: settings 패널의 discoverModels 가 REST /v1/models 만 사용 →
JIT 로딩 환경에서 '현재 로드된' 모델만 반환. (사이드바는 SDK 로 전체를 가져옴)
- discoverModels: LM Studio SDK listDownloadedModels(전체 다운로드) 우선,
실패/0개면 REST 폴백. 사이드바 ModelDiscovery 와 동일 정책으로 통일 →
두 경로가 갈라져 다시 회귀하지 않도록 가이드라인 주석 명시.
- SettingsPanelDeps/SettingsSetupDeps 에 lmStudioDownloaded 콜백 추가,
extension.ts 에서 lmStudioClient.listDownloadedCached 연결.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- src/retrieval/chunker.ts: 문서 청킹 로직 추가
- src/retrieval/evalHarness.ts + src/extension/evalCommands.ts: 검색 품질 평가 하니스
- brainIndex.ts / retrieval/index.ts / memoryContext.ts: 인덱싱·컨텍스트 빌더 개선
- config.ts / extension.ts / sidebarProvider.ts / package.json 갱신
- ADR-0030~0032 및 개발 기록, .astra 런타임 상태 동기화
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>