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:
@@ -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
|
||||
|
||||
@@ -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": []
|
||||
},
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "직답 결과 — single-pass mock 응답입니다.",
|
||||
"createdAt": 1781155756607,
|
||||
"createdAt": 1781156441449,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "---\nid: wiki_on\ndate: 2026-06-11T05:29:16.608Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## 📌 Brief Summary\n직답 결과 — single-pass mock 응답입니다.\n\n직답 결과 — single-pass mock 응답입니다.\n---\n## 🛡️ Reliability & Audit Summary\n> [!NOTE]\n> 이 문서는 ConnectAI의 **Intelligent Resilience** 엔진에 의해 검증 및 정제되었습니다.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `0/100` | ✅ Low |\n| **Fallbacks Used** | `0` | ✅ None |\n| **Auto Retries** | `0` | ✅ Stable |\n| **Deduplication** | `0` | Standard |\n| **Processing Time** | `0.0s` | ✅ Fast |\n\n### 🔍 Decision Audit Trail\n- **[DIRECT]** 답변 작성 중... (단일 호출 fast-path) (24ms)\n",
|
||||
"createdAt": 1781155756609,
|
||||
"result": "---\nid: wiki_on\ndate: 2026-06-11T05:40:41.450Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## 📌 Brief Summary\n직답 결과 — single-pass mock 응답입니다.\n\n직답 결과 — single-pass mock 응답입니다.\n---\n## 🛡️ Reliability & Audit Summary\n> [!NOTE]\n> 이 문서는 ConnectAI의 **Intelligent Resilience** 엔진에 의해 검증 및 정제되었습니다.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `0/100` | ✅ Low |\n| **Fallbacks Used** | `0` | ✅ None |\n| **Auto Retries** | `0` | ✅ Stable |\n| **Deduplication** | `0` | Standard |\n| **Processing Time** | `0.0s` | ✅ Fast |\n\n### 🔍 Decision Audit Trail\n- **[DIRECT]** 답변 작성 중... (단일 호출 fast-path) (24ms)\n",
|
||||
"createdAt": 1781156441450,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"missionId": "wiki_on",
|
||||
"status": "completed",
|
||||
"startTime": "2026-06-11T05:29:16.582Z",
|
||||
"startTime": "2026-06-11T05:40:41.424Z",
|
||||
"totalElapsedMs": 27,
|
||||
"results": {
|
||||
"direct": "직답 결과 — single-pass mock 응답입니다."
|
||||
@@ -14,14 +14,14 @@
|
||||
"to": "direct",
|
||||
"durationMs": 24,
|
||||
"message": "답변 작성 중... (단일 호출 fast-path)",
|
||||
"ts": "2026-06-11T05:29:16.606Z"
|
||||
"ts": "2026-06-11T05:40:41.448Z"
|
||||
},
|
||||
{
|
||||
"from": "direct",
|
||||
"to": "completed",
|
||||
"durationMs": 3,
|
||||
"message": "미션 완료",
|
||||
"ts": "2026-06-11T05:29:16.609Z"
|
||||
"ts": "2026-06-11T05:40:41.451Z"
|
||||
}
|
||||
],
|
||||
"resilienceMetrics": {
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "Final report with inconsistencies. This should be long enough to pass validation.",
|
||||
"createdAt": 1781155763566,
|
||||
"createdAt": 1781156448307,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "Final report with inconsistencies. This should be long enough to pass validation.",
|
||||
"createdAt": 1781155763565,
|
||||
"createdAt": 1781156448306,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "[{\"heading\":\"본문\",\"scope\":\"전체 답변\"}]",
|
||||
"createdAt": 1781155763561,
|
||||
"createdAt": 1781156448303,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"result": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.",
|
||||
"createdAt": 1781155763563,
|
||||
"createdAt": 1781156448304,
|
||||
"modelVersion": "unknown"
|
||||
}
|
||||
+11
-11
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"missionId": "stress_conflict_1781155763541",
|
||||
"missionId": "stress_conflict_1781156448281",
|
||||
"status": "completed",
|
||||
"startTime": "2026-06-11T05:29:23.541Z",
|
||||
"totalElapsedMs": 26,
|
||||
"startTime": "2026-06-11T05:40:48.281Z",
|
||||
"totalElapsedMs": 27,
|
||||
"results": {
|
||||
"outline": "[{\"heading\":\"본문\",\"scope\":\"전체 답변\"}]",
|
||||
"section_0": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.",
|
||||
@@ -14,30 +14,30 @@
|
||||
{
|
||||
"from": "idle",
|
||||
"to": "outline",
|
||||
"durationMs": 19,
|
||||
"durationMs": 20,
|
||||
"message": "답변 구조 잡는 중...",
|
||||
"ts": "2026-06-11T05:29:23.560Z"
|
||||
"ts": "2026-06-11T05:40:48.301Z"
|
||||
},
|
||||
{
|
||||
"from": "outline",
|
||||
"to": "section",
|
||||
"durationMs": 2,
|
||||
"durationMs": 3,
|
||||
"message": "본문 작성 중...",
|
||||
"ts": "2026-06-11T05:29:23.562Z"
|
||||
"ts": "2026-06-11T05:40:48.304Z"
|
||||
},
|
||||
{
|
||||
"from": "section",
|
||||
"to": "polish",
|
||||
"durationMs": 2,
|
||||
"durationMs": 1,
|
||||
"message": "최종 다듬기 중...",
|
||||
"ts": "2026-06-11T05:29:23.564Z"
|
||||
"ts": "2026-06-11T05:40:48.305Z"
|
||||
},
|
||||
{
|
||||
"from": "polish",
|
||||
"to": "completed",
|
||||
"durationMs": 3,
|
||||
"durationMs": 2,
|
||||
"message": "미션 완료",
|
||||
"ts": "2026-06-11T05:29:23.567Z"
|
||||
"ts": "2026-06-11T05:40:48.307Z"
|
||||
}
|
||||
],
|
||||
"resilienceMetrics": {
|
||||
Reference in New Issue
Block a user