Skip to content

Latest commit

ย 

History

History
70 lines (50 loc) ยท 3.17 KB

File metadata and controls

70 lines (50 loc) ยท 3.17 KB

AGENTS.md

์ฝ”๋”ฉ ์—์ด์ „ํŠธ(Codex, Cursor ๋“ฑ)๊ฐ€ ์ด ๋ ˆํฌ์—์„œ ์ž‘์—…ํ•  ๋•Œ ์ฐธ๊ณ ํ•  ์ปจํ…์ŠคํŠธ. Claude Code์šฉ ๋™์ผ ๋‚ด์šฉ์€ CLAUDE.md์— ๋‘”๋‹ค.

ํ”„๋กœ์ ํŠธ ํ•œ ์ค„

์ธํ„ด ์‹œ์ ˆ ๋งŒ๋“  VectorRAG ๊ธฐ๋ฐ˜ doc-summary-agent๋ฅผ SEOCHO Layer A/B/C ๊ตฌ์กฐ์˜ GraphRAG๋กœ ์žฌ๊ตฌ์„ฑํ•œ ๋ฉ˜ํ† ๋ง ํ”„๋กœ์ ํŠธ.

์šฐ์„ ์ˆœ์œ„

  1. ์‹œํ–‰์ฐฉ์˜ค์˜ ํ”์ ์„ ๋‚จ๊ธด๋‹ค. ์ฝ”๋“œ ์ฃผ์„์— "์™œ ์ด๋ ‡๊ฒŒ ํ–ˆ๋Š”์ง€" ๊ธฐ๋กํ•œ๋‹ค. ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ commit/์ฃผ์„์— ๋ฐ•๋Š”๋‹ค.
  2. ์žฌํ™œ์šฉ vs ์‹ ๊ทœ๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•œ๋‹ค. ๊ธฐ์กด ๋ ˆํฌ์—์„œ ํฌํŒ…ํ•œ ์ฝ”๋“œ๋Š” ์ถœ์ฒ˜ ์ฃผ์„์„ ๋‹จ๋‹ค. ์‹ ๊ทœ ์„ค๊ณ„๋Š” ADR๋กœ ๊ธฐ๋กํ•œ๋‹ค.
  3. Layer ์ฑ…์ž„์„ ์„ž์ง€ ์•Š๋Š”๋‹ค. Layer A/B/C๋Š” ๊ฒ€์ƒ‰ ์ „๋žต์ด ๋‹ค๋ฅด๋‹ค. ํ•œ ํ•จ์ˆ˜์— ๋‘ Layer ๋กœ์ง์ด ์„ž์ด๋ฉด ๋ถ„๋ฆฌํ•œ๋‹ค.
  4. ํ‰๊ฐ€ ์…‹์€ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. eval/dataset/qa_pairs.json (40๊ฐœ)์€ Before/After ๋น„๊ต์˜ ๊ธฐ์ค€์„ ์ด๋‹ค. ์ถ”๊ฐ€๋Š” ๊ฐ€๋Šฅํ•˜๋˜ ๊ธฐ์กด ํ•ญ๋ชฉ์€ ์ˆ˜์ • ๊ธˆ์ง€.

๋””๋ ‰ํ† ๋ฆฌ ์ฑ…์ž„

๋””๋ ‰ํ† ๋ฆฌ ์ฑ…์ž„ ์ถœ์ฒ˜
ingestion/ ๋ฌธ์„œ ํŒŒ์‹ฑ + ์ „์ฒ˜๋ฆฌ + ์ฒญํ‚น ๊ธฐ์กด doc-summary-agent์˜ doc_parser/ + chunker/ ํฌํŒ…
kg/ Entity ์ถ”์ถœ + Linking + Neo4j ์ ์žฌ ์‹ ๊ทœ
retrieval/ Layer A/B/C ๊ฐ ๊ฒ€์ƒ‰๊ธฐ ์‹ ๊ทœ
agent/ Routing Agent + Debate Pool ์‹ ๊ทœ
observability/ Opik ํŠธ๋ ˆ์ด์‹ฑ + Span ์ •์˜ ์‹ ๊ทœ
eval/ ํ‰๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ ๊ธฐ์กด eval/ ๊ทธ๋Œ€๋กœ ์žฌ์‚ฌ์šฉ
ui/ Chainlit UI ๊ธฐ์กด ui/ ํฌํŒ…

