v0.25.0.ko.md
docs/i18n/release-notes/v0.25.0.ko.md
Tesserae v0.25.0 — Descent: 어떤 그래프든 컨텍스트 윈도우 하나 안에서 탐색
<!-- translations:start -->
English · 中文 · 日本語 · Русский · Español · Français · Deutsch
<!-- translations:end -->
Released 2026-07-24 · PyPI · GitHub release · pip install --upgrade tesserae==0.25.0
컴파일된 프로젝트 그래프는 어떤 컨텍스트 윈도우보다도 커집니다 — 레퍼런스 프로젝트는 이제 직렬화하면 250만 토큰, 200k 윈도우의 12배에 달하고, 계속 커지는 중입니다. 평면 검색으로 노드 하나를 찾을 수는 있어도, 에이전트가 그래프를 *조망*할 방법은 없었습니다: 크기가 제한된 개요라고는 가장 거친 47개 커뮤니티 요약 레이어뿐이었고, 그 아래는 전부 보이지 않았습니다. 이번 릴리스는 Descent를 선보입니다: 계층 구조를 쿼리 시점의 계약으로 만들어, 에이전트가 그래프 전체 개요에서 단일 노드까지 몇 번의 제한된 호출만으로 — 그래프 크기와 무관하게 — 내려갈 수 있습니다.
1 · graph_map — 모든 그래프를 위한 단일 하강 도구
새 MCP 도구 하나, graph_map(scope, budget_chars, cursor)가 모든 지식 소스를 같은 형태로 통일합니다: 예산에 맞춰 채운 카드로 응답하는 scope 트리입니다. scope 없이 호출하면 루트 맵을 반환합니다 — 그래프 통계, 허브 경고, 그리고 가장 거친 수준의 커뮤니티 카드. 커뮤니티 id를 넘기면 덴드로그램을 한 레벨 내려가고, 가장 세밀한 레벨은 멤버 노드를 나열합니다. agent:<key>는 에이전트의 증류된 L1 인덱스를, org:root는 에이전트 조직 트리를, <alias>::는 형제 프로젝트의 맵을 렌더링합니다 — 같은 카드, 같은 프로토콜, 특수 케이스 없음. 모든 카드에는 parent_scope가 실려 있어 위로 올라가는 것도 그저 또 한 번의 graph_map 호출이며, 예산을 넘는 레벨은 조용히 잘리는 대신 결정론적으로 페이지네이션됩니다 (+N more, cursor=K).
2 · 계층 구조는 원래부터 있었습니다 — 이제는 보존됩니다
Louvain은 원래부터 컴파일 때마다 전체 덴드로그램을 계산합니다. 지금까지는 한 레벨만 쓰고 나머지를 버렸을 뿐입니다. 이제 컴파일은 그 전체를 .tesserae/hierarchy.json 사이드카로 보존합니다 — 레퍼런스 그래프 기준 4개 레벨 — 그래프 내용에 대한 순수하고 결정론적인 함수로서: 고정 시드, 정규 순서, LLM 호출 0회, 5천 노드든 100만 노드든 동일합니다. graph.json 바이트는 손대지 않고, 전체-대-증분 패리티 검사는 이제 모든 레벨에서 동일한 덴드로그램을 단언하며, 오래된 커뮤니티 요약 캐시는 전 레벨의 생존 여부와 대조해 정리됩니다.
3 · CTX-01 — 어떤 도구 응답도 절대 예산을 초과하지 않습니다
단일 fit_to_budget 헬퍼가 이제 모든 MCP 응답을 조입니다: 항목별 상한, 결정론적 채택, 이어보기 한 줄. 세션을 범람시킬 수 있던 도구들이 수리됐습니다 — query_decisions와 find_session_findings에 limit 파라미터가 생겼고, list_communities는 수천 개의 원시 id 대신 멤버 수와 핸들을 반환하며, search_nodes/node_context/timeline/search_facts는 항목 단위로 잘라냅니다. 세션 비용은 이제 depth × budget — 그래프 크기와 무관합니다.
4 · 요약은 실제로 들여다보는 곳에 생깁니다
세밀한 레벨의 커뮤니티는 제목을 지연 방식으로 얻습니다: 요약되지 않은 scope로 처음 하강할 때 LLM 호출을 한 번 수행하고 멤버십 다이제스트로 캐시합니다. 클라이언트가 없으면 결정론적인 구조 기반 제목으로 대체합니다 — 결코 블로킹하지 않고, 예외도 던지지 않습니다. 요약의 요약 프롬프트는 인용 검증을 거치므로 (자식 커뮤니티를 하나도 인용하지 않는 산문은 거부됩니다) 상위 레벨이 자신이 요약하는 대상에서 표류할 수 없습니다. 데몬의 수면 사이클에는 세 번째 작업 SUMMARIZE가 추가되어, 에이전트가 실제로 방문하는 커뮤니티의 캐시를 미리 데워 둡니다 — 틱당 제한된 LLM 예산을 코퍼스 크기가 아니라 수요에 따라 씁니다.
5 · 계층적 컨텍스트 컴파일
compile_context가 scope=<community>를 배웁니다 — 검색을 커뮤니티의 유도 부분그래프로 제한해 허브 폭발을 구조적으로 차단합니다 — 그리고 strategy="hierarchical"도 배웁니다: 먼저 요약 레이어를 매칭하고, 매칭된 가지를 따라 하강한 뒤, 그 안에서 PPR을 실행합니다. PPR 프로젝션에는 플래그로 켜는 차수 상한과 출처 엣지 가중치 하향이 추가되어 메가 허브의 이빨을 뽑습니다. 기본 경로는 바이트 동일성을 유지하며, 두 기능 모두 A/B 검증 전까지는 옵트인입니다.
업그레이드
pip install --upgrade tesserae==0.25.0
한 번 재컴파일해 계층 사이드카를 기록한 다음, 에이전트에게 graph_map() 호출을 요청해 보세요 — 그래프 전체를, 제한된 페이지 하나씩.