// the find
xszyou/Fay
fay是一个帮助数字人(2.5d、3d、移动、pc、网页)或大语言模型(openai兼容、deepseek)连通业务系统的agent框架。
Fay is a Python middleware framework that wires up digital avatar frontends (Unity3D, UE5, web, mobile) to LLMs, ASR, and TTS backends. It acts as a session manager and signal router between the avatar renderer and whatever AI stack you're running. The target audience is Chinese developers building interactive virtual presenters or customer-service avatars.
Full offline mode is real — you can run FunASR locally and avoid any cloud dependency. The component swap model (ASR, TTS, LLM are all pluggable via OpenAI-compatible interfaces) is sensibly designed and works in practice. MCP tool support (both SSE and stdio) is a genuine differentiator for teams that want agent-style tool calling wired into a talking head. Multi-user concurrent session handling is built in, not bolted on.
Documentation is almost entirely in Chinese with no English equivalent, so non-Chinese developers hit a wall immediately. The codebase shows signs of a messy three-version merge — duplicated asset trees (gui/ and faymcp/ have nearly identical static files), committed binary artifacts (ffmpeg.exe, .sqlite3, embeddings.json), and test/ containing what looks like leftover build output from OVR LipSync. No tests anywhere visible in the repo structure. The config story is a renamed .bak file and a shared public config center key in the quickstart, which is a bad default for anything production-facing.