이 프로젝트의 모든 주요 변경 사항은 여기에 문서화되어 있습니다. 형식은 Keep a Changelog를 따릅니다. 버전은 Roadmap 마일스톤에 해당합니다.Documentation Index
Fetch the complete documentation index at: https://docs.fim.ai/llms.txt
Use this file to discover all available pages before exploring further.
[미출시]
추가됨
- 영어가 아닌 문서에서 이제 전체 API 참조(OpenAPI 엔드포인트) 및 채널 구성 페이지를 표시합니다. 이전에는 영어 사이트만 이러한 섹션을 렌더링했으며
zh/ja/ko/de/fr네비게이션에는Endpoints그룹과Configuration > Channels하위 그룹이 없어서 해당 언어의 사용자들이 자동 생성된 API 플레이그라운드나 Feishu 채널 설정 가이드에 접근할 수 없었습니다.docs/docs.json을 단일 영어 소스(docs/nav.template.json+scripts/docs-nav-glossary.json)로 마이그레이션하여 모든 6개 언어를 결정적으로 재생성하는 과정에서 부수적으로 수정되었으며, 새 문서 페이지를 추가할 때 더 이상 언어별 수동 동기화가 필요하지 않습니다. - 관리자 사용자: 사용자별 무제한 할당량 + 등록됨 열. 할당량 필드를 비워두면 이제 전역 제한을 상속받고,
0으로 설정하면 사용자에게 무제한 사용을 부여합니다. 이전에는 두 상태가 동일하게 처리되어 개별 사용자에게 무제한 액세스를 부여하려면 데이터베이스를 직접 편집해야 했습니다. 사용자 테이블에는 온보딩 감사를 위한 등록됨 열도 추가됩니다.
수정됨
- 에이전트 설정: 바인딩된 리소스가 진입 시 “(已删除)“로 더 이상 깜빡이지 않습니다. KB / 커넥터 / MCP 서버 선택기가 동기적으로
selected − available에서 고아 배지를 파생했기 때문에, 인벤토리 목록 가져오기가 에이전트 가져오기보다 느린 에이전트는 연결된 모든 리소스를 삭제됨으로 표시한 후 올바른 상태로 다시 스냅되었습니다 — 여러 커넥터가 있는 조직 에이전트에서 가장 눈에 띕니다. 고아 배지는 이제 각 인벤토리 가져오기가 완료될 때까지 기다린 후 렌더링합니다. - 토스트가 이제 라이트/다크 테마를 따릅니다. 루트 토스터가 사용자 선호도와 관계없이 다크로 하드코딩되어 있었습니다.
- 에이전트별 사용량 분석이 더 이상 “Direct Chat” 행을 중복하지 않습니다. 삭제된 에이전트에 연결된 대화는 고아
agent_id당 하나의 행을 생성했으며, 이제 단일 행으로 축소됩니다. - 자체 호스팅 배포가 더 이상
container name already in use로 간헐적으로 실패하지 않습니다. 새로운 멱등성./deploy.sh래퍼가docker compose up전에 해시 접두사가 있는 좀비 컨테이너와 DooD 샌드박스 자식을 정리하므로, 반복 배포가 샌드박스 서비스 이름에서 충돌하지 않습니다. - 푸시 후 더 이상 중복된
chore(i18n): sync translations커밋이 없습니다. 사전 커밋 번역 훅이.translation-cache.json을 디스크에 업데이트했지만 스테이징하는 것을 잊었으므로, CI는 오래된 캐시 항목을 보고 동일한 섹션을 다시 번역하며 LLM 비결정성으로 인해 약간 다른 출력을 자동 커밋했습니다. 훅은 이제 번역된 파일과 함께 캐시를 스테이징합니다 — CI는 차이를 감지하지 못하고 의도대로 조용히 종료됩니다. - 에이전트 채팅이 더 이상 바인딩되지 않은 에이전트 세션에서 확인 필수 도구가 실행될 때 충돌하지 않습니다.
requires_confirmation=true로 표시된 기본 제공 도구를 호출한 순수 모델 대화는 하드 500(또는 UI의 빨간색 “no agent_id” 게이트 오류)을 발생시켰습니다. 에이전트별 승인 라우터가 참조할 구성이 없었기 때문입니다. 게이트는 이제 라우팅할 에이전트가 없을 때 우아하게 물러나고, 채팅 스트림은 더 이상 누락된agent_cfg에서 트립하지 않습니다. - 재시도가 더 이상 기록에 고아 사용자 메시지가 포함되어 있을 때 엄격한 교대 제공자에서 실패하지 않습니다. 턴을 중지하고 재시도하면 대화 기록에 “중지됨” 사용자 메시지가 남습니다. 이 기록을 Claude(교대 사용자/어시스턴트 턴을 적용)에 재생하면 이전에 HTTP 400을 반환하고 이전 메시지를 자동으로 삭제했습니다. 동일한 역할의 연속 메시지는 이제 발송 전에 단일 턴으로 축소되므로, 모든 고아는 다음 호출의 컨텍스트로 전달됩니다 — 중지하고 “아직 끝나지 않았습니다 — 이것으로 계속하세요…”를 추가하고 다시 시도해도 재시도가 작동합니다.
- 연습장 재시도가 더 이상 쿼리를 두 번 표시하지 않습니다. 재시도 흐름이 기록에서 중지된 턴을 동시에 재생하고 비행 중인 턴에 대한 새로운 사용자 버블을 렌더링했습니다. 사전 스트림 창 동안 둘 다 표시되었습니다. 비행 중인 버블은 이제 기록이 이미 동일한 콘텐츠를 렌더링할 때마다 억제됩니다.
- ReAct 에이전트가 더 이상 운영자가 승인 요청을 거부한 후 의역된 도구 호출을 재시도하지 않습니다 — 거부를 인정하고 중지합니다.
- 연습장 “제안된 후속 질문”이 반환되고 이제 에이전트당 선택 사항입니다. 회귀로 인해 제안 생성이 파이어 앤 포겟 백그라운드 작업으로 이동했으므로, 연습장은 답변 아래에 칩 행을 표시하는 SSE 이벤트를 받지 못했습니다. 제안은 이제 새로운 “Follow-up Suggestions” 토글이 켜져 있는 에이전트(기본값 끔, 에이전트의 설정 시트 아래에 있음)에 대해
done과end사이에 인라인으로 스트리밍됩니다. 작업 스타일 에이전트는 조용히 유지되고 추가 빠른 모델 왕복을 건너뜁니다. 명시적으로 계속을 원하는 대화형 에이전트는 칩을 다시 받습니다.
변경 사항
- 번역 권한이 로케일 파일에서 용어집으로 이동: 번역 규칙은 이제
scripts/translation-glossary.md에 있으며, 모든 LLM 번역 호출(JSON, MDX, README)에 로드되는 단일 정보 소스입니다. 사전 커밋 훅은 이제 생성된 로케일 파일의 수동 편집을 무조건 거부합니다(이전의ALLOW_LOCALE_EDIT=1재정의 제거). 산발적인 로케일별 편집이 조용히 변경되고 전체 재번역 시 덮어씌워지기 때문입니다. 번역 오류를 수정하려면 용어집(모든 5개 로케일에 적용되는 영구 규칙)을 편집하고--force로 영향받는 파일을 재생성하세요. 세 개의 시스템 프롬프트에 이전에 포함된 인라인 용어집 규칙이 외부 용어집 파일로 통합되었습니다. - 라이선서 및 준거법 업데이트. FIM One Source Available License는 이제 FIM Labs Pte. Ltd.(싱가포르)에서 부여되며, 준거법은 중국에서 싱가포르로 변경되고, 분쟁은 싱가포르의 SIAC 중재(중재인 1명, 영어)로 해결됩니다. 새로운 최상위
NOTICE파일은 R&D 귀속, 상표 및 제3자 구성 요소 정책을 기록합니다. 허용된 사용 또는 제한 조건에는 변경 사항이 없습니다.
[v0.8.5] - 2026-04-23
추가됨
-
기여자 친화적 i18n 워크플로우: 기여자는 더 이상 영어 소스 파일을 수정하는 PR을 제출하기 위해
LLM_API_KEY를 구성할 필요가 없습니다. 로컬 pre-commit 번역 단계를 건너뛰면(키 없음), 새로운.github/workflows/i18n-sync.yml워크플로우가 PR 병합 후master에서 EN → ZH/JA/KO/DE/FR로 번역하고 자동으로 커밋합니다. pre-commit 훅은 이제 생성된 로케일 파일의 수동 편집을 거부합니다(ALLOW_LOCALE_EDIT=1오버라이드로 정당한 번역 수정 가능). 이는 EN 소스와 번역된 출력 간의 무음 드리프트를 방지합니다. -
i18n CI 폴백 엔드-투-엔드 검증: 스모크 테스트 푸시(EN만, 로컬 번역 훅 건너뜀)로 GitHub Actions 워크플로우가 변경된 소스를 감지하고, 5개 로케일 모두로 번역하며,
[skip ci]로 master에 자동 커밋하여 재귀를 방지함을 확인했습니다. - Exa 통합 문서 페이지: 사이드바의 전용 Integrations 섹션과 함께 전체 Exa 검색 표면(neural / fast / deep-reasoning / instant), 필터링, 콘텐츠 검색, 그리고 뉴스 모니터링, 연구 논문 검색, 심화 추론 에이전트를 위한 3가지 튜닝된 프리셋을 다루는 1급 Exa 페이지입니다. Exa 통합 디렉토리의 파트너 대면 랜딩 페이지로 제공됩니다.
-
신창(信创) 데이터베이스 지원: 데이터베이스 커넥터는 이제 PostgreSQL/MySQL과 함께 KingbaseES(人大金仓), HighGo(瀚高), DM8(达梦)을 나열합니다. KingbaseES와 HighGo는 PG 호환이며 추가 종속성 없이
asyncpg를 재사용합니다. DM8은 공식dmPython공급업체 휠을 사용합니다. 독립형scripts/test_xinchuang_dbs.py를 통해 운영자는 CLI에서 라이브 연결을 확인할 수 있습니다. -
Feishu 채널 + IM을 통한 확인 게이트: 새로운
Channel리소스 타입(조직 범위, 저장 시 암호화된 자격증명)을 통해 조직은 아웃바운드 메시징을 위해 Feishu 앱을 연결할 수 있습니다.requires_confirmation=True로 표시된 도구는 이제 포털의 확인 대화 상자만 표시하는 대신 구성된 Feishu 그룹에 Approve/Reject 인터랙티브 카드를 전송합니다. 그룹의 모든 권한이 있는 멤버가 Feishu에서 직접 승인 또는 거부할 수 있습니다. Settings → Channels 관리 UI(목록, 생성/편집 with 더티 상태 보호, 복사 가능한 콜백 URL이 있는 세부 정보, 테스트 전송), CRUD API(/api/channels), 그리고 서명 검증 및 URL 챌린지 지원이 있는 Feishu 이벤트 콜백 엔드포인트(/api/channels/{id}/callback)를 다룹니다. v0.9 IM 채널 통합 로드맵 항목의 첫 번째 단계이며, 2026-04-24 로드쇼를 위해 일정보다 앞서 제공됩니다. -
에이전트 훅 시스템(스켈레톤):
src/fim_one/core/hooks/의 새로운PreToolUseHook/PostToolUseHook추상화를 통해 결정론적 로직이 LLM 루프 외부에서 실행될 수 있습니다. FeishuGateHook은 첫 번째 구체적 구현이며, 확인 게이트 흐름에 연결됩니다. 전체 훅 라이프사이클 + 사용자 정의 YAML 훅은 v0.9 범위로 남습니다. -
훅 시스템은 이제 ReAct 및 DAG 런타임에서 라이브입니다:
model_config_json에서hooks.class_hooks를 선언하는 에이전트는 모든 채팅 세션에서 이러한 훅을 인스턴스화하고 등록합니다. 첫 번째 소비자인FeishuGateHook은 에이전트가requires_confirmation=True로 표시된 커넥터 작업이 있는 도구를 호출할 때 자동으로 실행되며, 조직의 Feishu 그룹에 Approve/Reject 카드를 게시하고, 도구를 차단하며, 판정에 따라 재개하거나 중단합니다. 이전에는 훅 추상화가 제자리에 있었지만 웹 레이어의 아무것도 이를 라이브 채팅에 연결하지 않았습니다. -
채널 및 훅 시스템 아키텍처 문서화: 새로운
docs/architecture/hook-system.mdx는 3가지 훅 포인트, 훅이 LLM 루프 외부에서 실행되는 이유, 그리고 FeishuGateHook 엔드-투-엔드를 설명합니다. 기존 아키텍처 페이지(system-overview, organization, react-engine, philosophy)는 이를 상호 링크합니다. README는 이제 메시징 채널을 1급 v0.8 기능으로 나열하며, 애플리케이션 레이어 다이어그램은 Portal/API/iframe과 함께 IM 대상을 포함합니다. -
훅 승인 플레이그라운드: 채널 세부 정보 시트는 이제 “Test Approval Flow” 작업을 가지고 있으며, 이는 민감한 도구 호출을 시뮬레이션하고, 연결된 Feishu 그룹에 실제 확인 카드를 푸시하며, 검토자의 결정을 라이브로 폴링합니다. 기존 미리보기 버튼과 달리, 이는 전체 프로덕션 경로(진정한
ConfirmationRequest행, 실제 Feishu 콜백, 상태 전환)를 실행하므로, 데모 및 사전 롤아웃 리허설은 프로덕션 훅이 사용할 동일한 코드 경로를 사용합니다. - 에이전트별 작업 완료 알림: 에이전트는 이제 장시간 실행되는 ReAct 또는 DAG 작업이 완료될 때 조직의 채널(현재 Feishu)에 요약 카드를 푸시할 수 있습니다. Settings → Agent → Notifications에서 에이전트별로 구성 가능합니다. 일반 아웃바운드 알림 패턴의 첫 번째 소비자입니다.
-
구성 가능한 확인 게이트 — 인라인 또는 채널: 모든 에이전트는 이제 Settings에서 “Approval” 섹션을 가지고 있으며, 3가지 라우팅 모드(Auto / Inline only / Channel only), 승인자 범위 선택기(initiator / agent owner / anyone in the org), “require confirmation for every tool call” 오버라이드, 그리고 명시적 승인 채널 선택기를 가집니다. Auto 모드는 연결된 채널이 존재하면 이를 사용하고 그렇지 않으면 채팅 스트림의 인라인 승인 카드로 우아하게 폴백합니다. 따라서 채널이 없는 에이전트도 무음으로 실패하는 대신 실제 승인 UX를 얻습니다. 새로운
POST /api/confirmations/{id}/respond엔드포인트는 Feishu 웹훅과 단일 결정 기록 경로를 공유하므로, 채팅에서 클릭되든 Feishu 그룹에서 클릭되든 모든 승인은 동일한approver_user_id및decided_at감사 필드를 스탬프합니다.
변경 사항
- Playground 로딩 표시기는 이제 8초 후 의사 전체 너비에서 멈추는 가짜 같은 진행률 표시줄 대신 미묘한 텍스트 shimmer를 사용합니다. 기존의 두 shimmer 구현(
.shiny-text및.text-shimmer)을 테마 인식 프리미티브로 통합했으며, 선택적 warm 프리셋이 포함되어 있습니다. - Connector 카드는 이제 connector에
allow_fallback이 비활성화되어 있을 때 “Private default” 배지(툴팁 포함)를 표시하므로, 소유자가 한눈에 모든 사용자가 자신의 자격 증명을 가져와야 하는 connector를 알 수 있습니다. connector 설정 양식의 Allow-Fallback 토글 아래의 도움말 텍스트도 플래그가 다른 사용자와의 공유만 제한한다는 점을 명확히 하며, 소유자는 항상 자신의 기본 자격 증명을 사용할 수 있습니다.
수정됨
allow_fallback=false이고 기본 자격증명만 있는(사용자별 자격증명 없음) 커넥터 소유자가 만든 커넥터 호출이 더 이상 “Requires authentication” 401 오류를 반환하지 않습니다. 소유자는 이제 폴백 게이트에서 제외됩니다 — 해당 플래그는 다른 사용자가 소유자의 기본 자격증명을 빌릴 수 있는지만 제어합니다. 이전에는 소유자의 에이전트가 자동으로 인증되지 않은 요청을 보내고 있었으며, 같은 문제가 워크플로우connector_action노드에도 영향을 미쳤습니다.- 대화 내보내기가 자동 라우팅된 DAG 대화에 대해 항상 “Standard”를 표시하는 대신 올바른 모드 레이블(“Planner” / “规划”)을 표시합니다.
- 내보내기 타임스탬프가 이제 원시 UTC를 표시하는 대신 사용자의 구성된 시간대를 존중합니다.
- 업로드된 파일 콘텐츠가 더 이상 내보낸 대화로 유출되지 않습니다. 사용자의 메시지 텍스트만 포함됩니다.
- 병렬 도구 호출이 더 이상 제공자가 스트리밍된 모든 도구 호출 델타에 대해
index=0을 재사용할 때 충돌하지 않습니다. 애그리게이터가 이제 id 또는 이름 변경을 통해 경계를 감지하고 후속 델타를 올바른 슬롯으로 다시 매핑합니다. - 설정 → 채널이 현재 사용자의 조직 역할을 반영합니다: 멤버(비관리자/소유자)는 비활성화된 “새 채널” 버튼, 숨겨진 편집/활성화-비활성화/삭제 작업, 읽기 전용 배너, 권한 인식 빈 상태를 봅니다 — “Organization admin access required” 오류로 제출에 실패한 활성화된 CTA 대신.
- 세션 만료 리디렉션이 이제 쿼리 문자열을 보존하므로 사용자는 맨 경로 대신 재인증 후 보고 있던 정확한 탭/필터로 돌아갑니다.
- Feishu 채널 양식이 더 이상 대화 선택기와 상호작용할 때 대화 위에 계층화된 “저장하지 않은 변경 사항 삭제” 프롬프트를 표시하지 않습니다.
- Feishu 채널 설정 힌트가 UI 자체가 이미 중국어인 경우 더 이상 중국어 레이블을 복제하지 않습니다(예: 이전에 “事件与回调 (事件与回调)“로 렌더링됨).
- 스키마 관리자의 “모두 주석 달기”가 더 이상 500 내부 서버 오류를 반환하지 않습니다 — 전체 주석 백엔드 경로에 모든 호출을 차단한 바인딩되지 않은 변수 버그가 있었습니다.
- 데이터베이스 커넥터를 편집하면 이제 세 개의 글머리 기호 마스킹된 텍스트 대신 비밀번호 필드에
********자리 표시자를 표시하므로 필드를 비워두면 저장된 비밀번호가 유지됨이 명확합니다. - 커넥터 작업을 업데이트해도 더 이상 세부 정보 패널이 축소되지 않습니다 — 편집된 작업이 선택된 상태로 유지되므로 사용자는 계속 반복할 수 있습니다.
- AI 커넥터 편집기가 이제 세 가지 모두에 대해 동일한 “completed” 메시지를 표시하는 대신 성공, 부분 실패, 완전 실패를 구분합니다. 실패 이유가 인라인으로 표시되므로 사용자가 실제로 무엇이 잘못되었는지 볼 수 있습니다.
- AI 커넥터 편집기가 더 이상 한 번에 여러 작업을 자동으로 삭제할 수 없습니다. 대량 삭제(>2개 작업)는 이제 사용자의 지시에서 명시적인 파괴적 키워드(“rebuild”, “全部重建”, “wipe” 등)를 요구합니다. 그렇지 않으면 작업이 명확한 오류로 거부되어 requires_confirmation / JMESPath 설정을 실수로 손실되지 않도록 보호합니다.
- 포털 채팅의 확인 카드가 이제 요청이 채널(예: Feishu)로 라우팅되었는지 또는 인라인으로 처리되었는지 표시하며, 누가 승인할 수 있는지에 대한 인간이 읽을 수 있는 힌트(개시자, 에이전트 소유자 또는 조직 멤버)와 함께 표시합니다. 채널 라우팅된 요청은 사용자가 알림이 실제로 전송되었는지 궁금해하지 않도록 인라인 보류 중 카드도 생성합니다.
- Feishu 승인 카드가 이제 첫 번째 결정 후 읽기 전용이 됩니다:
/callback웹훅이 승인/거부 버튼이 제거되고 헤더가 녹색(승인됨) 또는 빨간색(거부됨)으로 칠해진 대체 카드를 반환하여 반복 클릭을 방지합니다. 오래된 Feishu 클라이언트에서 여전히 도착하는 중복 클릭은 “This request was already approved/rejected.” 토스트와 오래된 보기가 따라잡을 수 있도록 결정된 카드의 새 사본을 받습니다. - 채널 행과 세부 정보 시트에서 일반 “메시지 테스트 전송” 작업을 복원했습니다. 승인 플레이그라운드는 전체 훅 왕복을 실행하지만, 알림 전용 채널(승인 훅이 연결되지 않음)은 여전히 빠른 자격증명/연결성 정상 확인이 필요하며, 이는 일반 테스트 전송이 다룹니다.
- 동일한 Feishu 승인 카드에 대한 동시 클릭이 더 이상 둘 다 성공할 수 없습니다.
/callback핸들러가 이제 조건부UPDATE ... WHERE status='pending'을 통해ConfirmationRequest상태를 뒤집고 영향을 받은 행 수를 사용하여 어느 호출자가 “이겼는지” 결정합니다. 이전에는 두 개의 병렬 요청이 모두pending을 읽고 쓰기를 경쟁할 수 있어 잠재적으로 동일한 행에서 승인-거부로 끝날 수 있었습니다. - 보류 중인 승인 요청이 이제 백그라운드 스위퍼를 통해
CHANNEL_CONFIRMATION_TTL_MINUTES(기본값 24시간) 후 자동으로 만료됩니다. 며칠 후 오래된 클릭이 이미 해체된 에이전트 상태를 뒤집는 것을 방지합니다. 만료된 카드의 다음 클릭은 회색 “Expired” 결정 카드와 “no longer active” 토스트를 받습니다. - 메시지 테스트 전송이 이제 일반 텍스트 알림(승인/거부 버튼 없음)을 전달하고 행 드롭다운이 아닌 채널 세부 정보 시트에만 있습니다. 승인 훅을 사용할 의도가 없는 사용자는 “test” 메시지의 대화형 버튼으로 혼동되지 않습니다. 승인 왕복 테스트는 승인 플레이그라운드 버튼을 통해 계속 사용 가능합니다.
- 채널 세부 정보 시트 강화: “설정을 완료하는 방법”이 이제 기본적으로 축소된 축소 가능한 섹션입니다(이미 구성된 채널의 시트를 지배하지 않도록), 외부 패딩이 감소하여 콘텐츠가 시트 가장자리에 더 가깝게 앉습니다.
- 빌더 AI가 더 이상 마스킹된(
****) 자격증명을 누락된 것으로 보고하지 않습니다 — 이제 구성된 것으로 인식하고 거짓 “자격증명 누락” 지침을 건너뜁니다. - 플레이그라운드 에이전트 목록이 이제 게시된 것만이 아닌 모든 액세스 가능한 에이전트를 표시하므로 초안 에이전트를 먼저 게시하지 않고 테스트할 수 있습니다.
- 채팅 이미지 업로드가 더 이상 잘못된
data:URL에서 스트림을 충돌시키지 않습니다 — MIME 추출기가 이제 생성 중간에 IndexError를 발생시키는 대신application/octet-stream으로 안전하게 폴백됩니다. - 플레이그라운드 이미지 썸네일이 이제
AbortController를 통해 언마운트 시 비행 중인 페치를 취소하여 빠른 탐색 중 오래된 blob-URL 할당과 낭비된 대역폭을 방지합니다.
[v0.8.4] - 2026-04-17
추가됨
- 대화 복구: 합성 tool_result 행이 이제 중단된 턴 이후에도 유지되며, 클라이언트는 마지막으로 본 커서와 함께
POST /chat/resume을 통해 연결이 끊긴 SSE 스트림을 재개할 수 있습니다. - Playground는 이제
/chat/resume엔드포인트를 사용하여 끊긴 SSE 스트림을 지수 백오프(최대 3회 시도)로 자동 재연결하며, 복구 중에 “재연결 중…” 표시기를 표시합니다. - 프롬프트 캐시 관찰성:
cache_read_input_tokens과cache_creation_input_tokens이 LLM 응답에서 캡처되고,TurnProfiler에서 턴별로 집계되며,turn_cache요약 줄(read/create tokens + estimated savings)로 기록되고, 채팅done_payload의 새로운cache필드에 표시됩니다. Anthropic 프롬프트 캐싱이 실제로 작동하는지 확인할 수 있으며, API 릴레이 스테이션이 캐시 할인을 준수하는지 여부를 감지하는 역할도 합니다.
변경됨
- 시스템 프롬프트는 이제 Anthropic 프롬프트 캐싱 breakpoint가 있는 메모이제이션된 섹션 레지스트리를 사용합니다. 안정적인 접두사에서 Claude 모델의 캐시된 접두사에 대한 턴당 토큰 비용을 약 60-80% 감소시킵니다. ReAct JSON 모드, 네이티브 함수 호출 모드, 합성은 모두 캐시 가능한 제공자(Claude, Bedrock Anthropic, Vertex Claude)에 대해 두 개의 시스템 메시지를 내보내고 다른 모든 제공자에 대해서는 단일 연결된 메시지로 폴백합니다.
수정됨
- Thinking/reasoning tokens가 이제 다중 턴 대화에서 유지됩니다 — Anthropic
signature필드가 캡처되고 API 요구사항에 따라 재생됩니다. - 제공자 인식 reasoning 재생 정책:
reasoning_content(DeepSeek-R1, Qwen QwQ, Gemini thinking, OpenAI o-series에서)는 더 이상 후속 턴에서 비-Anthropic 제공자에게 재생되지 않습니다. 이전에는 이 필드가ChatMessage.to_openai_dict()에서 무조건 직렬화되었으며, 이는 제공자 문서를 위반했습니다 (DeepSeek와 Qwen 모두 “메시지 히스토리에서reasoning_content를 다시 보내지 마세요”를 명시적으로 문서화함). 모든 다중 턴 교환에서 자동 접두사 / KV 캐시를 자동으로 무효화했습니다. 정책은core/prompt/reasoning.py에 중앙화되어 있습니다 — Claude 계열 (Bedrock 및 Vertex 프록시 포함)은 필요에 따라 signature와 함께 thinking 블록을 계속 재생합니다.
[v0.8.3] - 2026-04-16
추가됨
convert_to_markdown내장 도구 — Microsoft의 MarkItDown을 사용하여 모든 파일, URL, YouTube 링크 또는 데이터 URI를 깔끔한 Markdown으로 변환하는 새로운 범용 Agent 도구입니다. PDF, Word (.docx), Excel (.xlsx/.xls), PowerPoint (.pptx), HTML, JSON, CSV, XML, ZIP, EPUB, Outlook .msg, 이미지, 오디오(음성 → 텍스트) 및 YouTube 자막을 지원합니다. 모든 agent에서 기본적으로 사용 가능하며web_fetch와 동일한 계층입니다. 비전 기능이 있는 LLM이 구성되면, 공식markitdown-ocr플러그인을 통해 포함된 이미지와 스캔된 PDF 페이지가 자동으로 OCR됩니다. 이전에는 이 기능이 백그라운드 RAG 수집 파이프라인 내에 숨겨져 있었으며, 이제 agent는 대화형 경로에서 이를 사용할 수 있습니다.markitdown-ocr을 통한 문서 OCR — DOCX / XLSX / PPTX의 포함된 이미지와 스캔된 PDF 페이지는 이제 FIM One이 라우팅하는 나머지 비전 기능이 있는 LLM을 사용하여 OCR됩니다. 내장convert_to_markdown도구와 RAG 수집 파이프라인 모두에 적용되므로, 채팅 시간 변환과 지식 기반 수집이 동일한 입력에 대해 바이트 동일의 Markdown을 생성합니다.- 문서 OCR을 위한 범용 비전 제공자 지원 — 새로운
LiteLLMOpenAIShim덕 타입은 모든 FIM OneOpenAICompatibleLLM을 openai SDK의.chat.completions.create(...)API 형태로 래핑한 다음litellm.completion()을 통해 디스패치합니다. MarkItDown(openai SDK 표면을 하드코딩함)은 이제 Anthropic Claude, Google Gemini, Azure, Bedrock 및 LiteLLM이 지원하는 다른 모든 제공자를 사용할 수 있습니다 — FIM One의 제공자별 어댑터 코드가 필요 없습니다. - 비전 인식 RAG 수집 — Office 문서 및 스캔된 PDF의 지식 기반 업로드는 이제 워크스페이스의 기본 비전 LLM(DB 우선, ENV 폴백)을 해결하고 수집 중 OCR을 위해 MarkItDown으로 전달합니다. 0 회귀: 비전 기능이 있는 모델을 사용할 수 없을 때, 수집은 자동으로 텍스트 전용 모드로 폴백됩니다 — 정확히 기능 이전 동작입니다.
- 확장된 MarkItDown 형식 지원 — RAG는 이제 MarkItDown의 오디오 전사 및 outlook 추가 기능을 통해
.pdf,.msg(Outlook),.epub,.mp3,.wav및.m4a를 기본적으로 수집합니다. YouTube URL은markitdown[youtube-transcription]을 통해convert_to_markdown으로 흐릅니다. LLM_SUPPORTS_VISION환경 변수 — ENV 모드 문서 OCR 폴백에 대한 선택적 옵트아웃(=false). 기본 동작은 낙관적(true)이며, 일반적인 ENV 설정(gpt-4o,claude-3-5-sonnet,gemini-1.5-pro/flash)을 포함합니다. ENV로 구성된LLM_MODEL이 비전을 지원하지 않을 때만false로 설정하십시오(예:deepseek-v3,qwen-chat,llama-3.1,gpt-3.5-turbo,o1-mini). 모든 문서 업로드에서 실패한 비전 호출을 건너뛰려면 이를 설정하십시오. 관리자가 선별한 ModelGroup이 활성화되면 완전히 무시됩니다 — DB 모드는 사용 가능할 때 항상 진실의 원천입니다.- 턴 레벨 프로파일러 — 각 ReAct 턴은 이제 단계 레벨 타이밍(
memory_load,compact,tool_schema_build,llm_first_token,llm_total,tool_exec)을 턴당 단일 구조화된 로그 라인에 기록합니다.REACT_TURN_PROFILE_ENABLED를 통해 토글 가능합니다(기본값: 켜짐; 오버헤드 없는 no-op의 경우false로 설정). - 구조화된 컴팩트 작업 카드 — 대화 컴팩션은 이제 자신의 9섹션 markdown 출력을 타입된
WorkCard로 파싱하고 새로운 컴팩트를 이전 카드에 병합하므로, 긴 세션의 초기 오류와 보류 중인 작업이 처음부터 다시 요약되는 대신 여러 컴팩션 라운드에서 유지됩니다.
변경됨
- 사용자별 속도 제한 — LLM 계층 속도 제한기가 이제 단일 프로세스 전역 버킷 대신 사용자별로 별도의 버킷을 유지합니다. 한 명의 시끄러운 사용자가 동일한 워커의 다른 모든 사용자를 제한하는 것을 방지합니다.
LLM_RATE_LIMIT_PER_USER를 통해 토글 가능합니다(기본값: 활성화).
수정됨
- Dangling tool_use 복구 — 도구 실행 중 중단된 대화(사용자 Stop, SSE 연결 해제, 충돌)는 이전에
tool_use블록이 있는 어시스턴트 메시지를 남겼고 일치하는tool_result가 없어서 다음 턴이 LLM API에서 불명확한 HTTP 400으로 충돌했습니다.DbMemory.get_messages()는 이제 읽기 경로에서 이러한 dangling 블록을 감지하고 합성[interrupted]tool_result로 복구합니다. 원본 DB 로그는 변경되지 않습니다. - 도구_호출이 있는 빈 콘텐츠 어시스턴트 메시지가 더 이상 삭제되지 않음 — DbMemory 로드 경로 필터는 이전에 빈 텍스트 콘텐츠가 있는 어시스턴트 행을 자동으로 삭제했습니다. 네이티브 함수 호출 중간 단계(텍스트 없이
tool_calls만 포함)가 제거되고 있었습니다. 필터는 이제 빈 콘텐츠와tool_calls없음 둘 다를 요구합니다.
[v0.8.2] - 2026-04-10
추가됨
- 지능형 문서 처리 (Vision-Aware) — 모델 기능에 따른 적응형 문서 처리. 대상 LLM이 vision을 지원하는 경우(GPT-4o, Claude 3/4, Gemini), PDF 페이지는 이미지로 렌더링되고 vision 콘텐츠 블록을 통해 전송되어 완벽한 시각적 충실도를 제공합니다. 텍스트 전용 모델은 pdfplumber 텍스트 추출로 폴백됩니다. Vision 및 Text-only 두 가지 모드.
DOCUMENT_PROCESSING_MODE,DOCUMENT_VISION_DPI,DOCUMENT_VISION_MAX_PAGES환경 변수를 통해 구성 가능. Admin에서 모델별supports_vision토글. - 문서 vision 파이프라인 — 채팅에 업로드된 DOCX, PPTX, PDF 파일의 포함된 이미지가 추출되고 모델에서 vision이 활성화되면 LLM으로 vision 콘텐츠로 전송됩니다.
- 다중 턴 vision 지속성 — 업로드된 문서 및 이미지의 vision 콘텐츠가 대화 턴 전체에 걸쳐 유지되므로 모델이 대화 전체에서 시각적 컨텍스트를 유지합니다.
- 스마트 PDF 처리 — 텍스트가 풍부한 PDF 페이지는 텍스트와 포함된 이미지를 별도로 추출합니다(토큰 절약). 스캔되거나 이미지 전용 페이지는 최대 충실도를 위해 전체 페이지 PNG로 렌더링됩니다.
- 사전 구축된 샌드박스 이미지 — 일반적인 데이터 과학 패키지(pdfplumber, Pillow, pandas 등)가 포함된
Dockerfile.sandbox로 AI 코드 실행이--network=none컨테이너에서 즉시 작동합니다. - 리소스 Fork 완성 — 5가지 리소스 유형 모두 이제 fork를 지원합니다: 에이전트, 커넥터, 워크플로우, MCP 서버, 스킬. KB fork 제거(기본적으로 사용자 로컬).
변경 사항
- 더 빠른 채팅 응답 완료 — SSE 스트림이 에이전트 완료 직후 즉시 종료되며, 제목 생성 및 후속 제안은 응답을 차단하지 않고 백그라운드에서 실행됩니다.
- 더 스마트한 컨텍스트 압축 — 대화 압축이 구조화된 9섹션 형식을 사용하여 긴 세션에서 핵심 정보(원본 요청, 오류, 대기 중인 작업)를 더 잘 보존합니다.
- 에이전트 루핑 감소 — 에이전트 프롬프트에 반복 방지 지침이 추가되었으며, 반복되는 동일한 도구 호출을 더 빨리 감지하도록 사이클 감지 임계값이 낮아졌습니다.
- 더 빠른 요청 시작 — LLM 구성 조회 및 도메인 분류가 동시에 실행되어 요청당 오버헤드를 400-1100ms 감소시킵니다.
- 더 나은 빈 도구 처리 — 출력을 반환하지 않는 도구는 이제 “(no output)“이 아닌 설명적인 메시지를 생성하여 불필요한 재시도를 방지합니다.
- 자동 이전 도구 결과 정리 — 6개의 가장 최근 결과보다 오래된 도구 결과는 컨텍스트 압축 전에 자동으로 삭제되어 대화를 간결하게 유지합니다.
- 도구 결과 집계 예산 — 총 도구 결과 토큰은 세션당 40K로 제한되며, 예산을 초과하면 새 결과가 잘려서 대규모 API 응답으로 인한 컨텍스트 팽창을 방지합니다.
- 컨텍스트 오버플로우 자동 복구 — LLM이 컨텍스트 길이 오버플로우로 인해 요청을 거부할 때, 에이전트는 전체 대화를 중단하지 않고 자동으로 50%로 압축한 후 재시도합니다.
- 키워드 기반 도구 선택 — 쿼리가 도구 이름이나 설명 키워드와 명확하게 일치할 때, 에이전트는 LLM 기반 도구 선택 호출을 건너뛰어 200-500ms를 절약합니다.
- LLM 연결 풀링 — 모든 LLM API 호출은 이제 최적화된 keepalive 설정이 있는 단일 연결 풀을 공유하여 전체 세션에서 연결 오버헤드를 감소시킵니다.
- 더 스마트한 완료 확인 — 긴 상세 답변(>200 토큰)의 경우 사후 답변 검증 단계를 건너뛰어 불필요한 LLM 왕복을 제거합니다.
- 제공자 중단 시 모델 폴백 — 기본 모델을 사용할 수 없을 때(속도 제한, 과부하 또는 다운), 에이전트는 대화를 실패하지 않고 자동으로 빠른 모델로 재시도합니다.
수정됨
- 읽을 수 없는 파일에 대한 에이전트 환각 — AI 에이전트가 파일을 읽을 수 없을 때(예: 이미지 기반 PDF), 이전에는 관련 없는 다른 파일을 읽고 해당 내용을 대상 파일의 내용으로 제시했습니다. 이제 시스템 프롬프트의 파일 무결성 보호 기능이 이를 방지합니다.
- 업로드를 위한 파일 ID 주입 — 업로드된 파일은 이제 메시지 컨텍스트에 UUID file_id를 포함하므로 에이전트가 추측 없이
read_uploaded_file을 통해 직접 액세스할 수 있습니다. - 새로운 모델 구조에서 비전 토글 읽기 — 모델 구성의
supports_vision플래그가 ModelGroup/ModelProviderModel ORM 구조에서 올바르게 읽혀지지 않았습니다. 수정되었습니다. - 읽을 수 없는 파일에 대한 개선된 오류 메시지 — 파일을 읽을 수 없을 때 도구는 이제 일반적인 오류 대신 특정 지침(파일 유형, 비전 제안)을 반환합니다.
[v0.8.1] - 2026-03-29
추가됨
- 타임존 인식 관리자 알림 — 관리자 알림 이메일이 항상 UTC를 표시하는 대신 각 수신자의 구성된 타임존에 이벤트 시간을 표시합니다.
- 점진적 데이터베이스 도구 공개 — 개별 테이블별 도구를 대체하는
list_tables/discover/query하위 명령이 있는 단일database메타 도구입니다.DATABASE_TOOL_MODE환경 변수(progressive기본값,legacy폴백)를 통해 구성 가능합니다. - 온디맨드 도구 로딩 — 12개 이상의 도구를 사용할 수 있을 때,
request_tools메타 도구를 통해 에이전트가 초기 선택에 갇히지 않고 대화 중에 동적으로 추가 도구를 로드할 수 있습니다. - 점진적 MCP 도구 공개 — 개별 서버별 도구를 대체하는
discover/call하위 명령이 있는 단일mcp메타 도구입니다.MCP_TOOL_MODE환경 변수(progressive기본값,legacy폴백)를 통해 구성 가능합니다. - 턴당 토큰 예산 서킷 브레이커 —
REACT_MAX_TURN_TOKENS환경 변수는 폭주하는 에이전트 루프를 위한 긴급 정지를 제공합니다. 기본값0(무제한) — 일일 비용 제어를 위해 사용자별token_quota를 대신 사용하세요. - 모델별 네이티브 함수 호출 토글 —
tool_choice_enabled설정(ENV + 관리자 모델별)을 통해 강제 도구 선택을 거부하는 모델이 레벨 1을 건너뛰고 JSON 모드로 직접 이동할 수 있습니다. 설정 → 모델 → 고급에서 구성 가능합니다. - DAG 품질 개선 — 5가지 개선: 비고속 단계에 대한 기본 모델을 일반 모델로 업그레이드; 계획에서 스킬 자동 발견; 법률/의료/금융 도메인을 위한 인용 검증자; 구성 가능한 잘림 배수를 사용한 구조화된 콘텐츠 컨텍스트 보존; 라우터의 도메인 분류 및 도메인 인식 모델 선택.
- ReAct의 도메인 모델 에스컬레이션 — 전문 도메인(법률/의료/금융)은 필수 웹 검색 및 인용 검증을 통해 추론 모델로 자동 에스컬레이션됩니다.
- 파일 첨부 다운로드 — 채팅 메시지의 파일 카드를 클릭하여 원본 파일을 다운로드할 수 있습니다.
- 관리자 알림 마스터 스위치 — SMTP 감지 런타임을 통한 관리자 이메일 알림의 전역 온/오프 토글입니다. SMTP가 구성되지 않았을 때 경고 배너를 표시하고 모든 알림 제어를 비활성화합니다.
- SMTP Reply-To 헤더 — 새로운
SMTP_REPLY_TO환경 변수를 통해 회신이 발신자와 다른 주소로 이동할 수 있습니다. - 리소스 포크 1단계(MCP 서버 + 스킬) —
POST /api/mcp-servers/{id}/fork및POST /api/skills/{id}/fork엔드포인트는visibility=personal및forked_from계보 추적을 통해 사용자 소유의 깊은 복사본을 생성합니다. MCP 서버 포크에서는 암호화된 env/헤더를 건너뜁니다. 스킬 포크에서는 게시 상태를 건너뜁니다. Alembic 마이그레이션은 두 테이블에forked_from열을 추가합니다. 41개 테스트. - 워크플로우 연결 종속성 자동 구독 —
DependencyAnalyzer._resolve_workflow는 이제 순환 감지(방문 세트)를 통해 하위 워크플로우 종속성을 재귀적으로 해결합니다. 에이전트 및 하위 워크플로우 노드가 종속성 매니페스트에서 콘텐츠 종속성으로 올바르게 추가됩니다. 누락된 리소스는 우아하게 처리됩니다(로그 경고, 실패 없음). 19개 테스트. - 사전 구축된 솔루션 템플릿(마켓 시드 콘텐츠) — 8개의 수직 솔루션 템플릿이 첫 사용자 등록 시 멱등적으로 부트스트랩됩니다: 재무 감사, 계약 검토, 데이터 보고, IT 헬프데스크, HR 온보딩, 판매 어시스턴트, 콘텐츠 작성자, 회의 요약. 각각 중국어 SOP가 포함된 에이전트 + 스킬을 번들로 제공합니다. 마켓 조직(
visibility=org,publish_status=approved)에 게시되어 즉시 마켓플레이스에서 사용 가능합니다. 4개 테스트. - ReAct 순환 감지 — 반복된 동일한 도구 호출의 결정론적 감지입니다. 동일한 인수를 사용한 3개의 연속 호출 후 경고를 주입하여 에이전트가 실패한 도구에서 루핑되는 것을 방지합니다.
REACT_CYCLE_DETECTION_THRESHOLD를 통해 구성 가능합니다. - ReAct 완료 체크리스트 — 도구가 사용되었을 때 최종 답변을 수락하기 전의 일회성 검증 프롬프트로, 조기 또는 불완전한 응답을 줄입니다. 에이전트 인스턴스별로 토글 가능합니다.
변경 사항
- 완료 체크리스트 최소 도구 임계값 — 체크리스트는 이제 에이전트가 3개 이상의 도구 호출을 수행했을 때만 실행됩니다(
REACT_COMPLETION_CHECK_MIN_TOOLS를 통해 구성 가능). 간단한 1-2개 도구 작업은 불필요한 지연을 피하기 위해 검증을 건너뜁니다. - 동적 시스템 프롬프트 예산 책정 — 컨텍스트 예산 계산에서 고정된
SYSTEM_PROMPT_RESERVE(4K 토큰)를 제거했습니다. ContextGuard는 이제 시스템 프롬프트를 동적으로 고려하여 각 반복마다 약 4K의 추가 사용 가능한 컨텍스트를 제공합니다. - 중앙화된 도구 잘라내기 — 모든 도구 유형은 이제 잘라내기를 공유 모듈에 위임합니다.
TOOL_OUTPUT_MAX_CHARS,TOOL_OUTPUT_MAX_ITEMS,TOOL_OUTPUT_MAX_BYTES환경 변수를 통해 기본값을 구성할 수 있습니다. - 도메인 감지 분리 — 도메인 분류는 각 엔드포인트에서 독립적으로 실행되며, 더 이상 자동 라우팅과 함께 번들로 제공되지 않습니다. 도메인 SOP 지침이 웹 검색을 의무화하기보다는 안내하도록 완화되었습니다.
AUTO_ROUTING환경 변수 제거 — 자동 엔드포인트는 항상 쿼리를 분류합니다.
수정됨
- 중복 메시지 제출 — 채팅 입력이 이제 동기 가드를 사용하여 빠른 클릭 시 동일한 메시지가 여러 번 제출되는 것을 방지합니다.
- 구조화된 출력 저하 체인 — 3단계 폴백(native FC → JSON mode → plain text)이 이제 모든 단계를 올바르게 통과합니다.
json_mode_enabledDB 값 무시됨 — Admin을 통해 구성된 모델이 이제 환경 변수로 항상 폴백하는 대신 모델별 설정을 올바르게 사용합니다.- DAG 계획 실패 메시지 — 이제 원본 파이프라인 오류 대신 사용자 친화적인 이중언어 메시지를 표시합니다.
- allow_fallback에 대한 MCP 서버 소유자 우회 — 서버 소유자가 더 이상
allow_fallback=False로 차단되지 않습니다.
[v0.8] - 2026-03-20
추가됨
- 마켓플레이스 재설계 1단계 — 솔루션 + 컴포넌트 — 2계층 마켓 모델(솔루션: 에이전트/스킬/워크플로우; 컴포넌트: 커넥터/MCP 서버)과 범위 선택기(글로벌 마켓 / 조직). 마켓 범위에서 KB 제거. 통합 구독 모델.
- 스마트 파일 콘텐츠 주입 +
read_uploaded_file도구 — 소규모 업로드(<32K문자)는 LLM 컨텍스트에 자동 인라인; 대용량 파일은 메타데이터 + 도구 힌트 제공. 페이지네이션 및 정규식 검색이 포함된 이중 모드 읽기 도구.GET /api/files/{file_id}/content엔드포인트. - 워크플로우 블루프린트 시스템 — 다단계 자동화를 위한 시각적 워크플로우 편집기: 25개 노드 유형(시작, 종료, LLM, 조건분기, 질문분류기, 에이전트, 지식검색, 커넥터, HTTP요청, 변수할당, 템플릿변환, 코드실행, 반복자, 루프, 변수수집기, 매개변수추출기, 목록작업, 변환, 문서추출기, 질문이해, 사용자개입, 서브워크플로우, ENV 등), React Flow v12 편집기(드래그앤드롭 팔레트, 자동 레이아웃, SSE 실시간 실행, 변수 보간, 조건/분류기 분기, 노드별 오류 전략, 노드별 타임아웃, 가져오기/내보내기/복제, 차이 뷰어가 있는 버전 기록, 14개 기본 제공 템플릿, 306개 테스트.
- 워크플로우 트리거 — 타임존 지원 Cron 스케줄링; 외부 실행용 공개 API 키(
wf_접두사, 사용자 인증 불필요); 배치 실행(최대 100개 입력 세트, 구성 가능한 병렬 처리). - 워크플로우 작업 — 실시간 실행 로그 뷰어, 변수 스냅샷이 있는 추적 뷰어, 캔버스에 실행 재생 오버레이, 실행 기록 내보내기, 일일 추세 및 백분위수가 있는 분석 대시보드, 노드별 통계 패널, 즐겨찾기/고정, 인라인 검증 배지, 캔버스 노드 검색(
Cmd+F), 키보드 단축키, 그리드에 맞춤. - 워크플로우 관리자 + 템플릿 — 모든 워크플로우를 위한 관리자 관리 탭, 관리자 CRUD 및 5개 시드 템플릿이 있는
WorkflowTemplate모델, 조직 수준 검토 게이팅이 있는 게시 흐름, 외부 참조를 위한 가져오기 충돌 해결기. - 에이전트 스킬 시스템 — 온디맨드 스킬 로딩: CRUD/게시/검토가 있는
Skill모델, 점진적 공개를 위한read_skill(name)도구(~80% 토큰 감소), 사용자 정의 ContextGuard 압축을 위한 에이전트별compact_instructions. 목록 페이지, 편집기, 에이전트 스킬 선택기가 있는 전체 스킬 UI. - ConnectorMetaTool(점진적 공개 1-2단계) — 단일 메타 도구가 작업별 도구를 대체. 시스템 프롬프트는 경량 스텁(~30 토큰/커넥터)을 수신; 에이전트는 온디맨드로
discover/execute호출. 하위 호환성을 위한CONNECTOR_TOOL_MODE기능 플래그. - 커넥터 가져오기/내보내기/포크 — JSON 내보내기를 통해 커넥터 템플릿 공유, 포크를 통해 복제 및 사용자 정의. 백엔드는 내보내기 시 자격증명을 정제.
- 커넥터 자격증명 암호화 + 사용자별 재정의 — Fernet 암호화가 있는
connector_credentials테이블,allow_fallback플래그,GET/PUT/DELETE /my-credentials엔드포인트. - 게시 검토 UI — 승인/거부 워크플로우가 있는 조직 수준 검토 시스템, 리소스 카드의 상태 배지, 게시 대화 상자의 검토 공지, 거부된 리소스에 대한 재제출.
- 의미론적 스키마 주석 — 커넥터 필드를 위한 16개 사전 정의된 의미론적 태그(
description및pii플래그 포함), LLM 도구 설명에 표시. - 에이전트 중간 루프 자기 성찰 — ReAct에서 6번 반복마다 주입된 목표 확인 프롬프트로 긴 체인의 표류 방지.
- 섀도우 마켓 조직 + 리소스 구독 — 풀 기반 리소스 공유: 마켓플레이스를 통해 발견된 리소스 및 명시적으로 구독된 리소스. 검색/구독/구독 취소를 위한 마켓 API.
- 에이전트 자동 발견 + 서브에이전트 바인딩 —
discoverable플래그 +sub_agent_ids화이트리스트 + 1단계 위임을 위한CallAgentTool. - MCP 서버 자격증명 + 사용자별 재정의 — 자격증명 폴백 동작을 위한
allow_fallback플래그가 있는mcp_server_credentials테이블. - 커넥터/KB 토글 — 두 리소스 유형 모두에 대한 일시 중지/재개 엔드포인트.
- 독립형 KB 대화 — 에이전트 바인딩 없이 직접 KB 채팅을 위한 대화의
kb_ids필드. - 검토 로그 감사 탭 — 시스템 로그 / 검토 로그 토글 및 조직/리소스별 필터링 가능한 검토 추적이 있는 관리자 감사 페이지.
- 합성의 에이전트 지시문 —
agent_directive매개변수는 최종 답변이 에이전트의 핵심 목적을 준수하도록 보장.
변경됨
- 구독 기반 가시성 모델 — 3단계에서 2단계(자신 → 구독)로 단순화. 자동 마이그레이션으로 기존 액세스 보존.
- 도구 캐시 화이트리스트 — 블랙리스트를 도구의 명시적
cacheable속성으로 대체. 11개의 읽기 전용 도구가 캐시 가능으로 표시됨. - DAG 실행기 캐스케이드 실패 — 실패한 단계가 이제 종속 항목을 캐스케이드 차단하며 전이적 전파 수행.
- DAG 플래너 개선 — 플래너의 도구 설명, 모든 라운드에 걸친 전체 재계획 기록, 14개 엔진 상수를 환경 변수로 매개변수화.
- stream_answer 관찰 잘림 — 2000자에서 8000자로 증가(
REACT_TOOL_OBS_TRUNCATION을 통해 구성 가능). - 증거 신뢰도 UI — 호박색 경고 카드, 호버 팝오버가 있는
[N]인용 배지, 나란히 비교하는 충돌 경고 배너. - 워크플로우 버전 변경 요약 — 버전 저장 시 블루프린트 diff에서 자동 생성된 인간 친화적 요약.
- 워크플로우 실행 보존 정리 — 구성 가능한 나이/개수 제한이 있는 백그라운드 정리 작업. 환경 변수:
WORKFLOW_RUN_MAX_AGE_DAYS,WORKFLOW_RUN_MAX_PER_WORKFLOW. - 커넥터 서킷 브레이커 — 3상태 머신(closed/open/half-open)으로 커넥터별 실패 추적 및 모니터링 엔드포인트 제공.
- elkjs를 경량 BFS 자동 레이아웃으로 대체 —
/workflows/[id]번들이 473 kB에서 43 kB로 감소.
수정됨
- 워크플로우 eval 네임스페이스 평탄화 — ConditionBranch 및 VariableAssign에서 짧은 변수 이름 해석 수정.
is_active토글 시 재검토 없음 —is_active를 토글해도 더 이상publish_status가approved에서pending_review로 되돌아가지 않음.- 조건 분기에 대한 Cascade-skip — 건너뛴 노드가 나가는 엣지를 올바르게 비활성화함.
- 종속성 분석기 —
skill_ids해석 수정, 대소문자를 구분하지 않는 노드 타입 매칭.
제거됨
is_global필드 및 모든 글로벌 가시성 개념 제거 — Market 조직 + 구독으로 대체됨.- 글로벌 에이전트/MCP 서버 관리자 엔드포인트 제거됨.
[v0.7.5] - 2026-03-12
추가됨
- 자유로운 모드 전환 — 대화 중 Auto/React/DAG 모드 전환.
metadata.mode를 통한 턴별 모드 추적. - 세 가지 모델 역할 — General, Fast, Reasoning 계층을 위한 독립적인 환경 설정. Fast 모델이 더 이상 주 모델 설정을 상속하지 않음.
- DAG 엔진 개선 —
StepOutput구조화된 데이터, 비동기 잠금 스탬피드 방지를 포함한 도구 캐시, 재시도를 포함한 단계별 LLM 검증 (DAG_STEP_VERIFICATION), 빠른 LLM 분류를 통한 자동 라우팅 (AUTO_ROUTING). - 커넥터 자격증명 암호화 —
CREDENTIAL_ENCRYPTION_KEY를 통한 Fernet 암호화를 사용하여connector_credentials테이블로 추출된 인증 토큰. 사용자별 자격증명 재정의 엔드포인트.allow_fallback플래그. - ModelConfig API 키 저장 시 암호화 — 투명한 쓰기 시 암호화 / 읽기 시 복호화 및 하위 호환성 있는 평문 감지.
변경됨
- 스켈레톤 화면 — 모든 목록/그리드 페이지가 로드 중에 스피너 대신 레이아웃 인식 스켈레톤을 표시합니다.
수정됨
- Fast 모델이 더 이상 메인 모델에서 설정을 상속하지 않습니다.
- SSE 라우팅 이벤트 필드 이름이 백엔드와 정렬되었습니다.
[v0.7.4] - 2026-03-12
추가됨
- 평가 센터 — 테스트 데이터셋 관리, LLM 채점을 통한 병렬 평가 실행, 케이스별 통과/실패/지연시간/토큰 결과 뷰어 및 자동 폴링.
- 관리자: 모델별
json_mode_enabled플래그 — AWS Bedrock prefill 문제를 방지하는 명시적 토글. ENV 모델은LLM_JSON_MODE_ENABLED로 제어. - SSE 프로토콜 v2 —
delta_reasoning,usage필드를 포함한 실시간 스트리밍,done/suggestions/title/end이벤트 분리. - AI 빌더 확장 — 7개의 새로운 빌더 도구,
is_builder플래그, 빌더 프롬프트 자동 새로고침, SSRF 보호. 커넥터 관리를 위한 완전한 ReAct 에이전트 대화. - 이중 데이터베이스 지원 — SQLite(제로 설정) + PostgreSQL(프로덕션). Docker Compose가 상태 확인과 함께 PG를 자동으로 프로비저닝.
- 확장된 사고 / 추론 — OpenAI o-series, Gemini 2.5+, Claude를 위한
LLM_REASONING_EFFORT및LLM_REASONING_BUDGET_TOKENS. - 관리자: 도구 비활성화 — 도구별 활성화/비활성화 토글; 비활성화된 도구는 런타임에 채팅에서 필터링됨.
- 설정: 조직 탭 — 설정에서 직접 조직 생성, 참여, 멤버 역할 관리.
- Docker Compose 배포 — 단일 이미지, 명명된 볼륨, 독립형 Next.js 출력.
- 내보내기: PDF 형식 — 대화를 PDF 문서로 내보내기 가능.
- 다중 워커 지원 —
WORKERS=N환경 변수; 크로스 워커 릴레이를 위한 Redis 인터럽트 브로커.
변경사항
- LLM 계층: LiteLLM — 범용 제공자 지원을 위해 직접
AsyncOpenAI클라이언트를 대체했습니다. - 구조화된 출력 저하 —
structured_llm_call()을 3단계 추출(Native FC → JSON Mode → 일반 텍스트 + regex)로 통합했습니다. - 스마트 릴레이 라우팅 — 타사 릴레이 플랫폼의 URL 경로 패턴에서 API 프로토콜을 자동 감지합니다.
수정됨
- Docker sandbox (DooD) 볼륨 마운트 경로 변환.
- 보안: sandbox AST dunder 검증, MCP stdio 기본값, SSRF DNS rebinding, shell 메타문자 회피, 커넥터 템플릿 주입.
- Admin 대시보드 통계 PostgreSQL 충돌.
- Docker: i18n 파일 검색, 시작 경쟁 조건, 커스텀 포트에 대한 OAuth 자동 감지.
- 내보내기: CJK에 대한 RFC 5987 파일명.
[v0.7.3] - 2026-03-06
추가됨
- Global MCP servers — 관리자가 프로비저닝한 서버로, 모든 채팅 세션에서 로드됩니다.
- 구조화된 감사 로깅 — 구조화된 열이 있는
write_audit()헬퍼입니다.
수정됨
- 레거시
registration_enabled필드에 대한 초대 코드 하위 호환성.
[v0.7.2] - 2026-03-06
추가됨
- 초대 전용 등록 — 세 가지 모드(개방/초대/비활성화)와 초대 코드 CRUD.
- 스토리지 관리 — 사용자별 디스크 사용량, 삭제, 고아 정리.
- 사용자별 강제 로그아웃 — 관리자 토큰 취소.
- 대화 중재 — 관리자 모든 대화 목록/삭제.
[v0.7.1] - 2026-03-06
추가됨
- API 상태 대시보드 — 시스템 통계, 커넥터 메트릭, 토큰 사용량 차트.
- JWT 인증 — 토큰 기반 SSE 인증, 대화 소유권.
- 관리자 API — 에이전트 관리, 사용자별 토큰 할당량 (429 적용).
[v0.7] - 2026-03-06
추가됨
- 관리자 플랫폼 — 사용자 관리, 역할 전환, 비밀번호 재설정, 계정 활성화/비활성화.
- 첫 실행 설정 마법사 — 관리자 계정 생성 안내.
- 개인 센터 — 사용자별 전역 지시사항, 언어 선호도.
[v0.6.5] - 2026-03-05
추가됨
- 유틸리티 도구 —
email_send,json_transform,template_render,text_utils. - 커넥터 응답 필터링 —
CONNECTOR_RESPONSE_MAX_CHARS및CONNECTOR_RESPONSE_MAX_ITEMS. - 임베딩 모델 옵션 — Jina, OpenAI 및 커스텀 제공자.
[v0.6] - 2026-03-01
추가됨
- 커넥터 플랫폼 — 전체 CRUD, ConnectorToolAdapter, 사용자별 자격증명 암호화, 확인 게이트, 서킷 브레이커, 감사 로깅.
- MCP 통합 — 프로토콜을 통한 도구 자동 발견, 프로세스 격리.
[v0.5] - 2026-02-28
추가됨
- Full RAG pipeline — Jina embedding + LanceDB + FTS + RRF + reranker.
- Grounded Generation — Evidence-anchored citations, conflict detection, confidence scores.
- KB document management — Chunk-level CRUD, search, retry, schema migration.
- ContextGuard + Pinned Messages — Token budget manager.
- DAG Re-Planning — Up to 3 rounds; LLM Compact for memory.
[v0.4] - 2026-02-25
추가됨
- 다중 턴 대화 — DbMemory 지속성, 스마트 자르기.
- 도구 단계 접기 UI — 도구 호출 축소/확장.
- HTTP 요청 + 셸 실행 도구.
- 에이전트 관리 — 바인딩된 모델/도구로 생성, 구성, 게시.
- JWT 인증.
[v0.3] - 2026-02-25
추가됨
- 웹 도구 —
web_search(Jina/Tavily/Brave),web_fetch. - 파일 작업 + MCP 클라이언트.
- DAG 시각화 — 라이브 상태가 있는 대화형 흐름 그래프.
- Docker에서 코드 실행 —
--network=none, 메모리 제한, 타임아웃.
[v0.2] - 2026-02-24
추가됨
- 재시도 및 속도 제한 — 지수 백오프.
- 사용량 추적 — 요청별 토큰/비용 계산.
- 네이티브 함수 호출 — 직접 모델 도구 선택.
- 다중 모델 지원 — DAG 단계를 위한
FAST_LLM_MODEL. - 메모리 시스템 — 윈도우, 요약, Db 메모리.
- FastAPI 백엔드 —
/api/execute,/api/stream(SSE).
[v0.1] - 2026-02-22
추가됨
- ReActAgent — Reason → Act → Observe 루프.
- DAGPlanner — LLM 생성 의존성 그래프, 동시 실행, 결과 검증.
- Tools — 계산기, Python 실행.
- Portal UI — Next.js 스트리밍, 다크/라이트 테마, KaTeX.