Layer ๋ถ„๋ฆฌ ๊ทœ์น™

Layer ๋…ธ๋“œ ๊ฒ€์ƒ‰ ๋„๊ตฌ ์ ํ•ฉํ•œ ์งˆ๋ฌธ
A: Document Structure Document, Section, Chunk, Table Text-to-Cypher "X ๋ณด๊ณ ์„œ์˜ Y ์„น์…˜"
B: Entity Interaction Entity (Company, Metric, Risk, Outlook) Local Retriever + Subgraph "A์™€ B์˜ ๊ด€๊ณ„"
C: Community/Topic Community, Topic Community Summary "์ „์ฒด ํ๋ฆ„"

Layer ๊ฐ„ cross-cutting ๋กœ์ง์€ agent/router.py์—๋งŒ ๋‘”๋‹ค. retrieval ๋ชจ๋“ˆ์€ ์ž๊ธฐ Layer๋งŒ ์•ˆ๋‹ค.

์ฝ”๋“œ ์Šคํƒ€์ผ

  • Python 3.11+, type hints ํ•„์ˆ˜.
  • async I/O๋Š” asyncio.to_thread๋กœ ๋ธ”๋กœํ‚น ํ˜ธ์ถœ ๊ฒฉ๋ฆฌ (๊ธฐ์กด ๋ ˆํฌ์˜ reranker cold start ํŒจํ„ด ์ฐธ๊ณ ).
  • LLM ํ˜ธ์ถœ์€ tenacity retry๋กœ ๊ฐ์‹ผ๋‹ค.
  • Neo4j ์ฟผ๋ฆฌ๋Š” read-only ์•ˆ์ „ ์žฅ์น˜ + bounded result (LIMIT) ํ•„์ˆ˜.

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€

ํƒœ๊ทธ(์Šค์ฝ”ํ”„): #์ด์Šˆ๋ฒˆํ˜ธ ํ•œ ์ค„ ์„ค๋ช…

[ํ•„์š” ์‹œ ๋ณธ๋ฌธ โ€” ์™œ ์ด๋ ‡๊ฒŒ ํ–ˆ๋Š”์ง€]

ํƒœ๊ทธ: feat, fix, perf, refactor, revert, docs, test, chore.

์ž‘์—… ์‹œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๊ด€๋ จ ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ commit messageยท์ฃผ์„์— ๋ฐ•์•˜๋Š”๊ฐ€?
  • ๊ธฐ์กด ๋ ˆํฌ์—์„œ ํฌํŒ…ํ•œ ์ฝ”๋“œ๋ผ๋ฉด ์ถœ์ฒ˜ ์ฃผ์„์„ ๋‹ฌ์•˜๋Š”๊ฐ€?
  • ์ƒˆ ์„ค๊ณ„ ๊ฒฐ์ •์ด๋ผ๋ฉด docs/adr/์— ์งง๊ฒŒ๋ผ๋„ ๊ธฐ๋กํ–ˆ๋Š”๊ฐ€?
  • Layer ๊ฒฝ๊ณ„๋ฅผ ์นจ๋ฒ”ํ•˜์ง€ ์•Š์•˜๋Š”๊ฐ€?
  • ํ‰๊ฐ€ ์…‹ ๋™์ผ์„ฑ์„ ์œ ์ง€ํ–ˆ๋Š”๊ฐ€?
  • Opik @track ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์ ์ ˆํ•œ ํ•จ์ˆ˜์— ๋ถ™์˜€๋Š”๊ฐ€? (W5 ์ดํ›„)

์ฐธ๊ณ  ์ž๋ฃŒ

  • ๊ธฐ์กด ๋ ˆํฌ: https://github.com/TaskerJang/doc-summary-agent
  • ๋ฉ˜ํ† ๋ง ์ปค๋ฆฌํ˜๋Ÿผ: ์‚ฌ์šฉ์ž ๋…ธํŠธ ์ฐธ์กฐ
  • ์ฑ…: Knowledge Graphs and LLMs in Action (Negro et al., Manning 2025)
  • ์ฑ…: Graph Data Science with Python and Neo4j (Eastridge 2024)