Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 17 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ interface, not the identity** — Slack/Web are adapters on the same core.

---

## The four pillars
## Core capabilities

| Pillar | What it is |
|---|---|
Expand All @@ -40,13 +40,12 @@ interface, not the identity** — Slack/Web are adapters on the same core.
| **③ Hermes memory** | Conversations, facts, and preferences persist instead of resetting each session. |
| **④ Multi-interface** | Phase 1 Discord today; Slack/Web are future adapters. No platform lock-in. |

## Extensibility — outlets and appliances (콘센트/가전)
## Extensibility — plug-in extension points

V1 ships the **simplest single implementation** of each extension point, but the
**abstraction (port) is already in place**, so v1.5/v2 add a new implementation
*without touching existing code*. Like a wall outlet: the V1 socket has one LED
bulb plugged in, but because the socket is standard, you later plug in a fan or a
smart light without rewiring the wall.
V1 ships the **simplest single implementation** of each extension point, but
the **abstraction (port) is already in place**, so v1.5/v2 plug in a new
implementation without touching existing code — like a standard wall outlet
where you swap the appliance, not the wiring.

Four ★ extension patterns sit behind `core/ports/`:

Expand Down Expand Up @@ -106,11 +105,13 @@ The bot exits loudly if `DISCORD_BOT_TOKEN` is unset. Full setup and hosting:
## What V1 does / does NOT do yet (honesty section)

**Does:**
- 3-scope semantic federation (guild / channel / member) with most-specific-wins
resolution; `term_custom` registers definitions per scope (KV-backed).
- 3-scope semantic federation (org / team / user) — 동일 용어에 여러 레이어 정의가
존재하면 현재 채널 정의를 ★ 로 표시하고 전체 주입; LLM이 컨텍스트로 판단.
`term_custom` registers definitions per scope (KV-backed);
`kind`(metric/table/rule/dimension) · `applies_to` · `tags` 필드 지원.
- Safety pipeline with the V1 layers (whitelist + timeout), gating every query.
- Agent loop with eight tools: `run_sql`, `explore_schema`, `enrich_schema`,
`term_custom`, `org_setup`, `ingest_doc`, `remember`, `ask_user`.
- Agent loop with nine tools: `run_sql`, `explore_schema`, `enrich_schema`,
`term_custom`, `org_setup`, `ingest_doc`, `confirm_ingest`, `remember`, `ask_user`.
- Memory service (in-memory store + inject-all recall + manual `/remember`).
- Discord frontend (bot, commands, session router, render).
- Encrypted-at-rest secrets (Fernet) and SQLite-backed persistence.
Expand All @@ -120,8 +121,8 @@ The bot exits loudly if `DISCORD_BOT_TOKEN` is unset. Full setup and hosting:
canned `orders`/`users` schema and sample rows; real psycopg execution is v1.5.
- **Reason without a key.** Without `OPENAI_API_KEY`, the `FakeLLM` returns
deterministic canned tool cycles — useful for wiring tests, not for answers.
- DB metadata auto-enrichment, AST-precise SQL validation, function blocklists,
cost gating, `/semantic diff` / `/semantic promote`, keyword/vector recall,
- AST-precise SQL validation, function blocklists, cost gating,
`/semantic diff` / `/semantic promote`, keyword/vector recall,
automatic fact extraction, URL/Notion ingestion — all scoped to v1.5+.
- Persist across restarts by default: the V1 `SqliteStore` defaults to in-memory;
point it at a file for durability.
Expand All @@ -130,6 +131,8 @@ The bot exits loudly if `DISCORD_BOT_TOKEN` is unset. Full setup and hosting:

## Roadmap at a glance

> **Current status: V1 complete** — `enrich_schema` and OKF bundle export are V1.5 features already shipped; next target is AST validation, SQLite file-mode default, and keyword recall.

| Area | V1 | V1.5 | V2 | V2.5 |
|---|---|---|---|---|
| **Safety** | whitelist + timeout | + AST validation, function blocklist, auto LIMIT, **metadata enrichment**, rate limit | + cost gate (EXPLAIN), per-engine pipelines | — |
Expand Down Expand Up @@ -182,7 +185,7 @@ the [MIT License](https://opensource.org/licenses/MIT). 커뮤니티: [Discord](
| **AI Engineer** | 김경서 | ![Python](https://img.shields.io/badge/Python-Expert-3776AB) | LLM, FinNLP, FDS, RAG |
| **Data Engineer** | 홍지영 | ![Python](https://img.shields.io/badge/Python-Expert-3776AB) | LLM, Data Engineering |
| **Data Operator** | 이화림 | ![Python](https://img.shields.io/badge/Python-Expert-3776AB) | LLM, Data Engineering |
| **AI Engineer** | 남경혜 | ![Python](https://img.shields.io/badge/Python-Expert-3776AB) | LLM, RAG, Multi-Agent |
| **AI Engineer** | 조태민 | ![Python](https://img.shields.io/badge/Python-Expert-3776AB) | LLM, RAG, Multi-Agent |
| **AI Engineer** | 심세원 | ![Python](https://img.shields.io/badge/Python-Expert-3776AB) | LLM, RAG, Multi-Agent |
| **Business Analyst** | 서희진 | ![Python](https://img.shields.io/badge/Python-Intermediate-FF6C37) | LLM, Data Analysis |

Expand Down
Loading