Skip to content

Latest commit

 

History

History
298 lines (212 loc) · 22.1 KB

File metadata and controls

298 lines (212 loc) · 22.1 KB

FIM One Banner

Python 3.11+ CI License Discord Follow on X

🌐 English | 🇨🇳 中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇩🇪 Deutsch | 🇫🇷 Français

글로벌 × 중국 기업을 위한 올인원 에이전트 플랫폼. 이미 운영 중인 모든 시스템 — 글로벌 SaaS에서 중국 스택까지 — 하나의 에이전트 코어를 통해 연결하세요.

🌐 Website · 📖 Docs · 📋 Changelog · 🐛 Report Bug · 💬 Discord · 🐦 Twitter · 🏆 Product Hunt

Tip

☁️ 설정을 건너뛰고 클라우드에서 FIM One을 시도하세요. 관리형 버전이 cloud.fim.ai에서 라이브 중입니다 — Docker 없음, API 키 없음, 설정 없음. 로그인하고 몇 초 안에 시스템 연결을 시작하세요. 얼리 액세스, 피드백 환영합니다.


개요

글로벌 기업들은 서로 통신하지 않는 ERP, CRM, OA, HR, 재무, 데이터베이스, 지역별 IM 플랫폼 등 다양한 시스템을 운영하고 있습니다. FIM One은 이미 운영 중인 모든 시스템을 하나의 에이전트 코어로 연결하는 올인원 에이전트 플랫폼입니다. 한쪽에는 글로벌 SaaS, 다른 한쪽에는 완전한 중국 스택(Feishu, WeCom, DingTalk, DM, Kingbase 등)이 있습니다. 하나의 두뇌. 모든 시스템. 글로벌 SaaS × 중국 스택.

모드 설명 접근 방식
Standalone 범용 AI 어시스턴트 — 검색, 코드, KB Portal
Copilot 호스트 시스템의 UI에 임베드된 AI iframe / widget / embed
Hub 모든 연결된 시스템 전반의 중앙 AI 오케스트레이션 Portal / API
graph LR
    ERP <--> Hub["🧠 FIM One Agent Core"]
    Database <--> Hub
    Lark <--> Hub
    Hub <--> CRM
    Hub <--> OA
    Hub <--> API[Custom API]
Loading

스크린샷

대시보드 — 통계, 활동 트렌드, 토큰 사용량, 에이전트 및 대화에 대한 빠른 액세스.

Dashboard

에이전트 채팅 — 연결된 데이터베이스에 대한 다단계 도구 호출을 포함한 ReAct 추론.

Agent Chat

DAG 플래너 — LLM이 생성한 실행 계획(병렬 단계 및 실시간 상태 추적 포함).

DAG Planner

데모

에이전트 사용

Using Agents

플래너 모드 사용

Using Planner Mode

빠른 시작

Docker (권장)

git clone https://github.com/fim-ai/fim-one.git
cd fim-one

cp example.env .env
# Edit .env: set LLM_API_KEY (and optionally LLM_BASE_URL, LLM_MODEL)

docker compose up --build -d

http://localhost:3000 을 열어주세요 — 처음 실행할 때 관리자 계정을 만들게 됩니다. 끝입니다.

docker compose up -d          # start
docker compose down           # stop
docker compose logs -f        # view logs

로컬 개발

필수 요구사항: Python 3.11+, uv, Node.js 18+, pnpm.

git clone https://github.com/fim-ai/fim-one.git && cd fim-one

cp example.env .env           # Edit: set LLM_API_KEY

uv sync --all-extras
cd frontend && pnpm install && cd ..

./start.sh dev                # hot reload: Python --reload + Next.js HMR
명령어 시작되는 항목 URL
./start.sh Next.js + FastAPI localhost:3000 (UI) + :8000
./start.sh dev 동일, 핫 리로드 포함 동일
./start.sh dev:api API만, 개발 모드 (핫 리로드) localhost:8000
./start.sh dev:ui 프론트엔드만, 개발 모드 (HMR) localhost:3000
./start.sh api FastAPI만 (헤드리스) localhost:8000/api

프로덕션 배포(Docker, 리버스 프록시, 무중단 업데이트)의 경우 배포 가이드를 참조하세요.

주요 기능

크로스보더 연결성

  • 세 가지 배포 모드 — 독립형 어시스턴트, 임베디드 코파일럿 또는 중앙 허브; 동일한 에이전트 코어.
  • 모든 시스템, 하나의 패턴 — API, 데이터베이스, MCP 서버 연결. 작업은 인증 주입과 함께 에이전트 도구로 자동 등록됩니다. 점진적 공개 메타 도구는 모든 도구 유형에서 토큰 사용량을 80% 이상 감소시킵니다.
  • 데이터베이스 커넥터 — PostgreSQL, MySQL, Oracle, SQL Server 및 대부분의 글로벌 플랫폼이 접근할 수 없는 중국의 일반적인 엔터프라이즈 데이터베이스(DM, KingbaseES, GBase, Highgo). 스키마 내부 검사 및 AI 기반 주석.
  • 세 가지 구축 방법 — OpenAPI 스펙 가져오기, AI 채팅 빌더 또는 MCP 서버 직접 연결.

