목표: 글로벌 × 중국 기업을 위한 올인원 에이전트 플랫폼 구축 — 세 가지 점진적 모드를 통해 제공: Standalone(포털 어시스턴트), Copilot(호스트 시스템에 임베드), Hub(중앙 크로스시스템 오케스트레이션). 원칙: 공급자 중립적(벤더 락인 없음), 최소 추상화, 프로토콜 우선, 커넥터 우선(통합이 핵심 가치).
제품 비전
FIM One은 세 가지 점진적 배포 모드를 제공하는 올인원 에이전트 플랫폼입니다.Known Issues
재현 가능하지만 아직 수정되지 않은 프로덕션 버그입니다. 각 항목은 증상, 의심되는 영역, 해결 방법(있는 경우)을 명시합니다. 수정이 범위 지정되고 예약되면 항목이 버전 섹션으로 이동합니다.- Playground 중지 및 재시도 시 일시적인 시각적 아티팩트가 표시되며, 페이지 새로고침으로 항상 해결됩니다. 세 가지 동시 렌더 소스 —
activeConversation.messages(DB 스냅샷), SSEmessages스트림, 낙관적pendingQuery플레이스홀더 — 가 단일 파생 상태로 축소되지 않아서, “재시도” 클릭과 쌍을 이루는 어시스턴트 응답이 도착하는 사이에 UI가 (a) 사전 스트림 윈도우에서 동일한 쿼리를 잠시 두 번 렌더링하거나, (b)hasLiveMessages가 true이고 스냅샷이 다시 로드되기 전에 재시도 기록에서 이전 고아 사용자 버블을 삭제하거나, (c) SSE “완료” 이벤트와 다음selectConversation새로고침 사이의 좁은 윈도우에서 깜빡일 수 있습니다. 데이터는 절대 손실되지 않습니다 — 모든 사용자 메시지(중단된 재시도 포함)는conversation.messages에 유지되고,normalize_alternating_messages를 통해 다음 LLM 호출로 전달되며,48ba08c6렌더 수정에서 도입된HistoryTurn.orphanUserContents를 통해 새로고침 후 올바르게 렌더링됩니다. 참고로, Claude의 자체 웹 UI도 유사한 클래스의 버그를 보여줍니다 — 응답 중간에 중지하고 즉시 후속 쿼리를 보내면 때때로 후속 쿼리가 첫 번째 쿼리의 형제 편집 분기로 포크되기도 하고 새로운 턴으로 추가되기도 합니다 — 따라서 이는 낙관적 UI + SSE + 지속된 기록 설계에서 알려진 어려운 문제이지, FIM One 특정 결함이 아닙니다. 적절한 수정을 위해서는 세 가지 렌더 소스를 단일 파생 상태로 축소해야 하며, 더 광범위한 Playground 상태 머신 리팩토링까지 연기되었습니다.
Architecture Program — Agent Core
범위가 정해졌으나 아직 버전에 예약되지 않음. 배치는 의존성 순서로 정렬되며, 각각은 동반 설계의 구체적인 작업으로 확장됨.- Governance: 버그 클래스 방어 패턴 문서, 설계 노트 라이프사이클 상태, 마크다운 링크 게이트.
- Session event log: 모든 모델 가시 입력이 지속적이고 순서가 있는 사실이 되며, 모델 히스토리는 이로부터 파생됨.
- Runtime invariants + keyless snapshot replay: 프로덕션에서 소유 관계를 어설션하고, CI에서 키 없이 조립된 트랜스크립트를 비교.
- Tool pipeline seams: 사전/실행/사후 단계로 권한, 타임아웃, 샌드박스 및 백그라운드 작업이 에이전트 루프를 벗어남.
- Code Mode preset: 하나의 프로그램이 동일한 파이프라인을 통해 여러 커넥터 호출을 구성하여 다중 왕복 오케스트레이션을 대체.
- Agent presets as declared capability sets, 플러스 플랜 및 백그라운드 상태가 사이드 파일이 아닌 로그 사실로 기록됨.
- Typed frontend from OpenAPI 및 생성된 도구/환경 카탈로그로, 드리프트되는 수동 유지 복사본을 대체.
Backlog (Low Priority)
연기된 강화 — 차단하지 않음; 일치하는 시나리오가 나타날 때만 진행.- DAG 증거가 자체 절단 예산을 가짐,
DAG_ANALYZER_TRUNCATION에서 분리되어 소스 증거가 분석기/합성 검증 전에 요약 예산으로 다시 잘리지 않음. - 구조 인식 증거 절단 (head+tail / 리스트 & 테이블 유지) 긴 열거형이 끝부분을 조용히 잃는 대신 상한선을 초과하지 않음.
- 소스 충실도 지침을 ReAct 폴백 합성 프롬프트로 이식 전체/심각도 오류 레이블이 DAG뿐만 아니라 ReAct에서도 포착됨.
출시된 버전
v0.1 (2026-02-22) — MVP: ReAct + DAG Planner
- ReActAgent와 도구 (calculator, python_exec, web_search)
- DAG Planner (LLM이 의존성 그래프 생성)
- 스트리밍 + KaTeX가 포함된 Portal UI
v0.2 (2026-02-24) — Multi-Model + Memory
- 재시도 / 속도 제한 / 사용량 추적
- 기본 함수 호출 (JSON 전용 파싱 없음)
- 다중 모델 지원 (fast + main LLM)
- 메모리: WindowMemory, SummaryMemory
- SSE 스트리밍을 지원하는 FastAPI 백엔드
v0.3 (2026-02-25) — Web Tools + MCP
- 웹 도구 (web_search, web_fetch) via Jina/Tavily/Brave
- 파일 작업 도구
- MCP 클라이언트 (표준 도구 통합)
- 도구 자동 발견 + 카테고리
- DAG 시각화 및 클릭-스크롤
- Docker에서 코드 실행 (
--network=none)
v0.4 (2026-02-25) — Multi-Turn + Agents
- 다중 턴 대화 (DbMemory)
- 도구 단계 폴딩 UI
- HTTP 요청 + 셸 실행 도구
- 에이전트 관리 (생성, 구성, 게시)
- JWT 인증
- 에이전트별 실행 모드 + 온도 제어
v0.5 (2026-02-28) — 완전한 RAG + 기반 생성
- 완전한 RAG 파이프라인 (embedding + vector store + FTS + RRF + reranker)
- 기반 생성 (인용, 신뢰도 점수)
- 지식 기반 문서 관리 (CRUD, 검색, 재시도, 스키마 마이그레이션)
- ContextGuard + 고정 메시지 (토큰 예산 관리자)
- DbMemory 지속성 + LLM Compact
- DAG 재계획 (최대 3라운드)
v0.6 (2026-03-01) — Connector Platform
- Connector CRUD: create, read, update, delete
- ConnectorToolAdapter: converts Connector → BaseTool
- Per-user credentials: AES-GCM encryption
- Confirmation gate: 쓰기 작업 승인
- Audit logging: all tool calls recorded
- Circuit breaker: graceful degradation on failures
- Utility tools: email_send, json_transform, template_render, text_utils
- Embedding options: Jina, OpenAI, custom providers
v0.7 (2026-03-06) — Admin Platform + Multi-Tenant
- Admin Platform: 사용자 관리, 역할 전환, 비밀번호 재설정, 계정 활성화/비활성화
- 초대 전용 등록: 세 가지 모드(공개/초대/비활성화) + 초대 코드 CRUD
- 스토리지 관리: 사용자별 디스크 사용량, 정리, 고아 파일 정리
- 대화 중재: 관리자 목록/삭제 모두
- 사용자별 강제 로그아웃: 모든 토큰 취소
- API 상태 대시보드: 시스템 통계, 커넥터 메트릭
- 첫 실행 설정 마법사: 안내식 관리자 계정 생성
- 개인 센터: 사용자별 전역 지시사항, 언어 선호도
- JWT 인증: 토큰 기반 SSE 인증, 대화 소유권
- Global MCP servers: 관리자 프로비저닝, 모든 세션에서 로드
- 하위 호환성: registration_enabled → registration_mode 자동 마이그레이션
v0.7.x (2026-03-07 to 2026-03-12) — Stability + Refinements
- 초대 코드 관리
- 사용자별 할당량 (429 적용)
- 구조화된 감사 로깅
- 민감한 단어 필터링
- 관리자 로그인 기록
- 관리자 파일 브라우저
- 향상된 관리자 보기 (model_name, tools, kb_ids 필드)
- Docker Compose 배포 (단일 이미지, 명명된 볼륨)
- OAuth 자동 감지 (window.location에서)
- 확장 사고 / 추론 지원 (
LLM_REASONING_EFFORT,LLM_REASONING_BUDGET_TOKENS) — OpenAI o-series, Gemini 2.5+, Claude - 관리자 도구별 활성화/비활성화 (비활성화된 도구는 런타임에 채팅에서 제외)
- MCP 서버 관리를 Connectors 페이지로 이동
- 이중 데이터베이스 지원: SQLite (제로 설정 기본값) + PostgreSQL (프로덕션); Docker Compose는 PostgreSQL 자동 프로비저닝
- 모델 구성 문서 페이지 (제공자별 확장 사고 설정 포함)
- SSE Protocol v2:
delta_reasoning,usage필드와 분할된done/suggestions/title/end이벤트를 포함한 실시간 답변 스트리밍; SQLite 풀 크기 5 -> 20 - AI Builder 확장: 7개의 새로운 빌더 도구 (GetSettings, TestConnection, ImportOpenAPI for connectors; ListConnectors, AddConnector, RemoveConnector, SetModel for agents), 에이전트의
is_builder플래그, 빌더 프롬프트 자동 새로고침, SSRF 가드 - SSE v2 프론트엔드: 스트리밍 점 펄스 커서, DAG 재계획 라운드 스냅샷을 축소 가능한 카드로, DAG 레이아웃을 단계 상태에서 분리
- AI Builder 개념 문서 페이지 (커넥터 및 에이전트 빌더 가이드 포함)
- 조직 시스템: 역할 기반 멤버십 (소유자/관리자/멤버)을 포함한 전체 CRUD, 관리자 관리 UI
- 3계층 리소스 가시성 (개인/조직/글로벌) — 에이전트, 커넥터, 지식 베이스, MCP 서버
- 모든 리소스 유형에 대한 게시/게시 취소 API; 게시된 에이전트의 소유자 위임
- 관리자 설정 가시성 엔드포인트 (복제-글로벌 대체); 통합
build_visibility_filter()쿼리 헬퍼 - 데이터베이스 커넥터 (Phase 1-3): PG/MySQL/Oracle/SQL Server + 중국 레거시 DB에 대한 직접 SQL 액세스; 스키마 자동 검사, AI 주석, 읽기 전용 쿼리 실행, 암호화된 자격 증명, 커넥터당 3개 도구 (
list_tables,describe_table,query) - 평가 센터: 정량적 에이전트 품질 벤치마킹 — 테스트 데이터셋 CRUD (프롬프트 + 예상 동작 + 어설션), 평가 실행 (병렬 실행 + LLM 채점자 + 케이스별 통과/실패/지연/토큰 결과), 자동 폴링을 포함한 결과 뷰어; 마이그레이션
r8t0v2x4z567 - 3가지 모델 역할 (General/Fast/Reasoning) — 계층별 env 구성 격리; 빠른 모델은 더 이상 주 모델 설정을 상속하지 않음
- 구조화된 데이터 및 아티팩트 전달을 위한 일반 문자열 단계 결과를 대체하는
StepOutput데이터클래스 - DAG 실행을 위한 도구 캐시 — 비동기 잠금 스탬피드 방지를 포함한 실행당 동일한 도구 호출 캐시 (
DAG_TOOL_CACHE) - 실패 시 1회 재시도를 포함한 단계별 LLM 검증 (
DAG_STEP_VERIFICATION) - 자동 라우팅: 빠른 LLM이 쿼리를 ReAct 또는 DAG로 분류;
/api/auto엔드포인트; 프론트엔드 3방향 모드 토글 (AUTO_ROUTING) -
Shadow Market Organization + Resource Subscriptions: 기본 제공 Market org (shadow, 자동 참여 없음)는 Platform org를 대체; 마켓플레이스 탐색 및 명시적 구독을 통해 발견된 리소스 (풀 모델); Market API로 공유 리소스 구독; Market에 게시하려면 항상 검토 필요; 리소스 구독 테이블; 글로벌 가시성을 대체하는 조직 기반 리소스 공유 -
Agent Auto-discovery and Sub-agent Binding: 에이전트의discoverable플래그;sub_agent_ids화이트리스트; 전문가 에이전트에 작업을 위임하기 위한 CallAgentTool -
MCP Server Credentials + Per-User Override:mcp_server_credentials테이블;PUT /api/mcp-servers/{id}/my-credentials엔드포인트; 자격 증명 폴백 동작을 위한allow_fallback플래그 -
Connector/KB Toggle: 리소스 일시 중단/재개를 위한POST /api/connectors/{id}/toggle및POST /api/knowledge-bases/{id}/toggle -
Standalone KB Conversations: 에이전트 바인딩 없이 직접 KB 채팅을 위한 대화의kb_ids필드
v0.8 (2026-03-20) — 연결기 선언형 구성 + 점진적 공개
- 데이터베이스 연결기: 직접 SQL 접근 (PostgreSQL, MySQL, Oracle) (v0.7.x에서 출시 — Phase 1-3)
- RBAC: 사용자/역할별 연결기 접근 제어 (v0.7.x에서 출시 — 조직 시스템 + 3계층 가시성)
- 연결기 자격증명 암호화 + 사용자별 재정의:
connector_credentials테이블,CREDENTIAL_ENCRYPTION_KEY를 통한 Fernet 암호화,allow_fallback플래그,GET/PUT/DELETE /my-credentials엔드포인트, 채팅 도구 로딩 시 사용자별 자격증명 해석 - 게시 검토 UI: 조직 수준 게시 검토 시스템 — 조직별 검토 토글, ReviewsSheet 승인/거부 워크플로우, 리소스 카드의 상태 배지, 게시 대화에서 검토 공지, 거부된 리소스 재제출
- 연결기 점진적 공개 (Phase 1-2): 단일
ConnectorMetaTool이 작업별 도구를 대체; 시스템 프롬프트는 경량 스텁만 수신 (이름 + 1줄 설명, 연결기당 ~30 토큰 vs 작업당 ~250 토큰); 에이전트가discover(connector)를 호출하여 필요 시 전체 작업 스키마 로드 — 스키마는 모델이 연결기를 선택할 때만 로드되어 캐싱을 위해 프롬프트 접두사를 안정적으로 유지. 최신 에이전트 프레임워크에서 일반적인 지연 도구 로딩 패턴을 따름.execute부명령; 하위 호환성을 위한 기능 플래그. - 에이전트 스킬 시스템 + 컴팩트 지시사항: 에이전트 지시사항을 위한 온디맨드 스킬 로딩 —
Skill모델 (이름, 콘텐츠/SOP, 선택적 스크립트)이 에이전트에 첨부됨; 시스템 프롬프트에서 이름으로만 참조 (~스킬당 10 토큰); 에이전트가read_skill(name)을 호출하여 필요 시 전체 콘텐츠 로드. ConnectorMetaTool의 점진적 공개를 지시사항 수준에 적용하여 대화당 지시사항 토큰 비용을 ~80% 감소. “지시사항 + 도구 + 스킬” 차별화 스토리 활성화. 또한 Agent 모델에compact_instructions필드 추가 — 컴팩팅 시ContextGuard에 주입된 에이전트별 압축 우선순위 목록 (예: “주문 ID와 금액 보존, 원본 API 응답 삭제”), 현재 정적 일반 프롬프트 대체. 최신 에이전트 프레임워크에서 널리 채택된 컴팩트 지시사항 규칙을 따름. - 연결기 가져오기/내보내기: 연결기 템플릿 공유
- 연결기 포크: 기존 연결기 복제 + 커스터마이징
- 워크플로우 Phase 2 노드: Iterator, Loop, VariableAggregator, ParameterExtractor, ListOperation, Transform, DocumentExtractor, QuestionUnderstanding, HumanIntervention — 전체 프론트엔드 + 백엔드 + 150개 신규 테스트 (총 275개)를 포함한 9개 고급 노드 유형. 지수 백오프를 포함한 노드 재시도, 안전한 표현식 평가. 성공률 막대가 있는 통계 패널. 12개 기본 제공 템플릿. 창 컨텍스트 메뉴 (붙여넣기, 모두 선택, 보기 맞춤, 자동 레이아웃).
- 워크플로우 Phase 3 노드: SubWorkflow + ENV — 2개 신규 노드 유형 (총 25개 노드), 14개 신규 테스트 (총 306개), 14개 기본 제공 템플릿. SubWorkflow: 대상 워크플로우 선택, 변수 매핑, 무한 재귀 방지를 위한 구성 가능한 깊이 제한을 포함한 전체 DB 기반 중첩 워크플로우 실행기. ENV: 키 선택기 및 폴백 기본값을 포함한 암호화된 환경 변수 읽기. 전체 프론트엔드 (노드 컴포넌트, 구성 패널, 팔레트 항목, 미니맵 색상). 노드별 실행 통계 패널 (성공률, 소요 시간, 실패 횟수 최악 우선 정렬).
getNodeStatsAPI 클라이언트 +NodeStatEntry유형. 키보드 단축키 대화 (?키). - 워크플로우 예약 트리거: 시간대, 기본 입력, 다음 실행 시간 계산을 포함한 워크플로우별 cron 구성. 사전 설정 cron 버튼, 30개 트리거 테스트.
- 워크플로우 API 트리거: 사용자 인증 없이 외부 실행을 위한 워크플로우별 공개 API 키 (
wf_접두사), 속도 제한 포함. API 키 관리 대화 (생성/재생성/취소, 트리거 URL, cURL/JS 예제). - 워크플로우 배치 실행: 최대 100개 입력 세트, 구성 가능한 병렬 처리 (1-10), 항목별 결과 축소 가능, JSON 내보내기를 포함한
POST /batch-run. 14개 배치 실행 테스트. - 워크플로우 실행 로그 뷰어: 실행 패널의 실시간 시간순 SSE 이벤트 스트림 (타임스탬프, 색상 코딩 배지, 이벤트 유형 필터 토글).
- 워크플로우 실행 통계: 백엔드가 GROUP BY 부쿼리를 통해 배치로 실행 횟수 및 성공률 가져오기; 프론트엔드가 색상 코딩 성공률 표시기를 포함한 워크플로우 카드에 통계 표시.
- 워크플로우 스케줄러 데몬: 60초마다 만료된 cron 기반 워크플로우를 폴링하는 백그라운드 비동기 서비스. Croniter 시간대 지원, 세마포어 동시성,
last_scheduled_at추적, 웹훅 전달. 14개 테스트. - 워크플로우 가져오기 충돌 해석기: 가져오기 중 미해결 에이전트/연결기/KB/MCP 참조 감지. 가시성 필터링을 포함한 배치 DB 쿼리, 프론트엔드 토스트 경고. 17개 테스트.
- 워크플로우 테스트 노드 실행: 모의 변수를 포함한 격리된 단일 노드 테스트, 편집기에 통합 (구성 패널 테스트 버튼 + 컨텍스트 메뉴). 23개 테스트.
- 워크플로우 버전 비교: 노드/엣지 변경 감지, 색상 코딩 표시기 (추가됨/제거됨/수정됨)를 포함한 나란히 청사진 비교.
- 워크플로우 실행 관리: 개별 실행 삭제 (
DELETE /runs/{run_id}) 및 완료된 모든 실행 삭제 (DELETE /runs), 프론트엔드 확인 대화 포함. - 워크플로우 실행 재생 오버레이: 실행 기록의 “캔버스에서 보기” 버튼으로 캔버스에 과거 실행 결과를 오버레이하여 재실행 없이 노드별 상태 및 출력 표시.
- 워크플로우 즐겨찾기/고정: 워크플로우를 목록 상단에 고정하기 위해 별 표시/고정, localStorage 지속성 포함.
- 워크플로우 실행 기록 내보내기: 전체 실행 메타데이터 및 노드별 결과를 포함한 JSON 파일 다운로드로 실행 기록 내보내기.
- 관리자 워크플로우 관리: 사용자 전체 워크플로우 관리를 위한 관리자 패널 탭 — 목록, 활성/비활성 토글, 확인을 포함한 삭제. 감사 로깅을 포함한 삭제, 토글, 게시를 위한 배치 엔드포인트.
- 워크플로우 템플릿 시스템: 관리자 CRUD, 공개 목록/복제 API, 첫 시작 시 자동 삽입되는 5개 시드 템플릿을 포함한
WorkflowTemplateORM 모델. - 워크플로우 인라인 검증 배지: 편집 중 즉각적인 시각적 피드백을 위해 오류/경고 도구 설명을 포함한 캔버스의 실시간 노드별
ValidationBadge. - 워크플로우 실행 추적 뷰어: 엔진
trace_level매개변수 및 단계별 디버깅을 위한 노드별 변수 스냅샷을 포함한 타임라인 기반 추적 뷰어 Sheet. - 워크플로우 속도 제한 및 시간 초과: 사용자별
WorkflowRateLimiter(슬라이딩 윈도우 10 실행/분, 3개 동시) 및 기본 10분 전역 실행 시간 초과. - 워크플로우 청사진 시스템: 다단계 자동화 청사진 설계 및 실행을 위한 시각적 워크플로우 편집기 —
Workflow/WorkflowRunORM 모델, 전체 CRUD + SSE 실행 API, 가져오기/내보내기, 복제, 청사진 검증 엔드포인트, 위상 정렬 + 세마포어 기반 동시성 + 조건 분기 및 12개 노드 유형 (시작, 종료, LLM, ConditionBranch, QuestionClassifier, Agent, KnowledgeRetrieval, Connector, HTTPRequest, VariableAssign, TemplateTransform, CodeExecution)을 포함한WorkflowEngine,{{node_id.output}}보간 및env.*네임스페이스를 포함한VariableStore, 노드별 시간 초과 및 고급 구성 UI를 포함한 노드별 오류 전략 (STOP_WORKFLOW / CONTINUE / FAIL_BRANCH), 드래그 앤 드롭 팔레트 + 노드 구성 패널 + 변수 선택기 콤보박스 + 엣지에 노드 추가 + 자동 레이아웃 (ELK.js) + 실행 기록 Sheet를 포함한 React Flow v12 시각적 편집기, 링 기반 실행 상태 스타일링 및 애니메이션 엣지 전환을 포함한 Dify 스타일 컴팩트 노드 디자인, 템플릿 선택기 대화 및GET /templates+POST /from-templateAPI를 포함한 4개 기본 제공 시작 템플릿 (단순 LLM 체인, 조건부 라우터, 지식 증강 QA, HTTP API 파이프라인), 통계 엔드포인트,?run=trueURL 매개변수 자동 열기, 부프로세스 기반 코드 실행 보안, 105개 테스트 스위트 (템플릿, eval 네임스페이스 평탄화, 청사진 검증 경고, 노드/엣지 삭제, 가져오기/내보내기/복제, 교착 상태 감지, 다중 조건 분기) - 작업 감사: 누가 무엇을 했는지에 대한 상세 로깅 — 관리자 검토 로그 감
v0.8.1 (2026-03-29) — 점진적 공개 성숙도 + ReAct 강화
- DB 커넥터(
DatabaseMetaTool), MCP 서버(MCPServerMetaTool), 온디맨드 도구 로딩(request_tools메타 도구)을 위한 점진적 공개 - DAG 품질 개선(5가지 개선: 모델 업그레이드, 스킬 자동 발견, 인용 검증자, 구조화된 콘텐츠 보존, 도메인 인식 라우팅)
- ReAct의 도메인 모델 에스컬레이션(전문 도메인이 추론 모델로 자동 에스컬레이션)
- 모델별 Native Function Calling 토글(
tool_choice_enabled) - ReAct 사이클 감지(결정론적 중복 도구 호출 방지)
- ReAct 완료 체크리스트(도구 사용 시 사전 답변 검증)
- Resource Fork Phase 1(계보 추적을 포함한 MCP 서버 + 스킬 포크 엔드포인트)
- 워크플로우 연결 종속성 자동 구독(재귀적 하위 워크플로우 종속성 해결)
- 사전 구축된 솔루션 템플릿(첫 등록 시 마켓에 시드된 8개 수직 솔루션)
- 관리자 알림 개선(시간대 인식, 마스터 스위치, SMTP Reply-To)
- 턴별 토큰 예산 서킷 브레이커(
REACT_MAX_TURN_TOKENS) - 중앙화된 도구 절단, 동적 시스템 프롬프트 예산 책정
- 파일 첨부 다운로드, 중복 메시지 제출 수정
v0.8.2 (2026-04-10) — 에이전트 코어 강화 + 비전 문서
- 에이전트 코어 Phase 0 — 컴팩트 프롬프트가 9섹션 구조화 형식으로 업그레이드됨; 빈 도구 결과 보호(
(no output)대신 설명 메시지); 반복 방지 프롬프트 + 사이클 감지 임계값을 2로 낮춤; 도메인 분류기 + 사전 비행 DB 구성 병렬화(요청당 400–1100ms 절감); SSEend이벤트는 답변 직후 전송되며, 제목/제안은 백그라운드 작업으로 이동 - 에이전트 코어 Phase 1 (컨텍스트 안티-블로트) —
MicroCompact규칙 기반 이전 도구 결과 정리(마지막 6개 유지);REACT_TOOL_RESULT_BUDGET=40000집계 상한; 컨텍스트 오버플로우 시 반응형 컴팩트(예산의 50%로 자동 컴팩트 후 재시도, 크래시 대신) - 에이전트 코어 Phase 2 (속도) — 키워드 기반 도구 사전 선택(명확한 일치 시 LLM 호출 건너뜀, 200–500ms 절감);
SharedHttpClientLLM 연결 풀링; 답변이 200토큰 이상일 때 완료 확인 건너뜀;FallbackLLM은 기본+빠른 모델을 래핑하며 429/503/529/연결 오류 시 자동 페일오버 - 지능형 문서 처리(비전 인식) — 적응형 문서 처리: PDF 페이지는 비전 지원 모델(GPT-4o, Claude 3/4, Gemini)을 위해 PyMuPDF를 통해 이미지로 렌더링되며, 텍스트 전용 폴백은 pdfplumber 사용. 모델별
supports_vision플래그.DOCUMENT_PROCESSING_MODE,DOCUMENT_VISION_DPI,DOCUMENT_VISION_MAX_PAGES를 통한 모드. DOCX/PPTX 포함 이미지 추출. 대화 턴 전체에서 다중 턴 비전 지속성. 스마트 PDF 처리(텍스트 풍부 페이지는 텍스트 + 이미지 추출; 스캔된 페이지는 전체 페이지 PNG로 렌더링).--network=none코드 실행을 위한 일반적인 데이터 과학 패키지가 포함된 사전 구축 샌드박스 이미지(Dockerfile.sandbox) - 리소스 포크 완료 — 에이전트/커넥터/워크플로우 포크 엔드포인트 추가, 5가지 유형 계보 추적 완료(KB 포크 제거 — 본질적으로 사용자 로컬)
- 파일 무결성 가드레일 — 시스템 프롬프트 규칙은 대상 파일을 읽을 수 없을 때 에이전트가 관련 없는 파일 내용을 대체하는 것을 방지; 업로드된 파일은 이제 메시지 컨텍스트에
file_id를 포함하여 직접read_uploaded_file액세스 가능
v0.8.3 (2026-04-16) — 범용 문서 변환 + 에이전트 코어 Phase 3
- 범용 문서 변환 (
convert_to_markdown+ OCR) — Microsoft MarkItDown을 래핑하는 기본 제공 에이전트 도구이며, PDF, Word, Excel, PowerPoint, HTML, JSON, CSV, XML, ZIP, EPUB, Outlook .msg, 이미지, 오디오, YouTube URL을 Markdown으로 변환합니다.LiteLLMOpenAIShim은 모든 비전 지원 LLM(Claude, Gemini, Bedrock, Azure)을 통해 OCR을 활성화합니다. 텍스트 전용 폴백으로 회귀 없이 비전 인식 RAG 수집을 지원합니다.LLM_SUPPORTS_VISION환경 변수로 옵트아웃 가능 - 에이전트 코어 Phase 3 (런타임 불변성 강화) — 대화 복구(끊어진
tool_use자동 복구); 구조화된 컴팩트 작업 카드(WorkCard컴팩션 라운드 간 타입 병합); 턴 레벨 프로파일러(REACT_TURN_PROFILE_ENABLED); 사용자별 속도 제한(LLM_RATE_LIMIT_PER_USER);tool_calls가 있는 빈 콘텐츠 어시스턴트 메시지가 더 이상 삭제되지 않음
v0.8.4 (2026-04-17) — 프롬프트 캐시 + 추론 정확성
- 시스템 프롬프트 섹션 레지스트리 및 캐시 중단점 — 메모이제이션된
PromptRegistry는 시스템 프롬프트를 안정적인 접두사 + 동적 접미사로 분할합니다. 캐시 가능 제공자(Claude, Bedrock Anthropic, Vertex Claude)는 접두사에cache_control: {"type": "ephemeral"}을 수신하여 턴당 입력 토큰 약 60~80% 절감을 달성합니다. 캐시 불가능 제공자는 단일 연결된 메시지를 받습니다(동작 변화 없음). - 프롬프트 캐시 관찰성 —
cache_read_input_tokens및cache_creation_input_tokens은UsageSummary→TurnProfiler→done_payload.cache필드를 통해 추적됩니다. 턴당 구조화된turn_cache로그 라인입니다. 릴레이 캐시 신뢰성 검증으로도 작동합니다. - 대화 복구 MVP — 합성
tool_result행은 중단된 턴 이후에도 유지됩니다.POST /chat/resume은 단조 커서에서 캐시된 SSE 이벤트를 재생합니다. 프론트엔드useSseResume훅은 지수 백오프(300ms → 1s → 3s, 최대 3회 시도)로 자동 재연결하고 “재연결 중…” 표시기를 표시합니다. - 서명이 포함된 추론 블록 지속성 —
reasoning_content+ Anthropicsignature는metadata_["thinking"]에 유지되고 후속 턴에서 재생됩니다. Claude 4 다중 턴 대화에서 HTTP 400 서명 불일치를 수정합니다. - 제공자 인식 추론 재생 정책 —
core/prompt/reasoning.py의 중앙화된reasoning_replay_policy()는 제공자 계열별 직렬화를 제어합니다. Claude는 서명이 포함된 추론 블록을 재생합니다. DeepSeek-R1/Qwen-QwQ/Gemini-thinking/o-series는 아웃바운드에서reasoning_content를 삭제합니다(이전에는 누출되어 제공자 KV 캐시를 손상시키고 API 문서를 위반했음).
v0.8.5 (2026-04-23) — Channel Integration + Hook System + Contributor i18n
- Feishu Channel (Phase 1 subset) — Org-scoped
Channel리소스(Fernet 암호화 자격증명 포함);FeishuChannel은 대화형 카드 전송 + 콜백 지원(서명 검증 + URL 챌린지); Settings → Channels 관리 UI(목록, 더티 상태 보호 기능이 있는 생성/편집, 복사 가능한 콜백 URL이 있는 상세 정보, 테스트 전송); CRUD API(/api/channels) 및 이벤트 콜백 엔드포인트(/api/channels/{id}/callback). 2026-04-24 로드쇼를 위해 조기 출시 - Agent Hook System (ReAct + DAG 런타임에서 실시간 작동) —
src/fim_one/core/hooks/의PreToolUseHook/PostToolUseHook추상화;model_config_json에서hooks.class_hooks를 선언하는 에이전트는 채팅 세션당 훅이 인스턴스화되고 등록됨. 첫 번째 소비자FeishuGateHook은 에이전트가requires_confirmation=True도구를 호출할 때 연결된 Feishu 그룹에 승인/거부 카드를 게시하고, 실행을 차단한 후 판정에 따라 재개하거나 중단 - 구성 가능한 확인 게이트(인라인 또는 통로) — 모든 에이전트는 세 가지 라우팅 모드(자동 / 인라인만 / 통로만), 승인자 범위 선택기(개시자 / 소유자 / 조직의 모든 사람), 도구별 재정의, 명시적 승인 통로 선택기가 있는 승인 섹션을 가짐. 자동 모드는 연결된 통로가 없을 때 인라인 승인 카드로 우아하게 폴백.
POST /api/confirmations/{id}/respond는 Feishu 웹훅과 단일 결정 기록 경로 공유 - 에이전트별 작업 완료 알림 — 장시간 실행되는 ReAct 또는 DAG 에이전트는 작업이 완료될 때 조직의 통로에 요약 카드를 푸시할 수 있음. 일반 아웃바운드 알림 패턴의 첫 번째 소비자
- Hook 승인 연습장 — Channels 상세 정보 시트에는 전체 프로덕션 경로를 실행하는 “테스트 승인 흐름” 작업이 있음(진정한
ConfirmationRequest행, 실제 Feishu 콜백, 상태 전환) — 프로덕션 훅이 사용하는 동일한 코드 경로 - 기여자 친화적 i18n CI 폴백 —
.github/workflows/i18n-sync.yml은 PR 병합 후 마스터에서 EN → ZH/JA/KO/DE/FR로 번역하고[skip ci]로 자동 커밋; 기여자는 더 이상 로컬에서LLM_API_KEY가 필요하지 않음. 사전 커밋 로케일 편집 가드는 생성된 로케일 파일(ALLOW_LOCALE_EDIT=1정당한 번역 수정을 위한 재정의)에 대한 수동 편집을 거부. 스모크 테스트 푸시를 통해 종단 간 검증됨 - Exa 통합 문서 — 전체 Exa 검색 표면(신경망 / 빠름 / 심층 추론 / 즉시), 필터링, 콘텐츠 검색, 세 가지 조정된 사전 설정을 다루는 첫 번째 클래스 Exa 페이지가 있는 전용 통합 섹션
- Xinchuang (信创) 데이터베이스 지원 — 데이터베이스 커넥터는 이제 PostgreSQL/MySQL과 함께 KingbaseES (人大金仓), HighGo (瀚高), DM8 (达梦)을 나열. PG 호환 드라이버는
asyncpg재사용; DM8은dmPython사용.scripts/test_xinchuang_dbs.py는 CLI에서 실시간 연결 확인 - Channels + Hook System 아키텍처 문서 —
docs/architecture/hook-system.mdx는 세 가지 훅 포인트를 설명하고 FeishuGateHook을 종단 간 안내; 기존 아키텍처 페이지는 교차 링크; README는 메시징 통로를 첫 번째 클래스 기능으로 나열 - 강화 — 중복된 Feishu 콜백 클릭은 이중 결정 대신 교체 카드 생성; 동시 콜백 클릭은 조건부
UPDATE ... WHERE status='pending'행 개수 확인을 통해 해결; 보류 중인 승인은 백그라운드 스위퍼를 통해CHANNEL_CONFIRMATION_TTL_MINUTES(기본값 24시간) 후 자동 만료; Settings → Channels는 조직 역할 준수(구성원은 읽기 전용 UI 표시); 병렬 도구 호출 집계기는 모든 델타에 대해index=0을 재사용하는 제공자 처리; 세션 만료 리디렉션은 쿼리 문자열 보존
v0.8.6 (2026-05-08) — Stripe 결제 + 개선사항
- Stripe 결제 MVP — Free + Pro 티어; Checkout, Customer Portal, webhook 라이프사이클;
/settings?tab=billing; 관리자 플랜/구독 CRUD; 할당량 적용이 각 사용자의 플랜을 존중 - 관리자 제어 결제 기능 플래그 —
system_settings.billing_enabled가 전체 Stripe 파이프라인을 제어하므로 Stripe 자격증명이 없는 프라이빗 배포에서는 작동하지 않는 결제 UI가 표시되지 않음 - 사용자별 무제한 할당량 — 비어있으면 전역 기본값을 상속,
0은 무제한 부여; 이전에는 둘 다 동일한 상태로 축소됨 - 번역 용어집을 단일 정보 소스로 —
scripts/translation-glossary.md가 로케일별 규칙을 통합; pre-commit이 생성된 로케일 파일의 수동 편집을 무조건 거부 - 라이선스 + 준거법이 FIM Labs Pte. Ltd. (싱가포르)로 이전; SIAC 중재(영어); 새로운 최상위
NOTICE파일 - Playground 후속 제안 복원, 에이전트별 옵트인
- 안정성 수정 — strict-alternation 제공자 히스토리, 병렬 도구 호출 경계 감지, 바운드되지 않은 에이전트 확인 흐름, 채널 역할 게이팅, 재시도 중복 제거, 거절 후 패러프레이즈 없음
v0.8.7 (2026-06-10) — 보안 강화 + Guardrails v0 + 청구 정확성
- JWT 토큰 타입 제한 — 동일하게 서명된 모든 토큰(임시/새로고침/티켓)이 API 및 SSE 엔드포인트를 인증할 수 있는 2FA 우회 문제 해결
- OAuth 강화 — 이메일 자동 연결은 제공자 확인 이메일 필요(계정 탈취 방지); OAuth 새로고침 토큰은 해시되어 저장되므로 세션 회전 작동
- 콘텐츠 guardrails v0 — 입력/출력 트립와이어 레이어(
core/agent/guardrail); jailbreak 탐지기 + 최대 길이 출력 guardrail 포함, 환경 변수로 구성 -
file_ops.apply_patch— 퍼지 공백 일치를 사용한 V4A diff 패치,find_replace보완 - 청구 주기 정확성 — 할당량은 구독 기념일에 재설정(달력 월이 아님); 갱신은 권위 있는 Stripe 조회를 통해 기간 진행; 사용량 표시는 적용 창과 정렬
- 안정성 개선 — 답변에서 제거된 의사 프로토콜 도구 호출 누수; 조정 가능한 HTTP keep-alive는
APIConnectionError버스트 종료; API 키 사용 통계는 읽기 전용 요청에서 유지 - 청구 탭 시각적 개선 — 전체 너비, 다른 설정 탭과 일관성
v0.8.8 (2026-06-22) — SSRF 강화 + 안정성 및 추론 수정
- SSRF 강화 — 차단 목록이 IPv4 매핑 IPv6(
::ffff:인스턴스 메타데이터 우회) 래핑 해제; MCP SSE/Streamable-HTTP 서버 URL이 생성 및 연결 시 SSRF 검증됨 - LLM 안정성 — 공유 HTTP 풀이 LiteLLM 클라이언트 캐시 제거 후 자동 복구; 채팅이 스트림을 즉시 전송(히스토리는 백그라운드에서 폴딩, 전체 재로드 없음)
- Anthropic 적응형 사고 프로토콜(Opus 4.6+/Sonnet 4.6/Fable 5용) — 확장 사고가 이전 고정 예산 매개변수 400s on 4.7/4.8에서 작동; OpenAI 프록시 오라우팅 시 경고
- 추론 세부 정보가 종단 간 보존됨 — 진정한 최종 답변이 그대로 스트리밍됨; 압축, 컨텍스트 재구성 및 하위 에이전트 단계에서 생존(손실 없는 재합성 없음)
- PreToolUse 강제 실행 훅이 오류 시 폐쇄 실패 — 충돌하는 확인 게이트가 더 이상 호출을 자동으로 허용하지 않음; 비강제 실행 훅은
fail_open을 통해 개방 실패 유지 - 강제 로그아웃 타임스탬프 비교가 UTC 변환으로 정규화됨 + Docker Compose
POSTGRES_*자격증명 재정의(배송된fim:fim기본값 없음)
v0.8.9 (2026-07-08) — 모듈 슬림화 + 공유 수렴 + 승인 강화
- 스킬 & 워크플로우는 관리자 모듈 플래그 뒤에 소프트 셸프됨 (기본값 꺼짐) — 코어 전용 부팅; 삭제된 항목 없음, 관리자 → 설정 → 모듈에서 되돌릴 수 있음
- 공유 수렴 — KB 공유 제거됨 (KB는 공유된 에이전트를 통해서만 다른 사용자에게 도달), DB 커넥터는 공유 불가 + 원본 SQL은 소유자 전용, 워크플로우 빌더는 9개 참조 전용 노드로 축소됨
- Feishu 승인 강화 — 카드 클릭은 승인자 신원 적용, 콜백 서명은 폐쇄 실패 + 암호화된 봉투 복호화됨, 승인은 의도하지 않은 채팅으로 라우팅되지 않음
- 사용 시간 접근 재확인 — 공유된 MCP 서버 및 바인딩된 KB는 실행당 재검증됨; 조직을 떠나면 구독 및 저장된 자격증명이 즉시 취소됨
- 에이전트 루프 강화 — 계획 보드, 백그라운드 도구, 증분 DAG 재계획 + 체크포인트 재개, 압축은 도구 쌍 유지, 절단 연속성, 529/504 재시도
-
run_workflow에이전트 도구 + 워크플로우 정확성 — 에이전트 노드는 전체 에이전트를 실행, 확인 게이트는 폐쇄 실패, 커넥터 호출은 접근 확인 및 감사 로깅됨 - 계정 삭제 통합 — 관리자 및 셀프 서비스는 모든 레코드 및 온디스크 파일을 포함하는 하나의 제거 루틴을 통해 진행됨; 조직 소유자는 먼저 소유권을 이전해야 함
- 소유자 자격증명 폴백은 이제 옵트인 (주요 변경) — 커넥터/MCP 서버는 기본값
allow_fallback꺼짐, 기존 행은 뒤집어짐; 자격증명이 없는 폴백 없음 리소스는 도구 집합에서 숨겨짐 - 웹훅/크론 워크플로우 실행은 소유자의 토큰 할당량으로 계량됨 — 계량되지 않은 무료 LLM 트리거 경로는 닫혀 있음
- 리소스 바인딩은 가시성에서 통합됨 — 구독된 커넥터/KB/MCP 서버는 에이전트에 바인딩 가능; 워크플로우 커넥터 단계는 실행자의 접근을 적용함
- 대화 워크스페이스는 채팅에 연결됨 —
workspace://과도한 도구 결과의 오프로드, 예산 절단 구조, 사전 압축 트랜스크립트 스냅샷
계획된 버전
2026-07-08 재계획: FIM One은 에이전트 런타임입니다 — 하나의 커널(ReAct 엔진, 자격증명, 승인 게이트, 감사, 멀티테넌트 조직)이 여러 전달 표면을 지원합니다: Web UI, API, JS embed, MCP output. 모든 표면은 인증, 자격증명, 승인 및 미터링을 위해 동일한 어셈블리 계층을 재사용합니다: 더 많은 프론트엔드, 절대 더 많은 로직은 아닙니다. 단기 방향은 데이터-Q&A(ChatBI) 슬라이스로의 수렴이며, 플랫폼이 아닌 시나리오를 판매합니다.v0.9 — Connector Fences + Scenario Onboarding
목표: 후처리 자산이 완전한 데이터 Q&A 제품으로 조립됨 — 읽기 전용 DB 연결기 + 펜스 + 승인 게이트 + IM 진입점. Tier-1 펜스는 보안 부채를 제품 기능으로 전환함.DB Connector Fences — Tier 1, 세 개의 PR
- PII 열 마스킹 (
ConnectorScopeGuardPreToolUse hook) - 스키마 가시성 — 테이블/열 허용-거부 + 동사 차단 (읽기 전용 적용)
- Fence 감사 가능성 —
ConnectorCallLog의caller_user_id,effective_credential_source,scope_rules_applied - 훅별 구성 전달 (
{"name", "config"}스키마) — ScopeGuard 규칙의 전달자 - 위임 전체에서 승인 게이트 유지 —
call_agent및 워크플로우AGENT노드는 에이전트의 자체 훅을 실행하며 아무것도 실행하지 않음
답변 렌더링
- 최종 답변이 기본적으로 스트리밍됨 — 루프가
finish신호를 통해 전달하고 답변이 라이브 토큰 스트리밍 턴으로 작성됨 - 스트리밍된 마크다운이 블록별로 렌더링됨 — 완료된 블록은 안정적으로 유지되고 반쯤 도착한 인라인 구문이 더 이상 깜빡이지 않음
- 답변이 Mermaid 다이어그램, SVG 도형 및 카드 스타일 비교 테이블을 렌더링하며, 답변, 코드 블록 및 테이블에서 복사/내보내기 가능
- 렌더링된 마크다운이 새니타이제이션됨 — 모델 출력 및 업로드된 파일의 원본 HTML 주입을 차단
- 다이어그램 및 코드 블록을 파일로 다운로드 가능하며, 추론은 라이브 및 과거 대화에서 기본적으로 한 줄 미리보기로 접힘
- 대화 내보내기가 CJK에 맞게 조판됨 — PDF는 실제 글꼴을 포함하고(올바른 간격, 글머리 기호 및 굵게), DOCX는 동아시아 글꼴을 선언하며, 둘 다 동일한 크기 스케일로 표시됨
Workbench UX
- Sidebar reorganized around the chat cluster — conversations directly under New chat/Search, module nav in a compact bottom dock
-
/clearslash command starts a fresh conversation from the input box - Admin model lists support checkbox multi-select with Shift-click ranges and one-request bulk delete
- Running agent steps show generated one-line titles in a single folded header, kept in conversation history
- A newly sent message rises to the top of the transcript, with the answer growing into the space below it
- List pages stagger their cards in on first load, and all animation honours the system reduce-motion preference
- Agents ask clarifying multiple-choice questions mid-run (ask_user_question) — the ReAct turn pauses on an in-chat card and resumes with the answers
- Composer warns when an attached image would reach a text-only model, resolved from the model the turn would actually use
- Unsent composer text, clips and attachments are kept per conversation (and for new chat), surviving refresh, conversation switches and expired sessions
컨텍스트 견고성
- 컨텍스트 예산이 모델 하드 제한보다 8% 낮게 설정되며, 빠른 모델의 윈도우가 일반 예산을 수용할 수 없을 때 시작 시 경고 표시
- 계획 보드 규율: 반복 및 계획 없음 알림, 그리고 열린 계획 항목으로 마무리하면 이제 검증 패스를 강제 실행
- 청크 압축 입력 및 메인 채팅 경로의 모델 인식 예산, 따라서 모든 모델 조합이 윈도우 내에 유지됨
DAG 엔진
- 타입이 지정된 DAG 단계 — 플래너가 순수 변환/합성 단계를
llm_direct로 표시(단일 호출, 도구 루프 없음); 결과는 타입이 지정된 실행 메타데이터를 포함 - Ask-first 목표는 한 라운드에 완료 — 플래너가 설문지를 단계로 전달하고, 분석기가 이를 수락하며, 자동 라우팅이 Standard를 선호
Model Layer
- GPT-5.x는 Responses-API-first로 이동 (tools + reasoning 함께; 404는 chat completions로 폴백); 다른 families는 설계상 completions 유지
- GPT-5.x는 tool rounds 전체에서 reasoning 유지 — native
/v1/responses와 암호화된 reasoning replay,FIM_GPT5_RESPONSES_MODE로 롤백 가능 - 다음 LiteLLM 업그레이드 시 Responses-bridge streaming 사용량 확인 (upstream 오매핑 의심)
- native GPT-5.x 경로가 전체 릴리스를 실행한 후 LiteLLM chat→responses bridge 폐기
시나리오 온보딩
- 첫 실행이 빈 워크벤치 대신 시나리오 템플릿(solution_seeds)에서 시작됨
- 문서 랜딩 페이지가 모듈 참조 대신 세 가지 수직 시나리오 스토리로 시작됨
- 전달된 각 engagement당 하나의 시나리오 템플릿 추출 — 경쟁 우위는 시나리오 자산 × 전달 속도
v0.10 — Two Mouths: JS Embed + IM Inbound
목표: 동일한 커널 및 어셈블리 레이어 위의 두 가지 가장 판매 가능한 전달 표면.- JS bubble / iframe embed — 호스트 시스템에 하나의 스니펫; 익명 방문자 신원 + 빌링 속성은 빌드 전에 결정됨
- Feishu inbound @mention — 에이전트는 그룹에 존재: 데이터 쿼리, 파일 승인, 흐름 추적
- 아웃바운드 패턴: 실패 알림, 예산 경고, 예약된 다이제스트, 에스컬레이션, 감사 영수증
- Feishu를 따르는 WeCom / DingTalk 통로
보류 중 — 신호 게이트
이 항목들을 시작하지 마세요. 트리거가 필요합니다 (재계획 §3 참조): MCP 게이트웨이는 “내 에이전트에 도구를 마운트하세요”라는 비요청 질문 ≥2개를 기다립니다. 채널화는 구현자의 라이선싱 관련 질문을 기다립니다. IdP/OrgSync는 고객 요청을 기다립니다. 나머지는 필요한 배포된 참여를 기다립니다.- MCP 게이트웨이 출력 — 커넥터 검색/실행을 다운스트림 에이전트용 MCP 도구로 역노출
- 채널화 / 화이트라벨 활성화 — 상용 라이선스 경로 이미 준비됨
- Identity Provider 모듈 + Channel 슬림화 — Feishu SSO, 조직 그래프 동기화
- 커넥터 인증 Tier 2 (사용자별 자격증명 필요, 키 바인딩 상태) + Tier 3 (로그인 티켓 교환)
- Public API Phase 2 — 키별 속도 제한/할당량, 버전 관리, SDK, 개발자 포털
- 관찰성 — Agent Trace Layer (Trace/Span 모델, 타임라인 뷰어, OTel 내보내기) + 메트릭 대시보드
- Agent Workspace 나머지 — 인계 노트, 파일 브라우저 UI, 세션 간 회상, 압축 세그먼트 (에이전트가 다시 읽는 grep 가능한 온디스크 요약)
- Guardrails v1 — 주제 벗어남 필터, PII 편집기 출력 가드레일, 에이전트별 가드레일 설정 UI
- Hook System 추가 기능 — 기본 제공 훅,
SessionStart+ 사용자 YAML 훅 - 커넥터 플랫폼 심화 — Progressive Disclosure Phase 3-4, YAML/JSON 커넥터 설정, DB 커넥터 Phase 4 (Oracle / SQL Server / GBase), MCP 연결 풀링
- Prompt 캐시 후속 조치 — Gemini 컨텍스트 캐시 어댑터, 에이전트별
cache_ttl - Hot 중간 스트림 DAG 재개 — SSE 재연결이 실행 중인 턴에 다시 연결됨 (콜드 재시도-재개는 이미 배포됨)
- 에코시스템 — 예약된/이벤트 트리거 에이전트, 워크플로우 트리거 ID 관찰성, 워크플로우별
credential_policy, DB Schema Advanced Builder, 샌드박스 강화 v2
v0.9 사전 계획에서 배포됨
-
인증 및 보안: JWT 토큰 유형 제한 + OAuth 수정 (v0.8.7); PG 시간대 인식 타임스탬프 (v0.8.6); 강제 로그아웃 UTC +POSTGRES_*재정의 + SSRF IPv6 매핑 수정 (v0.8.8); 소유자 폴백 옵트인 + 가시성 통합 바인딩 + webhook/cron 미터링 (v0.8.9) -
공급자 호환성: Anthropic 적응형 사고 + 공유 LLM 풀 자가 치유 (v0.8.8) -
콘텐츠 가드레일 v0: 트립와이어 레이어 + 탈옥 탐지기 (v0.8.7) -
훅 시스템: 스켈레톤 + FeishuGateHook + 승인 연습장 + ReAct/DAG 런타임 (v0.8.5); PreToolUse 강제 실패 폐쇄 (v0.8.8) -
Feishu 통도 Phase 1 + 작업 완료 알림 (v0.8.5) -
run_workflow스마트체 도구 (v0.8.9); 추론 세부 정보 엔드투엔드 보존 (v0.8.8); 작업 영역 도구 출력 오프로딩 채팅에 연결 (v0.8.9) -
스마트체 루프 강화: 계획 보드, LLM 호출 복원력, 백그라운드 도구, 증분 DAG 재계획 + 체크포인트 재개, 압축 도구 쌍 (v0.8.9) -
서킷 브레이커, 워크플로우 실행 보존 정리, 워크플로우 버전 차이 요약(v0.8 / v0.8.1) -
DAG 품질 개선, 도메인 모델 에스컬레이션, 모델별 NFC 토글(v0.8.1) -
DatabaseMetaTool, MCPServerMetaTool, 온디맨드(v0.8.1)request_tools -
워크플로우 연결 종속성 자동 구독, 워크플로우 실제 실행자(v0.8.1) -
ReAct 사이클 감지, 완료 체크리스트(v0.8.1) -
사전 구축 솔루션 템플릿 (8개 수직 번들), 리소스 포크 (MCP/Skill/Agent/Connector/Workflow)(v0.8.1) -
비전 문서 처리 (PDF / DOCX / PPTX), MarkItDown OCR(v0.8.2 / v0.8.3) -
스마트 파일 콘텐츠 주입 +(v0.8)read_uploaded_file -
스마트체 코어 Phase 3: 대화 복구 MVP, 컴팩트 작업 카드, 턴 프로파일러, 사용자별 속도 제한(v0.8.3) -
대화 재개 MVP, 시스템 프롬프트 레지스트리 + 캐시, 사고 블록 지속성, 추론 재생 정책, 캐시 관찰성(v0.8.4)
v1.0 — Hot-Plug + Embeddable
Goal: Zero-restart connector addition, Package ecosystem, and embedded delivery.-
Connector Progressive Disclosure (Phase 5): Semantic-Guided Tool Selection (entity extraction from query → Ontology Registry lookup → connector set reduction; 90%+ token reduction for 50+ connector deployments); Scale mode for batch/ETL connectors; CLI-style universal
connector <name> <action> <params>interface - Cross-Connector Entity Alignment (Ontology Registry) — downgraded 2026-04-21: on-demand custom delivery, not a core capability: define shared entity types (Customer, Order, Asset) with field mappings across connectors; DAGPlanner auto-resolves cross-system JOIN keys; enables cross-connector queries (e.g., “customers in Salesforce who ordered in Shopify”) without hardcoded field names
- Hot-plug connectors: upload OpenAPI spec, AI generates config, live in 5 minutes (no restart)
-
Marketplace Redesign Phase 1 — Solutions + Components: Two-tier Market model (Solutions: Agent/Skill/Workflow; Components: Connector/MCP Server); scope selector (Global Market / org); unified subscription model (org auto-appear removed); KB removed from Market scope; data migration backfills subscriptions for existing org members -
Market Package System: Distributable resource bundles for the Marketplace — replaces per-type “marketplace” with a unified packaging layer.
fim-package.yamlmanifest declares: metadata (name, version, description, author, license, tags,min_fim_version), entry point (primary Skill or Agent), resource list (agents, skills, connectors, KBs, MCP servers, workflows) with config references, inter-package dependencies (semver ranges), required credentials (mapped to connector refs for install-time collection), and user-configurable variables with defaults. Two consumption modes: (1) install — batch-create all resources + auto-wire internal references via ID substitution; installation linked to source for version update notifications;POST /api/market/packages/{id}/install; (2) fork — clone as user-owned editable copies with no update link (this IS the template mode);POST /api/market/packages/{id}/fork. Additional endpoints: publish (POST /api/market/packageswith review workflow), uninstall (DELETE /packages/{id}/uninstallwith dependency check + modified-resource confirmation), version history (GET /packages/{id}/versions), upgrade (POST /packages/{id}/upgradewith per-resource diff preview). Dependency resolver for nested package requirements with conflict detection.PackageInstallationtable tracks installed packages per user with resource ID mapping for uninstall/upgrade. Coexists with individual resource publishing — Package is a composition layer, not a replacement; a single Connector is still publishable standalone. Example dependency tree:Package: contract-review→Skill: contract-review(entry point) →Agent: contract-analyst+Agent: risk-scorer→KB: legal-clauses+Connector: docusign-api+MCP: pdf-extractor+Workflow: contract-approval-flow - Creator Program: Marketplace monetization layer — creator profiles with portfolio pages, per-package analytics (installs, forks, active users, ratings/reviews), affiliate commission tracking when packages drive new subscriptions. Paid package tier with pricing, purchase flow, and approval workflow. Creator dashboard with install trends, revenue reporting, and user feedback. Public creator API for programmatic package publishing (CI/CD for package authors). Community features: package comments, Q&A, changelogs per version
-
Embeddable widget:
<script src="fim-one.js">injected into host page - Page context injection: widget reads host page context (current ID, URL, DOM selectors)
- Advanced triggers: Webhook inbound events; scheduled job enhancements (multi-timezone, calendar-aware)
- Batch execution: process 1000+ items via DAG
- Enterprise security: IP whitelisting, encryption at rest, SSO
- KB Advanced Editor: Builder-mode agent for power users managing large knowledge bases — bulk URL ingestion, duplicate detection, gap analysis, document lifecycle management; extends existing KB AI chat with ReAct tool loop
- Billing access model — instance picks no-subscriptions / included+paid / paid-only, so self-host, SaaS, and charge-from-day-one stay distinct
-
Stripe Billing (v1 MVP — Pro Subscription): Free + Pro two-tier subscription with monthly token quota. Stripe Checkout (hosted) + Customer Portal (self-service) + webhook-driven lifecycle (
checkout.session.completed/customer.subscription.updated|deleted/invoice.payment_succeeded|failed). Soft-cap at quota exhaustion (HTTP 402 + upgrade prompt) — no overage charges in v1. Per-user billing only; Org/Team subscriptions deferred to v3. Prerequisites:-
Data model + SDK groundwork (P1) —(shipped in v0.8.6)billing_plans/subscriptions/stripe_webhook_eventstables, ORM models, Stripe SDK singleton, Free + Pro seeds -
Backend API + webhook handler (P2) —(shipped in v0.8.6)/api/billing/*+/api/webhooks/stripewith signature verification + idempotency; plan-aware quota; hourly lifecycle sweep -
Frontend billing tab + 402 upgrade dialog (P3) —(shipped in v0.8.6)/settings?tab=billingquota display, upgrade CTA,past_duebanner, mid-stream 402 dialog -
Admin plan management (P4) —(shipped in v0.8.6)admin/billing/{plans,subscriptions}CRUD -
Admin-controlled billing feature flag (P5) —(shipped in v0.8.6)system_settings.billing_enabledgates the Stripe pipeline; idempotent activation seeds Free+Pro, sets default plan pointer, backfills users; toggle off/on is pure flag flip after activation - Reconciliation + e2e + go-live (P6) — nightly
subscriptions↔stripe.Subscription.list()reconcile script for missed-webhook recovery; full-stack happy-path / cancel-mid-period / past-due regression tests; switch from test-modestripe_price_idto a liveprice_id; smoke test on staging with a real card.
-
-
Team plan (Stripe seats) — Per-seat pricing via
stripe.Subscription.quantity, integrated with Organization membership. Lets companies subscribe to one team-wide plan with N seats; quota and feature flags resolve through the seat group rather than the individual user. Builds on the v1.0 Stripe MVP and the existing Organization model. -
Group-level token quota for non-billing deployments — Enterprise / private deployments without Stripe configure organization-level token budgets. Quota chain extends to
override > group > plan > default; group resolution usesmax(user_quota, group_quota)so individual VIPs aren’t constrained by the team cap. Lands alongside the Team plan so the same primitives serve both billed and self-hosted topologies.
동결된 기능 (출시됨, 유지보수만 진행)
직교성 전략에 따라 이 기능들은 출시되어 정상 작동하지만 새로운 기능을 추가하지 않습니다(버그 수정만 진행):고려 중 (무기한 연기)
직교성 전략에 따라 이들은 높은 노력이 필요하고 흡수 위험에 직면합니다:버전이 모드와 정렬되는 방식
Resource Allocation (v0.8–v1.0)
The Orthogonality Strategy shapes where effort goes:지표 기반 마일스톤
성공은 다음 지표로 측정됩니다:Open Questions / TBD
- Marketplace moderation: 커뮤니티 패키지와 개별 리소스를 어떻게 검증할 것인가? 패키지 구성에서 자격증명 누출에 대한 자동 스캔? (v1.0)
- Token economics: 다중 사용자, 다중 에이전트 시나리오에 대한 가격 책정 방법? (v1.0)
- Package versioning: 설치된 패키지의 주요 변경 사항 — 마이그레이션 스크립트를 통한 자동 업그레이드인지, 아니면 업데이트마다 수동 승인인지? 의존성 다이아몬드 문제 해결? (v1.0)
- Package pricing: 무료 vs 유료 티어, Creator Program 수수료율, 결제 제공자 통합? (v1.0)
- Package credential UX: 설치 시 자격증명 수집 — 마법사 스타일 단계별 진행인지, 아니면 지연된 설정인지? 동일한 커넥터 유형을 사용하는 패키지 간 자격증명 공유? (v1.0)
- Telemetry opt-out: 개인정보 보호 기본 설정을 어떻게 준수할 것인가? (v0.8)
- Connector versioning: 커넥터 API의 주요 변경 사항을 어떻게 관리할 것인가? (v0.8)
- Rate limiting: 사용자별 워크플로우 속도 제한 배포됨 (슬라이딩 윈도우 10 runs/min, 3 concurrent). 커넥터별 및 에이전트별 속도 제한 TBD (v0.9)
- Connector authorization tier selection: 관리자가 주어진 업스트림 시스템에 어떤 티어가 적용되는지 어떻게 발견할 것인가? 자동 프로브 (사용자별 API 키 시도 → 로그인 티켓으로 폴백 → 공유 DB로 폴백) vs. 커넥터 스펙에서 명시적 선언? “이 커넥터는 Tier 2를 지원하지만 관리자가 Tier 1로 운영하기로 선택했음”을 기술적이지 않은 관리자를 혼동시키지 않으면서 UI에서 어떻게 표현할 것인가? (v0.9)
- Integration vs Connector duality: Feishu 바인딩이 동시에 SSO 제공자이면서 API 호출 표면인 경우, 설정에서 어떻게 표시할 것인가? 자격증명을 공유하는 세 개의 토글이 있는 하나의 객체인지, 아니면 세 개의 별도 바인딩인지? 제거 의미론에 대한 영향 (SSO를 취소하면 커넥터도 종료되는가?) (v0.9)