You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+34Lines changed: 34 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [0.9.13] - 2026-04-15
11
+
12
+
### Added
13
+
14
+
-**P8 Tool Zero 응답 금지** (`ai/context/intent.py::classifyCategory`): 질문을 META / FINANCE / OUT_OF_SCOPE 3범주로 분류. FINANCE 범주는 tool 최소 1회 호출 필수 (시스템 프롬프트 블록 + `tool_choice="any"` 첫 라운드 API 강제 + 런타임 가드 3중 방어). META 는 tool 불필요 (CAPABILITIES 로 즉답), OUT_OF_SCOPE 는 "dartlab 전문 영역 아님" 명시 + 금융 질문 예시 제시 후 종료. dartlab 엔진 경유 없이 일반 ChatGPT 답변 생산 불가.
15
+
-**매크로 톱다운 intent 분기** (`ai/runtime/core.py::_mandatoryForOutlook`): "최근 경제 어때" 같은 시장 레벨 질문에서 `macro() + gather(axis='news')` 조합 강제. 수치 + 최근 이슈 교차 인과 해석. 이전 `act_all` 로 잘못 분류되어 일반론 답변되던 문제 해결.
16
+
-**`pastInsight(stockCode)` / `sectorInsights(sector)` 공개 API**: `dartlab.__all__` 에 노출 → AI tool 자동 등록 경로 (`_autoDiscover`) 진입. 사용자도 `dartlab.pastInsight("005930")` 직접 호출 가능.
17
+
-**`ai/context/intent.py::Category` enum**: META / FINANCE / OUT_OF_SCOPE 상위 범주. 기존 8 intent (act1~6 / compare / concept) 와 병렬.
18
+
-**provider `tool_choice` 파라미터**: `BaseProvider.complete_with_tools/stream_with_tools` 에 `tool_choice: str | None` 추가. "any"/"none"/"auto" 매핑. FINANCE 첫 라운드에만 "any" 강제 후 auto 로 환원.
19
+
20
+
### Changed
21
+
22
+
-**`ai/runtime/core.py::analyze` → `runAsk`** / `_analyze_inner` → `_runAskInner`. 구 "떠먹이기 시대" 이름 제거. `dartlab.ask()` 진입점 단일 (P1) 을 내부 이름으로도 선언.
23
+
-**`analysis/financial/insight/pipeline.py::analyze` → `analyzeFinancial`**: AI 엔진 `runAsk` 와 이름 충돌 해소. 인사이트 엔진 코어 함수 의미 명확화. `analyze` 는 호환 alias 로 1 릴리즈 유지.
24
+
-**AI tool 자동 등록 우선순위**: module-level > Company-bound (이전 반대). 같은 이름 존재 시 `dartlab.search` (시장 전체) 가 `Company.search` (이 회사 공시) 보다 AI tool 로 유용. Company-bound 는 module 에 없는 것만 등록.
25
+
-**`_splitKwargs` 자동 시그니처 추출**: 기존 `_MODULE_CORE` 수동 whitelist (scan/macro/search/searchName) 제거. `inspect.signature(fn)` 으로 자동 추출 → pastInsight/sectorInsights 포함 모든 module-level tool 일관 처리.
26
+
-**`Company.gather` 시그니처 `target: str | None = None` 명시**: 이전 `**kwargs` 에 숨어 tool schema 누락. AI 가 `gather(axis='news', target='한국 경제')` 로 시장 레벨 뉴스 검색 가능해짐.
27
+
-**ops/ai.md P8 섹션 신설**: 3범주 분류 + 3중 방어선 단일 출처.
28
+
29
+
### Removed
30
+
31
+
-**`ai/superfeature/`** 폴더 전체 (480줄, 4파일) — `getSuperMaster` 호출 0건 (내부 순환만). 완전 dead code.
-**`ai/tools/_builtin.py`**: pastInsight/sectorInsights 수동 AITool 생성 파일. `_autoDiscover` 자동 경로로 일원화.
34
+
-**`review/presets.py`**: `reportTypes.py` 로 통합된 deprecated re-export shim, import 0건.
35
+
-**`core/engines_DEV.md`**: dev 문서가 src 안에 있던 것.
36
+
-**`ai/runtime/standalone.py` 에서 `from dartlab.ai.runtime.core import analyze`** 등 낡은 import 15곳 갱신 (CLI, stdio, server/streaming, scripts/audit, scripts/eval).
37
+
38
+
### Fixed
39
+
40
+
-**AI 가 매크로 질문에서 tool 0회 일반론 답변**: v0.9.12 에서 "최근 경제 어때" 질문에 `macro()` 호출 없이 학습 지식으로 답한 사고 — P8 3중 방어선으로 구조적 불가능화. `dartlab.ask("최근 경제")` 재현 테스트: tool 3회 (macro summary + gather news × 2), CLI/M2/기준금리/공포탐욕/uncertainty 실측 수치 기반 답변 확인.
41
+
-**`Company.gather``target` 파라미터 AI schema 누락**: `**kwargs` 에 숨어 AI 가 시장 레벨 뉴스 검색 인자 못 넣음. 시그니처 명시로 해결.
42
+
-**`_builtin.py` 가 `_MODULE_CORE` 경로 밖이라 라이브 호출 시 stockCode 누락**: `_splitKwargs` 자동 시그니처로 근본 해결.
Copy file name to clipboardExpand all lines: docs/changelog.md
+30Lines changed: 30 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
12
12
## [Unreleased]
13
13
14
+
## [0.9.13] - 2026-04-15
15
+
16
+
### Added
17
+
18
+
-**P8 Tool Zero 응답 금지**: 질문을 META / FINANCE / OUT_OF_SCOPE 3범주로 분류. FINANCE 는 tool 최소 1회 필수 (시스템 프롬프트 + `tool_choice="any"` + 런타임 가드 3중 방어). META 는 즉답, OUT_OF_SCOPE 는 "범위 밖" 명시 후 거절. dartlab 엔진 경유 없이 일반 ChatGPT 답변 생산 불가.
19
+
-**매크로 톱다운 intent 분기**: "최근 경제 어때" 같은 시장 레벨 질문에서 `macro() + gather(axis='news')` 조합 강제.
20
+
-**`pastInsight` / `sectorInsights` 공개 API**: `dartlab.__all__` 노출 → AI tool 자동 등록 + 사용자 직접 호출 가능.
21
+
-**provider `tool_choice` 파라미터**: FINANCE 첫 라운드에 "any" 강제.
22
+
23
+
### Changed
24
+
25
+
-**`analyze` → `runAsk`**, **`insight.pipeline.analyze` → `analyzeFinancial`**: 이름 실체 일치.
26
+
-**AI tool 자동 등록 우선순위**: module > Company (같은 이름 시 module 이 시장 전체 의미).
27
+
-**`_splitKwargs` 자동 시그니처**: 기존 수동 `_MODULE_CORE` whitelist 제거.
28
+
-**`Company.gather` 시그니처에 `target` 명시**: AI 가 매크로 뉴스 검색어 전달 가능.
29
+
30
+
### Removed
31
+
32
+
-`ai/superfeature/` 전체 (480줄 dead code)
33
+
-`ai/runtime/standalone.py::analyze_full` (사용처 0)
34
+
-`ai/tools/_builtin.py` (수동 AITool 생성 → 자동등록으로 대체)
35
+
-`review/presets.py` (deprecated re-export shim)
36
+
-`core/engines_DEV.md` (dev 문서가 src 안에 있던 것)
37
+
38
+
### Fixed
39
+
40
+
- AI 가 매크로 질문에서 tool 0회 일반론 답변하던 사고 (P8 3중 방어선으로 구조적 불가).
0 commit comments