계획 및 실행

  • 동적 DAG 계획 — LLM이 런타임에 목표를 종속성 그래프로 분해합니다. 하드코딩된 워크플로우 없음.
  • 동시 실행 — 독립적인 단계가 asyncio를 통해 병렬로 실행되며, 최대 3라운드까지 자동 재계획.
  • ReAct 에이전트 — 자동 오류 복구가 포함된 구조화된 추론-행동 루프.
  • 에이전트 하네스 — 프로덕션급 실행 환경: 5계층 토큰 예산 관리를 위한 ContextGuard, 도구 표면을 관리 가능하게 유지하는 점진적 공개 메타 도구, 목표 편향을 방지하는 자기 성찰 루프.
  • Hook 시스템 — LLM 루프 외부에서 실행되는 결정론적 강제. 첫 번째 배포: FeishuGateHook은 민감한 도구 호출을 Feishu 그룹에 게시된 인간 승인 카드 뒤에 배치합니다. 감사 로깅, 읽기 전용 모드 가드, 속도 제한으로 확장 가능(v0.9).
  • 콘텐츠 가드레일 — 3계층 안전: 도구 권한 훅(작업), 자격증명 / SSRF / MCP 인증 확인(프로토콜), 콘텐츠 가드레일(입출력 텍스트). 기본 탈옥 구문 탐지기는 LLM이 호출되기 전에 턴을 중단하여 토큰을 절약하고 채팅에서 명확한 차단 알림을 표시합니다. 출력 가드레일은 FIM_GUARDRAILS_OUTPUT을 통해 선택 사항.
  • 자동 라우팅 — 쿼리를 분류하고 최적의 모드(ReAct 또는 DAG)로 라우팅합니다. AUTO_ROUTING을 통해 구성 가능.
  • 확장된 사고 — OpenAI o 시리즈, Gemini 2.5+, Claude를 위한 사고의 연쇄.
  • 프롬프트 캐시 관찰성 — Anthropic 프롬프트 캐시 read/create 토큰 수가 턴별로 캡처되어 채팅 done 페이로드에 표시되고 로깅되므로 운영자가 캐시 히트를 확인하고 할인을 적용하지 않는 릴레이 스테이션을 감지할 수 있습니다.

워크플로우 및 도구

  • 시각적 워크플로우 편집기 — 12가지 노드 유형, 드래그 앤 드롭 캔버스(React Flow v12), JSON으로 가져오기/내보내기.
  • 스마트 파일 처리 — 업로드된 파일이 자동으로 컨텍스트에 인라인되거나(작은 파일) read_uploaded_file 도구를 통해 필요에 따라 읽을 수 있습니다. 지능형 문서 처리: PDF, DOCX, PPTX 파일은 모델이 비전을 지원할 때 비전 인식 처리 및 임베드된 이미지 추출을 받습니다. 스마트 PDF 모드는 텍스트가 풍부한 페이지에서 텍스트를 추출하고 스캔된 페이지를 이미지로 렌더링합니다.
  • 범용 문서 변환 — 기본 제공 convert_to_markdown 도구는 Microsoft MarkItDown을 통해 PDF / Word / Excel / PowerPoint / HTML / 이미지 / 오디오 / Outlook .msg / EPUB / YouTube 트랜스크립트를 깔끔한 Markdown으로 변환합니다. 비전 지원 LLM은 임베드된 이미지와 스캔된 페이지를 OCR 처리합니다 — Claude, Gemini, Bedrock 및 모든 LiteLLM 지원 제공자와 함께 작동하며, 제공자별 어댑터 코드가 필요하지 않습니다.
  • 플러그인 가능한 도구 — Python, Node.js, 선택적 Docker 샌드박스(CODE_EXEC_BACKEND=docker)를 사용한 셸 실행.
  • V4A 패치 편집find_replace를 넘어 에이전트는 file_ops.apply_patch를 통해 퍼지 공백 일치를 사용하여 라인 청크 패치를 적용할 수 있습니다 — 정확한 부분 문자열 일치가 취약한 다중 라인 편집에 견고합니다.
  • 전체 RAG 파이프라인 — Jina 임베딩 + LanceDB + 하이브리드 검색 + 리랭커 + 인라인 [N] 인용. 비전 인식 수집은 스캔된 PDF 및 Office 임베드된 이미지를 워크스페이스의 기본 비전 LLM을 통해 OCR로 라우팅합니다.
  • 도구 아티팩트 — 풍부한 출력(HTML 미리보기, 파일)이 채팅에서 렌더링됩니다.

