Fully Self-evolving AI Companion

FSAR

它属于你,而不是某个供应商。

FSAR 是一个本地优先的 AI 伴侣。对话、记忆、决策与工具全部运行在 你自己的机器上,存于 ~/.fsar/ 的 SQLite 数据库里, 不上传到任何 FSAR 服务器。

Python 3.11+MIT LicenseWindows · Linux · macOS数据 100% 本地
~/.fsar/ · 只在这台机器上
角色卡 · 用户卡
memory.db · SQLite
反思 · 经验 · 策略

它记得你和它说过的每一句话,也记得自己学到的每一条策略。下一次醒来时,这些都不会丢。

4大设计支柱:忠实 · 安全 · 自适应 · 反思
3种反思模式:每任务 / 失败时 / 空闲批量
18篇模块文档,逐文件说明源码职责
Design contract

名字就是契约。

FSAR 读作四个字母,也是四条必须同时成立的设计约束。任何一条被拿掉,剩下的都不再是它。

01 / F

Faithful

忠实

它就是你配置的那个角色——名字、性格、场景、情绪状态——对着你描述的用户卡说话,不会退化成“通用助手”。

02 / S

Safe

安全

每个工具调用都穿过分层检查:hardline 守卫先拦下破坏性命令,风险引擎分级,工作区门禁限定文件范围,子进程环境清洗器剥掉密钥与令牌。

03 / A

Adaptive

自适应

每次工具调用都被记录。策略注入器从决策日志与用户画像合成 ## Learned Strategies;经验存储让“这次会话装的 MCP 服务器”成为“下次会话的召回”。

04 / R

Reflective

反思

三种反思模式重读对话并更新用户画像:显式偏好、推断特征、行为模式。下次会话开场就带上这些上下文。

What it can do

不止会聊天。

工具、记忆、房间、沙盒、社交桥——它们共用同一套安全关卡,也共用同一个 ~/.fsar/。

运行命令

Windows 上 PowerShell,其它平台 bash。破坏性命令在任何检查之前就被 hardline 守卫拦下。

文件工作区

在受限工作区内读、写、搜索。越界访问触发沙盒逃逸确认,而不是悄悄放行。

网页检索

通过免费的 Exa MCP 服务器搜索与抓取网页,无需 API key。

图像与 PDF

本地分析图像与 PDF,内容不进第三方队列。

操作电脑

Computer Use:截图、点击、输入、按键。单独 gated,不与普通对话混在一起。

多角色房间

多个角色共处一室,自己选下一个发言的人;用 @ 点名即可把发言权交给某位。

把房间当项目

一块计划板,每个成员在各自的仓库副本里走一回合;补丁由你手动落地或驳回,快照按白名单发布。

社交桥

通过 Telegram、飞书、微信收发消息,出门在外也能继续同一个会话。

无界面运行

fsar run 跑单个回合;fsar room say / read 直接读写一个房间。

Under the hood

一条消息的
端到端流程。

从浏览器发出,到角色开口,中间经过六道明确的关卡。任何一道拒绝,后面的都不会发生。

01接入

前端经 /ws 发来 JSON,ws_server._dispatch 依次尝试各 handler;chat.send 落入 handlers/chat.py,派生任务调用 ChatEngine.handle_send。

02准备

确保会话与工作区绑定,解析角色卡,发出 chat.thinking。根据内容分流:斜杠命令、多模型集成、陪伴模式,或智能体循环。

03组装提示词

取智能体档位,用 AGENT_SYSTEM_PROMPT + 角色/用户卡 + ## Learned Strategies + ## Experiences 组装系统提示词,装入短期记忆并按上下文窗口裁剪。

04智能体循环

最多迭代 max_tool_turns 轮:按需压缩上下文,调用 LLM(供应商支持时走服务端 prompt 缓存);响应含工具调用则执行,高阶档位还会做对抗式校验与微反思。

05每道工具关卡

MCP 门禁 → 沙盒门禁 WorkspaceGate → 风险门禁 RiskEngine → 执行 → 执行后复核与脱敏。顺序执行,任一拒绝即停止。

06收尾

工具结果回填,循环继续直至成答;流式输出结论(可触发 TTS),按档位运行任务反思、推进空闲反思、懒生成会话标题。

Where your data lives

删掉一个文件夹,
就是彻底重置。

一切关于你的数据都在 ~/.fsar/:配置、对话、决策日志、用户画像、经验、语义嵌入、缓存与审计日志。

没有账号,没有云端同步,没有“为了改进服务”的上传。你把文件夹拷走,整个 FSAR 就跟着走。

~/.fsar/
~/.fsar/
├── config/              yaml 配置
└── data/
    ├── memory.db         对话 · 决策 · 画像 · 经验
    ├── chroma/            语义嵌入
    ├── llm_cache.db       供应商 prompt 缓存记账
    ├── tts_cache.db       TTS 音频缓存
    ├── scheduler.db       定时任务
    └── logs/              滚动日志 + audit.log
Quick start

三条命令,
在你自己的机器上跑起来。

需要 Python 3.11+ 与 Node.js 18+。首次启动会自动安装前端依赖并构建 UI,之后只做增量构建。

# 克隆并安装 $ git clone https://github.com/sildo466/FSAR.git $ cd FSAR $ python -m venv .venv $ .venv\Scripts\activate $ pip install -r requirements.txt # 启动 $ start.bat

浏览器会自动打开 http://127.0.0.1:8765;若没有,手动访问即可。

# 克隆并安装 $ git clone https://github.com/sildo466/FSAR.git $ cd FSAR $ python3 -m venv .venv $ source .venv/bin/activate $ pip install -r requirements.txt # 启动 $ ./start.sh

macOS 使用 Computer Use 工具时,需在「系统设置 → 隐私与安全性 → 辅助功能」中授权终端与 Python。

# 在已经装好依赖的仓库里 $ pip install -e . $ fsar

全屏 Textual TUI:同一份 ~/.fsar/ 数据、同一套工具与安全关卡,不需要浏览器。用 fsar character 或 fsar companion 直接以某个模式启动。