fix(identity): 자기 오보고·3인칭·앵무새 반복 3종 수정 (v2.2.215)

사용자 대화 분석에서 발견된 3개 결함:
1) 자기 오보고 — 자기 지식 블록이 Astra 모드에만 있어 Agent 모드는 미적용.
   selfIdentity.ts 공용 모듈로 추출해 양 모드 system prompt 에 주입.
2) 3인칭 화법 — "Astra는~"처럼 남 얘기하듯 답하던 문제. 공용 블록에
   "너는 ASTRA 본인, 반드시 1인칭" 규칙 명시.
3) 앵무새 반복 — [PRIOR TURN CONCLUSION]의 "…결론으로 다시 말해라" 지시를
   소형 모델이 문자 그대로 해석, 직전 답변 첫 문장을 턴마다 서두에 복창.
   지시문을 "인용 받아쓰기 금지 + 자신의 새 문장으로 재평가"로 교체.

근본 보강: 두뇌(2nd)에 정본 자기 기술서 'ASTRA 자기 아키텍처' 문서 생성
(별도 커밋) — 자기 기능/성장 질문 시 RAG 가 실제 사실을 검색하게 함.
self-identity 블록도 해당 문서를 근거로 답하라고 연결.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 14:41:14 +09:00
parent 30a876c71a
commit 4eb8bf03f7
21 changed files with 183 additions and 70 deletions
+14 -14
View File
@@ -3,15 +3,15 @@
<!-- ASTRA:AUTO-START -->
## Snapshot
- **Workspace**: `connectai` `v2.2.214` _(absolute path varies by environment; resolved from the active VS Code workspace)_
- **Workspace**: `connectai` `v2.2.215` _(absolute path varies by environment; resolved from the active VS Code workspace)_
- **Description**: The personal intelligence layer for Antigravity and VS Code. A private cognitive partner for deep project context, memory, and proactive strategic decision-making.
- **Stack**: TypeScript, Node.js, VS Code Extension, LM Studio SDK, Test runner
- **Stats**: 478 source files, ~76,527 lines across 5 top-level modules.
- **Stats**: 482 source files, ~76,610 lines across 5 top-level modules.
## Last Refresh
- **Time**: 2026-06-11T05:30:08.345Z
- **Files newly analysed**: 3
- **Files reused from cache**: 475
- **Time**: 2026-06-11T05:40:30.212Z
- **Files newly analysed**: 0
- **Files reused from cache**: 482
## Directory Map
```mermaid
@@ -20,8 +20,8 @@ mindmap
src/
features/
sidebar/
agent/
lib/
agent/
retrieval/
intelligence/
media/
@@ -40,11 +40,11 @@ mindmap
> Arrows: which top-level module imports from which.
```mermaid
flowchart LR
src["src/<br/>298 files"]
src["src/<br/>299 files"]
media["media/<br/>6 files"]
tests["tests/<br/>45 files"]
core_py["core_py/<br/>6 files"]
docs["docs/<br/>123 files"]
docs["docs/<br/>126 files"]
tests --> src
```
@@ -67,13 +67,13 @@ flowchart LR
## Modules
### `src/` — 298 files, ~56,894 lines
### `src/` — 299 files, ~56,917 lines
**Sub-directories**
- `src/features/` (105) — Astra Office — public API. 다음 세션에서 추가될 OfficeSnapshot presenter / schema 도 같은 entry 로 노출 예정. 현재 노출: full webview panel H
- `src/sidebar/` (35) — Brain profile lifecycle 의 pure helpers — sidebarProvider 의 add/edit/delete 흐름에서 modal UI 와 config 쓰기를 제외한 데이터 변환 만 격리. 현
- `src/lib/` (30) — Astra Mode Architecture Context Builder. 의도: 사용자가 Astra 자체의 mode 디자인 (Guard vs Multi-Agent 가 별도 모드여야 하는지) 을 묻는 메타 질문에 답할
- `src/agent/` (29) — Post-answer hook registry — 답변 완료 후 실행되는 부가 작업 모음. 새 hook 추가 = 1 객체 push. agent.ts 는 이 배열을 iterate 만 함. 현재 등록 순서 (v2.2.1
- `src/lib/` (29) — Astra Mode Architecture Context Builder. 의도: 사용자가 Astra 자체의 mode 디자인 (Guard vs Multi-Agent 가 별도 모드여야 하는지) 을 묻는 메타 질문에 답할
- `src/retrieval/` (18) — Actionability Scoring — 검색 결과를 "현재 작업 상태" 신호로 재가중. 기존 TF-IDF (단어 매칭) + recency (시간) 만으로는 "지금 이 사용자가 하고 있는 작업과 직접 연결 된 문서
- `src/intelligence/` (16) — Confidence Engine — 답변 확신도 0~100 결정론적 산출. Self-Evolving OS 마스터 플랜 Phase 2 / Track 1-1. 신뢰 조건 T4 "확신이 없으면 사람에게 묻는다" 의 측정
- `src/core/` (15) — Astra Path Resolver (경로 해결기) Astra의 모든 데이터 파일(.astra 디렉토리)의 경로를 중앙에서 관리합니다. 확장 프로그램의 설치 경로(extensionUri) 기반으로 .astra 디렉토
@@ -165,17 +165,17 @@ flowchart LR
- `core_py/optimizer.py` (55 lines)
- `core_py/queue_worker.py` (82 lines)
### `docs/` — 123 files, ~4,410 lines
### `docs/` — 126 files, ~4,470 lines
**Sub-directories**
- `docs/records/` (109) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 프로젝트 코드 리뷰 해줄 수 있어? 개선할 부분이 있는지, 그러고...
- `docs/records/` (112) — Bug: /Volumes/Data/project/Antigravity/ConnectAI 프로젝트 코드 리뷰 해줄 수 있어? 개선할 부분이 있는지, 그러고...
- `docs/docs/` (5) — Bug: Viewed integrationretrieval.test.ts:1-59 integrationretrieval.test.ts를 통해 ...
- `docs/Meeting/` (0)
**Key files**
- `docs/TELEGRAM_REMOTE_EXECUTION_PLAN.md` (452 lines) — Telegram Remote Execution 기획서
- `docs/AgentEngine_Architecture.md` (314 lines) — AgentEngine Architecture Document
- `docs/records/ConnectAI/timeline.md` (278 lines) — Project Timeline
- `docs/records/ConnectAI/timeline.md` (287 lines) — Project Timeline
- `docs/SELF_EVOLVING_OS_MASTER_PLAN.md` (275 lines) — ASTRA Self-Evolving Digital Employee OS — 마스터 개발 계획 v1.1
- `docs/ASTRA_OFFICE_REFACTOR.md` (198 lines) — Astra Office Refactor — Design Doc
- `docs/EXPERIENCE_MEMORY_PLAN.md` (122 lines) — Experience Memory (Mistake / Lesson Loop) — Implementation Plan
@@ -348,7 +348,7 @@ Astra는 대표님의 명시적인 승인 하에 로컬 시스템의 강력한
**Designed for High-Performance Decision Making.**
Copyright (C) **g1nation**. All rights reserved.
_Last auto-scan: 2026-06-11T05:30:08.345Z · signature `8baafc08`_
_Last auto-scan: 2026-06-11T05:40:30.212Z · signature `3be9404d`_
<!-- ASTRA:AUTO-END -->
## Purpose
+45 -15
View File
@@ -1,6 +1,6 @@
{
"version": 1,
"generatedAt": "2026-06-11T05:30:08.425Z",
"generatedAt": "2026-06-11T05:40:30.394Z",
"files": {
"src/agent/actions/brainOps.ts": {
"mtimeMs": 1779764602582.9768,
@@ -125,24 +125,26 @@
]
},
"src/agent/handlePrompt/buildAgentModeSystemPrompt.ts": {
"mtimeMs": 1779764602589.828,
"size": 4039,
"lines": 75,
"mtimeMs": 1781156303654.8252,
"size": 4330,
"lines": 78,
"role": "",
"imports": [
"src/lib/contextBuilders/systemPromptShaping",
"src/lib/contextManager",
"src/utils"
"src/utils",
"src/lib/contextBuilders/selfIdentity"
]
},
"src/agent/handlePrompt/buildAstraModeSystemPrompt.ts": {
"mtimeMs": 1781155366197.795,
"size": 8260,
"lines": 114,
"mtimeMs": 1781156248693.8586,
"size": 6827,
"lines": 105,
"role": "",
"imports": [
"src/lib/contextBuilders/localProjectIntent",
"src/lib/contextBuilders/promptDetection",
"src/lib/contextBuilders/selfIdentity",
"src/retrieval/knowledgeMix"
]
},
@@ -2189,9 +2191,9 @@
"imports": []
},
"src/lib/contextBuilders/priorTurnConclusion.ts": {
"mtimeMs": 1779764602640.9502,
"size": 3761,
"lines": 75,
"mtimeMs": 1781156354349.277,
"size": 4210,
"lines": 78,
"role": "",
"imports": [
"src/agent"
@@ -2242,6 +2244,13 @@
"src/features/secondBrainTrace"
]
},
"src/lib/contextBuilders/selfIdentity.ts": {
"mtimeMs": 1781156179655.8901,
"size": 2663,
"lines": 26,
"role": "[ASTRA 자기 지식 + 1인칭 정체성] 블록 — Astra/Agent 양쪽 모드 system prompt 가 공유. 왜 필요한가 (BUG: 자기 오보고): - 이 블록이 없으면 \"너는 어떻게 성장해?\" 같은 메타 질문에 모델이 학습 데이터의 일반 LLM 보일러플레이트(\"나는 frozen 모델이라 학습하지 않는다\")로 답한다. 실제 ASTRA 는 레슨·장",
"imports": []
},
"src/lib/contextBuilders/systemPromptShaping.ts": {
"mtimeMs": 1779764602644.5593,
"size": 3200,
@@ -3839,8 +3848,22 @@
"role": "Bug: 이 이메일을 봤을때 지금 어떠한 상태이고 우리가 취해야하는 행동은 뭐가 있을까? Hi Jason, Nice to e-meet you and no...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0019-너가-작성한-회의록에-대한-나의-평가는-아래와-같아-평가부터-하면-생성-품질은-생각보다-괜찮은-편-70-80.md": {
"mtimeMs": 1781156164255.9114,
"size": 2529,
"lines": 16,
"role": "Bug: 너가 작성한 회의록에 대한 나의 평가는 아래와 같아. 평가부터 하면, 생성 품질은 생각보다 괜찮은 편(70~80점 수준) 입니다. 특히 ...",
"imports": []
},
"docs/records/ConnectAI/bugs/BUG-0020-이번-회의록을-참고해서-이전-회의록과-비교했을때-많은-부분이-개선된-것이-확인이-되었어-그렇지만-아래와-같이.md": {
"mtimeMs": 1781156389283.776,
"size": 2625,
"lines": 16,
"role": "Bug: 이번 회의록을 참고해서 이전 회의록과 비교했을때 많은 부분이 개선된 것이 확인이 되었어. 그렇지만 아래와 같이 지금 만든 회의록에 대한 피드백을...",
"imports": []
},
"docs/records/ConnectAI/chronicle.config.json": {
"mtimeMs": 1781155802019.6516,
"mtimeMs": 1781156389303.169,
"size": 371,
"lines": 11,
"role": "JSON configuration",
@@ -4112,6 +4135,13 @@
"role": "ADR: 아닐텐데, astra 너 자신은 자아 성찰적 학습 기능은 실제로 존재하고 작동 중인데, ASTRA가 \"자기 자신의 구조\"를 몰라서 일반 LLM ...",
"imports": []
},
"docs/records/ConnectAI/decisions/ADR-0039-너가-astra야-왜-남처럼-이야기-하지.md": {
"mtimeMs": 1781155861160.9226,
"size": 1458,
"lines": 19,
"role": "ADR: 너가 ASTRA야 왜 남처럼 이야기 하지?",
"imports": []
},
"docs/records/ConnectAI/development/2026-05-02_answer-format-readability-tuning.md": {
"mtimeMs": 1778028987330.4185,
"size": 1564,
@@ -4470,9 +4500,9 @@
"imports": []
},
"docs/records/ConnectAI/timeline.md": {
"mtimeMs": 1781155802007.9062,
"size": 17627,
"lines": 278,
"mtimeMs": 1781156389286.0684,
"size": 18155,
"lines": 287,
"role": "Project Timeline",
"imports": []
},