메시징 채널 (v0.8)

  • 조직 범위 IM 브릿지 — Slack, Microsoft Teams, Discord, Feishu (Lark), WeCom, DingTalk 전반에 걸친 아웃바운드 메시징을 위한 BaseChannel 추상화. 첫 번째 배포 구현은 Feishu이며, Slack / Teams / WeCom / Email은 v0.9 로드맵의 다음 항목입니다.
  • Fernet 암호화 자격증명 — 앱 시크릿과 암호화 키는 저장 시 암호화되며, 모든 인바운드 콜백은 서명 검증됩니다.
  • 대화형 승인 카드 — 채널 네이티브 GateHook (현재 Feishu, 다음은 Slack/Teams)은 민감한 도구 호출이 발생할 때 그룹에 승인/거부 카드를 게시합니다. 도구는 그룹 멤버가 결정을 누를 때까지 차단됩니다. 커스텀 워크플로우 엔진 없이 인간 개입 승인을 구현합니다.
  • 에이전트당 구성 가능한 승인 라우팅 — 세 가지 모드(자동 / 인라인만 / 채널만)와 승인자 범위 선택기(개시자 / 에이전트 소유자 / 조직 멤버). 하나의 감사 경로는 결정이 채팅에서 나왔든 채널에서 나왔든 approver_user_iddecided_at을 기록합니다. 자동 모드는 채널이 연결되지 않은 경우 인라인으로 폴백되므로 에이전트는 항상 실제 승인 UX를 얻습니다.
  • 작업 완료 알림 — 장시간 실행되는 ReAct 또는 DAG 에이전트는 작업이 완료될 때 조직의 채널에 요약 카드를 푸시할 수 있습니다. 설정 → 에이전트 → 알림에서 에이전트별로 구성 가능합니다.
  • 찾아보기 및 선택 UI — 공급업체 콘솔에서 원본 채널 ID를 복사할 필요가 없습니다. 포털은 IM 플랫폼의 API를 호출하고 그룹 선택기를 표시합니다.

플랫폼

  • 멀티테넌트 — JWT 인증, 조직 격리, 사용량 분석 및 커넥터 메트릭을 포함한 관리자 패널. Redis 인터럽트 브로커를 통한 WORKERS=N을 이용한 멀티워커 지원으로 워커 간 릴레이 가능.
  • 마켓플레이스 — 智能体, 커넥터, KB, 스킬, 워크플로우 게시 및 구독.
  • 글로벌 스킬(SOP) — 모든 사용자를 위해 로드되는 재사용 가능한 운영 절차; 프로그레시브 모드는 토큰을 약 80% 감소.
  • Stripe 결제 및 사용자별 할당량 — Stripe Checkout + Customer Portal을 통한 선택적 Pro 플랜 업그레이드. 할당량 체인(사용자별 재정의 → 플랜 계층 → 시스템 기본값)이며 0은 무제한. 관리자 기능 플래그가 전체 파이프라인을 제어; Stripe 없는 프라이빗 배포는 깔끔하게 유지.
  • 평가 센터 — 테스트 데이터셋 관리, LLM 등급 판정을 통한 병렬 평가 실행, 사례별 통과/실패/지연시간/토큰 결과 뷰어(자동 폴링 포함).
  • 대화 복구 — 합성 tool_result 행이 중단된 턴 이후에도 유지; 클라이언트는 지수 백오프 및 "재연결 중…" 표시기를 통해 /chat/resume으로 끊어진 SSE 스트림에 자동 재연결.
  • 6개 언어 — EN, ZH, JA, KO, DE, FR. 번역은 완전히 자동화됨 — 단일 용어집이 모든 LLM 번역 호출(JSON, MDX, README)을 주도하며, 사전 커밋 훅이 생성된 로케일 파일의 수동 편집을 거부.
  • 첫 실행 설정 마법사, 다크/라이트 테마, 명령 팔레트, 스트리밍 SSE, DAG 시각화.

심화 학습: 아키텍처 · 훅 시스템 · 채널 · 실행 모드 · FIM One을 선택하는 이유 · 경쟁 환경

아키텍처

