diff --git a/src/app/zh/channels/page.mdx b/src/app/zh/channels/page.mdx index 1be6614..7b1ce51 100644 --- a/src/app/zh/channels/page.mdx +++ b/src/app/zh/channels/page.mdx @@ -200,3 +200,115 @@ librefang channel disable telegram 2. **设置速率限制** - 防止滥用 3. **使用覆盖** - 为不同通道定制行为 4. **监控使用** - 定期检查通道统计 + +--- + +## 添加 Feature Flag + +所有通道适配器都通过 Cargo feature flag 进行条件编译。默认构建包含 12 个常用通道,您可以按需启用其他通道以减小二进制体积。 + +### Feature Flag 层级 + +Feature flag 需要在三层 `Cargo.toml` 中逐级转发: + +**1. `crates/librefang-channels/Cargo.toml`** — 定义 feature 并绑定可选依赖: + +```toml +[features] +default = [ + "channel-telegram", + "channel-discord", + "channel-slack", + # ... 共 12 个默认通道 +] + +all-channels = [ + "channel-telegram", + "channel-discord", + # ... 全部 42 个通道 +] + +# 各通道的 feature 定义 +channel-telegram = [] +channel-email = ["dep:lettre", "dep:imap", "dep:native-tls", "dep:mailparse"] +channel-qq = ["dep:rustls"] +channel-wecom = ["dep:roxmltree", "dep:aes", "dep:cbc"] +``` + +**2. `crates/librefang-api/Cargo.toml`** — 转发到 channels crate: + +```toml +[features] +channel-telegram = ["librefang-channels/channel-telegram"] +channel-qq = ["librefang-channels/channel-qq"] +all-channels = ["librefang-channels/all-channels"] +``` + +**3. `crates/librefang-cli/Cargo.toml`** — 转发到 api crate: + +```toml +[features] +all-channels = ["librefang-api/all-channels"] +``` + +### 可选依赖绑定 + +部分通道需要额外依赖,通过 `dep:` 语法绑定到 feature flag: + +| 通道 | 可选依赖 | 用途 | +|------|---------|------| +| Email | `lettre`, `imap`, `native-tls`, `mailparse` | IMAP/SMTP 邮件收发 | +| QQ | `rustls` | TLS 加密连接 | +| WeCom (企业微信) | `roxmltree`, `aes`, `cbc` | XML 解析与消息加解密 | + +在源代码中使用 `#[cfg(feature = "channel-xxx")]` 条件编译: + +```rust +#[cfg(feature = "channel-telegram")] +pub mod telegram; + +#[cfg(feature = "channel-qq")] +pub mod qq; +``` + +### 构建选项 + +```bash +# 默认构建(12 个通道) +cargo build --workspace + +# 启用全部通道 +cargo build --workspace --features all-channels + +# 仅启用特定通道 +cargo build --workspace --no-default-features --features channel-telegram,channel-slack + +# 最小构建(无通道适配器) +cargo build --workspace --no-default-features +``` + +--- + +## 贡献新 Channel Adapter + +添加新通道适配器的完整步骤: + +1. **创建适配器模块** — 在 `crates/librefang-channels/src/` 下新建 `myplatform.rs`,实现 `ChannelAdapter` trait(包含 `name()`、`channel_type()`、`start()`、`send()`、`stop()` 方法) + +2. **添加 Feature Flag** — 在 `crates/librefang-channels/Cargo.toml` 中添加 `channel-myplatform = []`(如有特殊依赖则绑定 `dep:`),并将其加入 `all-channels` 列表 + +3. **转发 Feature Flag** — 在 `crates/librefang-api/Cargo.toml` 中添加 `channel-myplatform = ["librefang-channels/channel-myplatform"]`,并加入其 `all-channels` 列表 + +4. **注册模块** — 在 `crates/librefang-channels/src/lib.rs` 中添加条件编译模块声明: + ```rust + #[cfg(feature = "channel-myplatform")] + pub mod myplatform; + ``` + +5. **接入 Bridge** — 在 `crates/librefang-api/src/channel_bridge.rs` 中添加适配器初始化逻辑 + +6. **添加配置支持** — 在 `librefang-types` 中添加配置结构体(包含 `token_env`、`default_agent`、`overrides` 字段),并加入 `ChannelsConfig` + +7. **添加 CLI 向导** — 在 `crates/librefang-cli/src/main.rs` 的 `cmd_channel_setup` 中添加交互式设置流程 + +8. **编写测试** — 使用 `ChannelMessage` 类型编写集成测试,无需连接真实平台即可验证适配器逻辑 diff --git a/src/app/zh/roadmap/page.mdx b/src/app/zh/roadmap/page.mdx index 8a61615..cacd683 100644 --- a/src/app/zh/roadmap/page.mdx +++ b/src/app/zh/roadmap/page.mdx @@ -1,180 +1,79 @@ -# 发布路线图 +# 路线图与状态 -LibreFang 竞争差距分析。组织为 4 个冲刺阶段。 +LibreFang 当前开发状态与未来计划。 --- -## Sprint 1 — 止血 (3-4 天) - -这些是阻止性问题。应用会崩溃或显示异常。 - -### 1.1 修复 Token 膨胀 — ✅ 完成 - -**状态: 已完成** — 在 compactor.rs, context_overflow.rs, context_budget.rs, agent_loop.rs, kernel.rs, agent.rs 和 prompt_builder.rs 中实现了全部 13 项。 - -**问题:** 单条聊天消息消耗约 45K 输入 token(工具定义 + 系统提示)。到第 3 条消息时,达到 100K 配额并崩溃。 - -**完成标准:** -- `cargo test --workspace` 通过 -- 启动 Agent,发送 10+ 条消息 — 无 "Token quota exceeded" 错误 -- 首条消息 token 数从 ~45K 降至 ~15-20K - -### 1.2 品牌与图标资源 — ✅ 完成 - -**状态: 已完成** — 桌面应用显示 LibreFang 品牌图标。 - -### 1.3 Tauri 签名密钥对 — ✅ 完成 - -**状态: 已完成** — 通过 `cargo tauri signer generate --ci` 生成 Ed25519 签名密钥对。 - -### 1.4 首次运行体验审计 — ✅ 完成 - -**状态: 已完成** — 完整代码审计验证:全部 8 个向导 API 端点存在并已实现。 - ---- - -## Sprint 2 — 竞争对等 (4-5 天) - -这些缩小与 OpenClaw 的差距。 - -### 2.1 浏览器截图渲染 — ✅ 完成 - -**状态: 已完成** — browser.rs 保存截图到上传目录并返回 JSON 包含 `image_urls`。chat.js 检测 `browser_screenshot` 工具结果并显示内联图像。 - -### 2.2 聊天消息搜索 — ✅ 完成 - -**状态: 已完成** — 搜索栏支持 Ctrl+F 快捷键,实时过滤,高亮匹配文本。 - -### 2.3 技能市场优化 — ✅ 完成 - -**状态: 已完成** — 技能页面已优化,包含 4 个标签页(已安装、ClawHub、MCP 服务器、快速开始)、实时搜索、分类排序。 - -### 2.4 安装脚本部署 - -**问题:** `librefang.ai` 安装端点需要连接。 - -**完成标准:** -- `curl -fsSL https://librefang.ai/install.sh | sh` 安装最新版本 -- `irm https://librefang.ai/install.ps1 | iex` 在 Windows PowerShell 中工作 - -### 2.5 向导端到端 — ✅ 完成 - -**状态: 已完成** — 6 步向导(欢迎 → 提供商 → Agent → 试用 → 通道 → 完成)完全连接。 +## 已完成功能 + +### 核心基础设施 + +- Token 上下文管理 — 自动压缩、70%/90% 阈值守卫、工具按 profile 过滤 +- 品牌与图标资源 — 桌面应用、Web UI、favicon 全套品牌素材 +- Tauri 签名密钥对 — Ed25519 签名,支持自动更新 +- 首次运行向导 — 6 步引导(欢迎 → 提供商 → Agent → 试用 → 通道 → 完成) +- 浏览器截图渲染 — 工具卡片内联显示截图 +- 聊天消息搜索 — Ctrl+F 快捷键,实时过滤与高亮 +- 技能市场 — 4 个标签页,实时搜索,安装/卸载管理 +- 语音输入/输出 — 按住录音、自动转录、TTS 播放 +- Canvas 渲染 — iframe 沙箱渲染,CSP 安全策略 +- JavaScript/Python SDK — REST 客户端,SSE 流式传输 +- Prometheus 指标导出 — `/api/metrics` 端点 +- 可视化工作流构建器 — SVG 拖放节点,贝塞尔曲线连接,TOML 导出 +- 多会话支持 — 每个 Agent 支持多个独立会话 +- 配置热重载 — 30 秒轮询检测 `config.toml` 变化 +- 性能优化 — Health p99 = 0.8ms,指标端点 2,792 req/sec + +### 平台数据 + +| 类别 | 数量 | +|------|------| +| 通道适配器 | 41 个(12 个默认,通过 feature flag 按需启用) | +| LLM 提供商 | 27+ 个,130+ 模型 | +| 内置技能 | 60+ 个 | +| 内置工具 | 41 个 | +| Agent 模板 | 30 个预配置 | +| 安全系统 | 16 层防御 | +| 测试覆盖 | 2100+ 个测试 | --- -## Sprint 3 — 差异化 (5-7 天) - -这些是 LibreFang 可以超越 OpenClaw 的功能。 - -### 3.1 语音输入/输出 — ✅ 完成 - -**状态: 已完成** — 麦克风按钮支持按住录音,MediaRecorder 使用 webm/opus 编解码器,自动上传和转录,TTS 音频播放器。 - -### 3.2 Canvas 渲染验证 — ✅ 完成 - -**状态: 已完成** — 修复 CSP 允许 `frame-src 'self' blob:` 和 `media-src 'self' blob:`。 - -### 3.3 JavaScript/Python SDK — ✅ 完成 - -**状态: 已完成** — 创建了 `sdk/javascript/` (@librefang/sdk) 和 `sdk/python/librefang_client.py`。 - -### 3.4 可观测性与指标导出 — ✅ 完成 - -**状态: 已完成** — 添加 `GET /api/metrics` 端点返回 Prometheus 格式。 - -### 3.5 可视化工作流构建器 — ✅ 完成 - -**状态: 已完成** — 添加了基于 SVG canvas 的完整可视化构建器。支持节点拖放、贝塞尔曲线连接、缩放/平移、TOML 导出。 +## 功能概览 + +| 功能 | 说明 | +|------|------| +| 语言/性能 | Rust 编写,~30MB 单二进制文件 | +| 通道 | 41 个消息平台适配器 | +| 内置工具 | 41 个(文件、浏览器、代码、搜索等) | +| 工作流引擎 | 完整 DAG,支持并行/循环/条件 | +| 知识图谱 | 实体关系图谱 | +| P2P 网络 | OFP 线协议 | +| WASM 沙箱 | 双计量 WASM 执行环境 | +| 桌面应用 | Tauri (~30MB),支持自动更新 | +| 插件 SDK | JavaScript + Python 客户端库 | +| 可视化工作流 | 拖放式构建器 | +| 可观测性 | Prometheus 指标导出 | +| 语音交互 | 麦克风录音 + TTS 播放 | --- -## Sprint 4 — 优化与发布 (3-4 天) - -### 4.1 多会话支持 — ✅ 完成 - -**状态: 已完成** — 每个 Agent 支持多个会话,UI 中有会话下拉切换。 - -### 4.2 配置热重载 — ✅ 完成 - -**状态: 已完成** — 添加了基于轮询的配置监视器(每 30 秒),自动检测 `config.toml` 变化。 - -### 4.3 CHANGELOG 和 README 优化 — ✅ 完成 +## 下一步计划 -**状态: 已完成** — 更新了 CHANGELOG.md 和 README.md。 +### 短期 -### 4.4 性能与负载测试 — ✅ 完成 +- **安装脚本部署** — 完成 `librefang.ai` 域名安装端点(`curl -fsSL https://librefang.ai/install.sh | sh`) +- **v0.1.0 正式发布** — 打标签、构建发布产物(桌面安装包、CLI 二进制、Docker 镜像) +- **自动更新验证** — 使用 v0.1.1 测试 Tauri 自动更新流程 -**状态: 已完成** — 创建了 `load_test.rs` 包含 7 个负载测试。 +### 中期 -**结果:** -- Health: p99 = 0.8ms -- Agent list: p99 = 0.5ms -- Metrics: 2,792 req/sec -- 并发读取: 1,728 req/sec -- 生成: 97/sec +- **移动端支持** — Web 响应式优化,PWA 支持 +- **语音唤醒词** — 离线唤醒词检测 +- **A2A 协议扩展** — 完善 Agent-to-Agent 互操作 +- **外部模型目录** — 从远程注册表同步模型元数据 -### 4.5 最终发布 — ✅ 就绪 - -**状态: 全部代码完成** — 全部 18 项代码完成。1751 个测试通过。生产审计完成。 - ---- - -## 功能对比 - -| 功能 | OpenClaw | LibreFang | 胜者 | -|------|-----------|-----------|------| -| 语言/性能 | Node.js (~200MB) | Rust (~30MB 单二进制) | **LibreFang** | -| 通道 | ~15 | **40** | **LibreFang** | -| 内置工具 | ~19 | **41** | **LibreFang** | -| 安全系统 | Token + 沙箱 | **16 层防御** | **LibreFang** | -| Agent 模板 | 手动配置 | **30 个预配置** | **LibreFang** | -| Hands (自主) | 无 | **7 个包** | **LibreFang** | -| 工作流引擎 | Cron + webhooks | **完整 DAG** | **LibreFang** | -| 知识图谱 | 平面向量存储 | **实体关系图** | **LibreFang** | -| P2P 网络 | 无 | **OFP 协议** | **LibreFang** | -| WASM 沙箱 | 仅 Docker | **双计量 WASM** | **LibreFang** | -| 桌面应用 | Electron (~200MB) | **Tauri (~30MB)** | **LibreFang** | -| 迁移 | N/A | **`migrate --from openclaw`** | **LibreFang** | -| 技能 | 54 个捆绑 | **60 个捆绑** | **LibreFang** | -| LLM 提供商 | ~15 | **27 提供商, 130+ 模型** | **LibreFang** | -| 插件 SDK | TypeScript | JS + Python SDK | **平局** | -| 本地移动 | iOS + Android + macOS | 仅 Web 响应式 | OpenClaw | -| 语音模式 | 唤醒词 + TTS | 麦克风 + TTS 播放 | OpenClaw (略胜) | -| 浏览器自动化 | Playwright | Playwright + 内联截图 | **平局** | -| 可视化工作流 | 无 | **拖放构建器** | **LibreFang** | - -**LibreFang 赢得 15/18 类别。** - ---- +### 长期 -## 快速参考: 状态 - -``` -Sprint 1: 已完成 - 1.1 Token 膨胀修复 .............. ✅ - 1.2 品牌资源 ................. ✅ - 1.3 Tauri 签名密钥 ........... ✅ - 1.4 首次运行审计 ............ ✅ - -Sprint 2: 4/5 已完成 - 2.1 浏览器截图 ............ ✅ - 2.2 聊天搜索 .............. ✅ - 2.3 技能市场 .............. ✅ - 2.4 安装脚本域名 .......... 待定 - 2.5 向导端到端 ............ ✅ - -Sprint 3: 已完成 - 3.1 语音 UI .............. ✅ - 3.2 Canvas 验证 .......... ✅ - 3.3 JS/Python SDK ........ ✅ - 3.4 可观测性 .............. ✅ - 3.5 可视化工作流构建器 .... ✅ - -Sprint 4: 已完成 - 4.1 多会话 ................ ✅ - 4.2 配置热重载 ........... ✅ - 4.3 CHANGELOG + README ... ✅ - 4.4 负载测试 ............. ✅ - 4.5 最终发布 .............. ✅ 就绪 -``` +- **原生移动应用** — iOS / Android 客户端 +- **联邦学习** — 跨节点隐私安全的模型微调 +- **企业级部署** — 多租户、RBAC、审计日志