graph TB
    subgraph app["Application Layer"]
        a["Portal · API · iframe · Feishu · Slack · WeCom · DingTalk · Teams · Email · Contract Systems · Custom Webhooks"]
    end
    subgraph mid["FIM One"]
        direction LR
        m1["Connectors<br/>+ MCP Hub"] ~~~ m2["Orch Engine<br/>ReAct / DAG"] ~~~ m3["RAG /<br/>Knowledge"] ~~~ m5["Hook System<br/>+ Channels"] ~~~ m4["Auth /<br/>Admin"]
    end
    subgraph biz["Business Systems"]
        b["ERP · CRM · OA · Finance · Databases · Contract Mgmt · Custom APIs"]
    end
    app --> mid --> biz
Loading

각 커넥터와 채널은 표준화된 브리지입니다 — 에이전트는 SAP, 커스텀 계약 시스템, 또는 Feishu 그룹과 통신하는지 여부를 알거나 신경 쓰지 않습니다. Hook 시스템은 LLM 루프 외부에서 플랫폼 코드를 실행하여 승인, 감사 및 속도 제한을 처리합니다. 채널은 외부 IM 플랫폼으로 아웃바운드 알림 및 승인 카드를 전달합니다. 자세한 내용은 커넥터 아키텍처, Hook 시스템, 채널을 참조하세요.

설정

FIM One은 모든 OpenAI 호환 제공자와 함께 작동합니다:

제공자 LLM_API_KEY LLM_BASE_URL LLM_MODEL
OpenAI sk-... (기본값) gpt-4o
DeepSeek sk-... https://api.deepseek.com/v1 deepseek-chat
Anthropic sk-ant-... https://api.anthropic.com/v1 claude-sonnet-4-6
Ollama (로컬) ollama http://localhost:11434/v1 qwen2.5:14b

최소 .env:

LLM_API_KEY=sk-your-key
# LLM_BASE_URL=https://api.openai.com/v1   # default
# LLM_MODEL=gpt-4o                         # default
JINA_API_KEY=jina_...                       # unlocks web tools + RAG

전체 참고: 환경 변수

기술 스택

계층 기술
Backend Python 3.11+, FastAPI, SQLAlchemy, Alembic, asyncio
Frontend Next.js 14, React 18, Tailwind CSS, shadcn/ui, React Flow v12
AI / RAG OpenAI 호환 LLM, Jina AI (embed + search), LanceDB
Database SQLite (dev) / PostgreSQL (prod)
Messaging BaseChannel 추상화 (Slack, Teams, Discord, Feishu/Lark, WeCom, DingTalk), Fernet 암호화 자격증명, HMAC 서명 검증
Infra Docker, uv, pnpm, SSE 스트리밍

개발

uv sync --all-extras          # install dependencies
pytest                         # run tests
pytest --cov=fim_one           # with coverage
ruff check src/ tests/         # lint
mypy src/                      # type check
bash scripts/setup-hooks.sh    # install git hooks (enables auto i18n)

로드맵

전체 로드맵에서 버전 히스토리 및 계획된 기능을 확인하세요.

FAQ

배포, LLM 제공자, 시스템 요구사항 등에 대한 일반적인 질문 — FAQ를 참조하세요.

기여하기

모든 종류의 기여를 환영합니다 — 코드, 문서, 번역, 버그 리포트, 아이디어 등.

Pioneer Program: PR이 병합된 첫 100명의 기여자는 Founding Contributors로 인정되며, 영구적인 크레딧, 배지, 우선 이슈 지원을 받습니다. 자세히 알아보기 →

빠른 링크:

보안: 취약점을 보고하려면 [SECURITY] 태그와 함께 GitHub issue를 열어주세요. 민감한 공개의 경우, Discord DM을 통해 저희에게 연락해주세요.

활동

Alt

기여자

이 훌륭한 분들께 감사드립니다 (이모지 키):

Tao An
Tao An

💻 🚧 🎨 📖 📆 🤔 🚇
Teo Gonzalez Collazo
Teo Gonzalez Collazo

💻 ⚠️
Houx.
Houx.

💻 🐛
Chenying Wang
Chenying Wang

💻
Joshua Medvinsky
Joshua Medvinsky

🛡️

이 프로젝트는 all-contributors 명세를 따릅니다. 모든 종류의 기여를 환영합니다!

라이선스

FIM One Source Available License. 이는 OSI 승인 오픈 소스 라이선스가 아닙니다.

허용: 내부 사용, 수정, 라이선스 유지 배포, 경쟁하지 않는 애플리케이션에 임베딩.

제한: 멀티테넌트 SaaS, 경쟁하는 에이전트 플랫폼, 화이트 라벨링, 브랜딩 제거.

상용 라이선싱 문의는 GitHub에서 이슈를 열어주세요.

전체 약관은 LICENSE를 참조하세요.


🌐 웹사이트 · 📖 문서 · 📋 변경 로그 · 🐛 버그 보고 · 💬 Discord · 🐦 Twitter · 🏆 Product Hunt