目标:构建一个AI 驱动的连接器中心 — 独立门户(门户助手)、副驾驶(嵌入主机系统)、中心(跨系统中央编排)。 原则:提供商无关(无供应商锁定)、最小抽象、协议优先、连接器优先(集成是核心价值)。
产品愿景
FIM One 是一个 AI 连接器中心,提供三种渐进式模式:| 步骤 | 模式 | 发生的事情 |
|---|---|---|
| 着陆 | Copilot | 嵌入到一个系统中,在其 UI 内证明价值 |
| 扩展 | Copilot → Hub | 推广到更多系统;Hub 聚合它们 |
已知问题
可在生产环境中复现但尚未修复的跟踪缺陷。每个条目说明症状、疑似影响范围和解决方案(如有)。修复范围确定并排期后,条目将移至版本部分。-
智能体编辑器在未进行任何编辑的情况下显示未保存更改警告。 通过
/agents/[id]打开现有智能体,立即点击返回会触发”未保存更改”对话框,即使没有触及任何字段。脏检查会对比加载的智能体有效负载中的 20 多个字段,因此状态初始化和脏比较之间的一个不对称默认值足以导致虚假不匹配——当前怀疑是嵌套的model_config_json/ 通知 / 审批路由字段之一,可能来自undefinedvsnullvs""规范化。特别是在组织范围的智能体上可复现。解决方案:关闭对话框(Discard and leave)——由于实际上没有任何更改,所以没有数据丢失。尝试的修复(cb40c86a)移除了资源选择器上相关的孤立徽章闪烁,但未解决此问题。 -
保存智能体编辑可能失败,错误为
Input should be 'initiator', 'agent_owner' or 'org_members'。 Pydantic 在/api/agents/{id}PUT 边界处拒绝confirmation_approver_scope字段,尽管数据库中存储的每个值都是三个有效字面值之一。怀疑:前端as "initiator" | "agent_owner" | "org_members"强制转换仅是编译时承诺,因此来自模板、导入或较旧迁移的遗留或意外运行时字符串可能会通过setConfirmationApproverScope并被逐字回显。解决方案:在保存前在”审批”→“审批人范围”下拉菜单中显式重新选择一个值。 -
演练场停止并重试显示瞬间视觉伪影,页面刷新总是会清除。 三个并发渲染源——
activeConversation.messages(数据库快照)、SSEmessages流和乐观的pendingQuery占位符——未折叠为单个派生状态,因此在点击”重试”和配对的助手响应到达之间,UI 可能会(a)在流前窗口中短暂渲染相同查询两次,(b)在hasLiveMessages为真且快照重新加载前从重试历史中删除先前的孤立用户气泡,以及(c)在 SSE”完成”事件和下一个selectConversation刷新之间的狭窄窗口中闪烁。数据永远不会丢失——每条用户消息(包括中止的重试)都保存在conversation.messages中,通过normalize_alternating_messages传入下一个 LLM 调用,并在通过48ba08c6渲染修复中引入的HistoryTurn.orphanUserContents刷新后正确渲染。作为背景,Claude 自己的网页 UI 表现出类似的缺陷类别——在响应中途停止并立即发送后续查询有时会将后续查询作为第一个查询的同级编辑分支而不是作为新轮次追加——因此这是乐观 UI + SSE + 持久化历史设计中的已知难题,而不是 FIM One 特定的缺陷。正确的修复需要将三个渲染源折叠为单个派生状态;延迟到更广泛的演练场状态机重构。
已发布的版本
v0.1 (2026-02-22) — MVP: ReAct + DAG Planner
- ReActAgent with tools (calculator, python_exec, web_search)
- DAG Planner (LLM generates dependency graphs)
- Portal UI with streaming + KaTeX
v0.2 (2026-02-24) — 多模型 + 记忆
- 重试 / 速率限制 / 使用情况跟踪
- 原生函数调用(无仅 JSON 解析)
- 多模型支持(快速 + 主 LLM)
- 记忆:WindowMemory、SummaryMemory
- FastAPI 后端与 SSE 流式传输
v0.3 (2026-02-25) — Web Tools + MCP
- Web tools (web_search, web_fetch) via Jina/Tavily/Brave
- File operations tool
- MCP client (standard tool integration)
- Tool auto-discovery + categories
- DAG visualization with click-to-scroll
- Code exec in Docker (
--network=none)
v0.4 (2026-02-25) — 多轮对话 + 智能体
- 多轮对话(DbMemory)
- 工具步骤折叠 UI
- HTTP 请求 + shell 执行工具
- 智能体管理(创建、配置、发布)
- JWT 身份验证
- 按智能体执行模式 + 温度控制
v0.5 (2026-02-28) — 完整 RAG + 基础生成
- 完整 RAG 管道(嵌入 + 向量存储 + FTS + RRF + 重排序器)
- 基础生成(引用、置信度分数)
- 知识库文档管理(CRUD、搜索、重试、模式迁移)
- ContextGuard + 固定消息(令牌预算管理器)
- DbMemory 持久化 + LLM Compact
- DAG 重新规划(最多 3 轮)
v0.6 (2026-03-01) — 连接器平台
- 连接器 CRUD: 创建、读取、更新、删除
- ConnectorToolAdapter: 将连接器转换为 BaseTool
- 按用户凭证: AES-GCM 加密
- 确认门: 写入操作审批
- 审计日志: 所有工具调用记录
- 断路器: 故障时优雅降级
- 实用工具: email_send、json_transform、template_render、text_utils
- 嵌入选项: Jina、OpenAI、自定义提供商
v0.7 (2026-03-06) — 管理平台 + 多租户
- 管理平台: 用户管理、角色切换、密码重置、账户启用/禁用
- 邀请制注册: 三种模式(开放/邀请/禁用)+ 邀请码 CRUD
- 存储管理: 按用户磁盘使用量、清除、孤立文件清理
- 对话审核: 管理员列表/删除所有对话
- 按用户强制登出: 撤销所有令牌
- API 健康仪表板: 系统统计、连接器指标
- 首次运行设置向导: 引导式管理员账户创建
- 个人中心: 按用户全局指令、语言偏好
- JWT 认证: 基于令牌的 SSE 认证、对话所有权
- 全局 MCP 服务器: 管理员配置、在所有会话中加载
- 向后兼容: registration_enabled → registration_mode 自动迁移
v0.7.x (2026-03-07 to 2026-03-12) — 稳定性 + 打磨
- 邀请码管理
- 按用户配额(429 强制执行)
- 结构化审计日志
- 敏感词过滤
- 管理员登录历史
- 管理员文件浏览器
- 增强的管理员视图(model_name、tools、kb_ids 字段)
- Docker Compose 部署(单个镜像、命名卷)
- OAuth 自动检测(来自 window.location)
- 扩展思考/推理支持(
LLM_REASONING_EFFORT、LLM_REASONING_BUDGET_TOKENS)支持 OpenAI o 系列、Gemini 2.5+、Claude - 管理员按工具启用/禁用(禁用的工具在运行时从聊天中排除)
- MCP 服务器管理移至连接器页面
- 双数据库支持:SQLite(零配置默认)+ PostgreSQL(生产环境);Docker Compose 自动配置 PostgreSQL
- 模型配置文档页面,包含每个提供商的扩展思考设置
- SSE 协议 v2:实时答案流式传输,包含
delta_reasoning、usage字段,以及拆分的done/suggestions/title/end事件;SQLite 连接池大小 5 -> 20 - AI Builder 扩展:7 个新的构建器工具(GetSettings、TestConnection、ImportOpenAPI 用于连接器;ListConnectors、AddConnector、RemoveConnector、SetModel 用于智能体),智能体上的
is_builder标志,构建器提示自动刷新,SSRF 防护 - SSE v2 前端:流式点脉冲光标,DAG 重新规划轮快照作为可折叠卡片,DAG 布局与步骤状态解耦
- AI Builder 概念文档页面,包含连接器和智能体构建器指南
- 组织系统:完整的 CRUD 操作,基于角色的成员资格(所有者/管理员/成员),管理员管理 UI
- 三层资源可见性(个人/组织/全局)用于智能体、连接器、知识库、MCP 服务器
- 发布/取消发布 API 用于所有资源类型;已发布智能体的所有者委派
- 管理员设置可见性端点(替换克隆到全局);统一的
build_visibility_filter()查询助手 - 数据库连接器(第 1-3 阶段):直接 SQL 访问 PG/MySQL/Oracle/SQL Server + 中文遗留数据库;模式内省、AI 注释、只读查询执行、加密凭证、每个连接器 3 个工具(
list_tables、describe_table、query) - 评估中心:定量智能体质量基准测试 — 测试数据集 CRUD(提示 + 预期行为 + 断言),评估运行(并行执行 + LLM 评分器 + 每个案例的通过/失败/延迟/令牌结果),带自动轮询的结果查看器;迁移
r8t0v2x4z567 - 三个模型角色(通用/快速/推理)具有按层级的环境配置隔离;快速模型不再继承主模型设置
StepOutput数据类替换纯字符串步骤结果,用于结构化数据和工件传递- DAG 执行的工具缓存 — 每次运行中相同的工具调用缓存,具有异步锁雷鸣羊群防护(
DAG_TOOL_CACHE) - 按步骤 LLM 验证,失败时重试 1 次(
DAG_STEP_VERIFICATION) - 自动路由:快速 LLM 将查询分类为 ReAct 或 DAG;
/api/auto端点;前端 3 向模式切换(AUTO_ROUTING) -
影子市场组织 + 资源订阅:内置市场组织(影子,无自动加入)替换平台组织;通过市场浏览发现资源并明确订阅(拉取模型);用于订阅共享资源的市场 API;发布到市场始终需要审查;资源订阅表;基于组织的资源共享替换全局可见性 -
智能体自动发现和子智能体绑定:智能体上的discoverable标志;sub_agent_ids白名单;CallAgentTool 用于委派任务给专家智能体 -
MCP 服务器凭证 + 按用户覆盖:mcp_server_credentials表;PUT /api/mcp-servers/{id}/my-credentials端点;凭证回退行为的allow_fallback标志 -
连接器/知识库切换:POST /api/connectors/{id}/toggle和POST /api/knowledge-bases/{id}/toggle用于暂停/恢复资源 -
独立知识库对话:对话上的kb_ids字段,用于直接知识库聊天,无需智能体绑定
v0.8 (2026-03-20) — 连接器声明式配置 + 渐进式披露
- 数据库连接器: 直接 SQL 访问 (PostgreSQL, MySQL, Oracle) (在 v0.7.x 中发布 — 第 1-3 阶段)
- RBAC: 按用户/角色连接器访问控制 (在 v0.7.x 中发布 — 组织系统 + 三层可见性)
- 连接器凭证加密 + 按用户覆盖:
connector_credentials表,通过CREDENTIAL_ENCRYPTION_KEY进行 Fernet 加密,allow_fallback标志,GET/PUT/DELETE /my-credentials端点,聊天工具加载中的按用户凭证解析 - 发布审核 UI: 组织级发布审核系统 — 按组织审核切换,带有批准/拒绝工作流的 ReviewsSheet,资源卡上的状态徽章,发布对话框中的审核通知,被拒绝资源的重新提交
- 连接器渐进式披露 (第 1-2 阶段): 单个
ConnectorMetaTool替代按操作工具;系统提示词仅接收轻量级存根 (名称 + 单行描述,约 30 tokens/连接器 vs 约 250 tokens/操作);智能体调用discover(connector)按需加载完整操作架构 — 架构仅在模型选择连接器时加载,保持提示词前缀稳定以便缓存。遵循现代智能体框架中常见的延迟工具加载模式。execute子命令;向后兼容性的功能标志。 - 智能体技能系统 + 紧凑指令: 智能体指令的按需技能加载 —
Skill模型 (名称、内容/SOP、可选脚本) 附加到智能体;在系统提示词中仅按名称引用 (~10 tokens/技能);智能体调用read_skill(name)按需加载完整内容。将每次对话指令 token 成本降低约 80%,同时允许更丰富的 SOP 库。与 ConnectorMetaTool 的渐进式披露在指令级别的对应物。启用”指令 + 工具 + 技能”差异化故事。还向 Agent 模型添加compact_instructions字段 — 按智能体压缩优先级列表注入到ContextGuard中进行压缩 (例如,“保留订单 ID 和金额,删除原始 API 响应”),替换当前的静态通用提示词。遵循现代智能体框架中广泛采用的紧凑指令约定。 - 连接器导入/导出: 共享连接器模板
- 连接器分叉: 克隆 + 自定义现有连接器
- 工作流第 2 阶段节点: Iterator、Loop、VariableAggregator、ParameterExtractor、ListOperation、Transform、DocumentExtractor、QuestionUnderstanding、HumanIntervention — 9 种高级节点类型,具有完整的前端 + 后端 + 150 个新测试 (总计 275 个)。节点重试,指数退避,安全表达式评估。带成功率条的统计面板。12 个内置模板。窗格上下文菜单 (粘贴、全选、适应视图、自动布局)。
- 工作流第 3 阶段节点: SubWorkflow + ENV — 2 种新节点类型 (总计 25 个节点),14 个新测试 (总计 306 个),14 个内置模板。SubWorkflow: 完整的数据库支持的嵌套工作流执行器,具有目标工作流选择、变量映射和可配置的深度限制以防止无限递归。ENV: 使用密钥选择器和回退默认值读取加密的环境变量。完整的前端 (节点组件、配置面板、调色板条目、小地图颜色)。按节点执行统计面板 (成功率、持续时间、按最差优先排序的失败计数)。
getNodeStatsAPI 客户端 +NodeStatEntry类型。键盘快捷键对话框 (?键)。 - 工作流计划触发器: 按工作流 cron 配置,带时区、默认输入和下次运行时间计算。预设 cron 按钮,30 个触发器测试。
- 工作流 API 触发器: 公共按工作流 API 密钥 (
wf_前缀) 用于外部执行,无需用户身份验证,带速率限制。API 密钥管理对话框,带生成/重新生成/撤销、触发器 URL 和 cURL/JS 示例。 - 工作流批量执行:
POST /batch-run,最多 100 个输入集,可配置的并行度 (1-10),可折叠的按项结果,JSON 导出。14 个批量执行测试。 - 工作流执行日志查看器: 运行面板中的实时按时间顺序 SSE 事件流,带时间戳、彩色徽章和事件类型过滤切换。
- 工作流运行统计: 后端通过 GROUP BY 子查询批量获取运行计数和成功率;前端在工作流卡上显示统计信息,带彩色编码的成功率指示器。
- 工作流调度程序守护程序: 后台异步服务,每 60 秒轮询一次到期的基于 cron 的工作流。Croniter 时区支持、信号量并发、
last_scheduled_at跟踪、webhook 传递。14 个测试。 - 工作流导入冲突解析器: 在导入期间检测未解决的智能体/连接器/KB/MCP 引用。批量数据库查询,具有可见性过滤,前端 toast 警告。17 个测试。
- 工作流测试节点执行: 使用模拟变量的隔离单节点测试,集成到编辑器中 (配置面板测试按钮 + 上下文菜单)。23 个测试。
- 工作流版本差异: 并排蓝图比较,带节点/边变化检测,彩色编码指示器 (添加/删除/修改)。
- 工作流运行管理: 删除单个运行 (
DELETE /runs/{run_id}) 和清除所有已完成的运行 (DELETE /runs),带前端确认对话框。 - 工作流运行重放叠加层: 运行历史中的”在画布上查看”按钮,将过去的执行结果叠加在画布上,显示按节点状态和输出,无需重新执行。
- 工作流收藏/固定: 将工作流星标/固定到列表顶部,具有 localStorage 持久化。
- 工作流运行历史导出: 将运行历史导出为 JSON 文件下载,具有完整的运行元数据和按节点结果。
- 管理员工作流管理: 用于管理所有用户工作流的管理面板选项卡 — 列表、切换活跃/非活跃、带确认的删除。用于删除、切换和发布的批量端点,带审计日志。
- 工作流模板系统:
WorkflowTemplateORM 模型,具有管理员 CRUD、公共列表/克隆 API 和 5 个种子模板,在首次启动时自动插入。 - 工作流内联验证徽章: 画布上的实时按节点
ValidationBadge,带错误/警告工具提示,用于编辑期间的即时视觉反馈。 - 工作流执行跟踪查看器: 基于时间线的跟踪查看器 Sheet,带引擎
trace_level参数和按节点变量快照,用于逐步调试。 - 工作流速率限制和超时: 按用户
WorkflowRateLimiter(滑动窗口 10 runs/min、3 并发) 和默认 10 分钟全局运行超时。 - 工作流蓝图系统: 用于设计和执行多步自动化蓝图的可视化工作流编辑器 —
Workflow/WorkflowRunORM 模型,完整的 CRUD + SSE 执行 API、导入/导出、复制、蓝图验证端点、WorkflowEngine,具有拓扑排序 + 基于信号量的并发 + 条件分支和 12 种节点类型 (Start、End、LLM、ConditionBranch、QuestionClassifier、Agent、KnowledgeRetrieval、Connector、HTTPRequest、VariableAssign、TemplateTransform、CodeExecution)、VariableStore,具有{{node_id.output}}插值和env.*命名空间、按节点错误策略 (STOP_WORKFLOW / CONTINUE / FAIL_BRANCH),具有按节点超时和高级配置 UI、React Flow v12 可视化编辑器,具有拖放调色板 + 节点配置面板 + 变量选择器组合框 + 边上添加节点 + 自动布局 (ELK.js) + 运行历史 sheet、Dify 风格的紧凑节点设计,具有基于环的运行状态样式和动画边过渡、4 个内置启动模板 (简单 LLM 链、条件路由器、知识增强 QA、HTTP API 管道),具有模板选择器对话框和GET /templates+POST /from-templateAPI、统计端点、?run=trueURL 参数自动打开、基于子进程的代码执行安全、105 测试套件 (模板、eval 命名空间展平、蓝图验证警告、节点/边删除、导入/导出/复制、死锁检测、多条件分支) - 操作审计: 详细的谁做了什么的日志 — 添加了管理员审核日志审计选项卡 (按组织/资源发布审核跟踪)
- 语义架构注释: 使用
semantic_tag、description和pii标志扩展连接器架构字段;注释在 LLM 工具描述中显示,以便智能体理解字段意图,无需从列名猜测
v0.8.1 (2026-03-29) — 渐进式信息披露成熟度 + ReAct 强化
- DB 连接器(
DatabaseMetaTool)、MCP 服务器(MCPServerMetaTool)和按需工具加载(request_tools元工具)的渐进式信息披露 - DAG 质量全面改进(5 项改进:模型升级、技能自动发现、引用验证器、结构化内容保留、领域感知路由)
- ReAct 中的领域模型升级(专业领域自动升级到推理模型)
- 按模型原生函数调用切换(
tool_choice_enabled) - ReAct 循环检测(确定性重复工具调用防止)
- ReAct 完成清单(使用工具时的答案前验证)
- 资源分叉第 1 阶段(MCP 服务器 + 技能分叉端点,带血缘追踪)
- 工作流连接依赖自动订阅(递归子工作流依赖解析)
- 预构建解决方案模板(首次注册时向市场植入 8 个垂直解决方案)
- 管理员通知改进(时区感知、主开关、SMTP 回复地址)
- 按轮次令牌预算断路器(
REACT_MAX_TURN_TOKENS) - 集中式工具截断、动态系统提示预算
- 文件附件下载、重复消息提交修复
v0.8.2 (2026-04-10) — 智能体核心强化 + 视觉文档处理
- 智能体核心第0阶段 — 紧凑提示词升级为9段结构化格式;空工具结果保护(使用描述性消息而非
(no output));反循环提示词 + 循环检测阈值降低至2;域分类器 + 预检DB配置解析并行化(每个请求节省400–1100毫秒);SSEend事件在答案后立即发送,标题/建议移至后台任务 - 智能体核心第1阶段(上下文反膨胀) —
MicroCompact基于规则的旧工具结果清理(保留最后6条);REACT_TOOL_RESULT_BUDGET=40000聚合上限;上下文溢出时反应式紧凑(自动紧凑至50%预算并重试,而非崩溃) - 智能体核心第2阶段(速度) — 基于关键词的工具预选(在明显匹配时跳过LLM调用,节省200–500毫秒);
SharedHttpClientLLM连接池;答案>200 token时跳过完成检查;FallbackLLM包装主LLM+快速LLM,在429/503/529/连接错误时自动故障转移 - 智能文档处理(视觉感知) — 自适应文档处理:PDF页面通过PyMuPDF为视觉能力模型(GPT-4o、Claude 3/4、Gemini)渲染为图像,通过pdfplumber提供纯文本回退。按模型
supports_vision标志。通过DOCUMENT_PROCESSING_MODE、DOCUMENT_VISION_DPI、DOCUMENT_VISION_MAX_PAGES控制模式。DOCX/PPTX嵌入图像提取。跨对话轮次的多轮视觉持久化。智能PDF处理(文本丰富页面提取文本+图像;扫描页面渲染为全页PNG)。预构建沙箱镜像(Dockerfile.sandbox),包含用于--network=none代码执行的常见数据科学包 - 资源分支完成 — 智能体/连接器/工作流分支端点已添加,完成五类系统血缘追踪(KB分支已移除——本质上是用户本地的)
- 文件完整性护栏 — 系统提示词规则防止智能体在目标文件不可读时替换无关文件内容;上传的文件现在在消息上下文中包含
file_id,用于直接read_uploaded_file访问
v0.8.3 (2026-04-16) — 通用文档转换 + 智能体核心第 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环境变量用于选择退出 - 智能体核心第 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% 的每轮输入 token 节省。不支持缓存的提供商获得单个连接的消息(零行为变化) - 提示词缓存可观测性 —
cache_read_input_tokens和cache_creation_input_tokens通过UsageSummary→TurnProfiler→done_payload.cache字段进行追踪;每轮结构化turn_cache日志行。同时用作中继缓存诚实性探针 - 对话恢复 MVP — 合成
tool_result行在中断轮次后持久化;POST /chat/resume从单调游标重放缓存的 SSE 事件;前端useSseResumehook 自动重连,指数退避(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) — 通道集成 + 钩子系统 + 贡献者国际化
- Feishu 通道(第一阶段子集) — 组织范围的
Channel资源,采用 Fernet 加密凭证;FeishuChannel支持交互式卡片发送 + 回调(签名验证 + URL 挑战);设置 → 通道管理 UI(列表、创建/编辑含脏状态保护、详情含可复制回调 URL、测试发送);CRUD API(/api/channels)和事件回调端点(/api/channels/{id}/callback)。为 2026-04-24 路演提前发布 - 智能体钩子系统(在 ReAct + DAG 运行时中实时运行) —
PreToolUseHook/PostToolUseHook抽象位于src/fim_one/core/hooks/;在model_config_json中声明hooks.class_hooks的智能体会在每个聊天会话中实例化和注册钩子。首个消费者FeishuGateHook在智能体调用requires_confirmation=True工具时向关联的 Feishu 群组发送审批/拒绝卡片,阻止执行,并根据裁决恢复或中止 - 可配置确认闸门(内联或通道) — 每个智能体都获得审批部分,包含三种路由模式(自动 / 仅内联 / 仅通道)、审批人范围选择器(发起人 / 所有者 / 组织内任何人)、按工具覆盖和显式审批通道选择器。自动模式在未链接通道时优雅地回退到内联审批卡片。
POST /api/confirmations/{id}/respond与 Feishu webhook 共享单一决策记录路径 - 按智能体任务完成通知 — 长时间运行的 ReAct 或 DAG 智能体可在任务完成时向组织的通道推送摘要卡片。通用出站通知模式的首个消费者
- 钩子审批演练场 — 通道详情表有”测试审批流程”操作,该操作执行完整生产路径(真实
ConfirmationRequest行、真实 Feishu 回调、状态转换)——与生产钩子使用的代码路径相同 - 贡献者友好的国际化 CI 回退 —
.github/workflows/i18n-sync.yml在 PR 合并后在 master 上将 EN → ZH/JA/KO/DE/FR 翻译,并使用[skip ci]自动提交;贡献者不再需要本地LLM_API_KEY。提交前语言环境编辑守卫拒绝手动编辑生成的语言环境文件(ALLOW_LOCALE_EDIT=1覆盖用于合法翻译修复)。通过烟雾测试推送端到端验证 - Exa 集成文档 — 专用集成部分,首个一流的 Exa 页面涵盖完整 Exa 搜索表面(神经 / 快速 / 深度推理 / 即时)、过滤、内容检索和三个调优预设
- 信创数据库支持 — 数据库连接器现在列出 KingbaseES(人大金仓)、HighGo(瀚高)和 DM8(达梦)以及 PostgreSQL/MySQL。PG 兼容驱动重用
asyncpg;DM8 使用dmPython。scripts/test_xinchuang_dbs.py从 CLI 验证实时连接 - 通道 + 钩子系统架构文档 —
docs/architecture/hook-system.mdx解释三个钩子点并端到端演示 FeishuGateHook;现有架构页面交叉链接;README 将消息通道列为一流功能 - 加固 — 重复 Feishu 回调点击产生替换卡片而非双重决策;并发回调点击通过条件
UPDATE ... WHERE status='pending'行计数检查解决;待处理审批在CHANNEL_CONFIRMATION_TTL_MINUTES(默认 24 小时)后通过后台清理器自动过期;设置 → 通道尊重组织角色(成员看到只读 UI);并行工具调用聚合器处理为每个增量重用index=0的提供商;会话过期重定向保留查询字符串
计划版本
v0.8.6 — 通道与钩子优化
目标:在v0.9生产加固波到来之前,收尾v0.8.5通道+钩子推出中的遗留问题。范围刻意狭窄——优化而非新功能。- 单个钩子配置透传 — 目前
class_hooks条目是裸字符串;要在单个智能体级别覆盖FeishuGateHook.timeout_seconds、poll_interval_seconds或callback_base_url,架构需要接受{"name": "feishu_gate", "config": {...}}对象,这些对象作为kwargs转发给钩子工厂。低风险后续;当前默认值(120秒超时/1.5秒轮询/环境变量回调URL)暂时可接受。 - DAG
tools_used准确性 — 完成通知卡片目前从plan.steps[*].tool_hint(规划器的建议)而非DAG执行器的各步ReAct循环实际选择的真实工具名称推导tools_used。从DAG执行器的步骤完成回调中导出实际选择的工具名称,使通知卡片反映实际运行的内容。 - 委托子智能体和Workflow AGENT节点的钩子继承策略 — 目前
CallAgentTool子节点和WorkflowAGENT节点创建不继承父级钩子注册表的全新ReActAgent,因此通过委托到达的敏感工具调用无声地绕过feishu_gate。决策并文档化:子智能体是否继承(默认安全,防止闸门绕过)还是隔离(让团队将非审批闸门工作委托给子智能体)?评估中心运行按设计保持选择退出(自动化不能阻止人工审批)。
v0.9 — 可观测性 + 生产强化
目标: 生产级运维、调试和监控。引入Hook 系统 — 一个确定性执行层,位于智能体指令下方,LLM 无法覆盖。- 连接器渐进式披露(第 3-4 阶段): 统一的
ConnectorExecutor接口(API/DB/MCP 在一个抽象后面);使用jsonschema进行操作参数验证;协议无关的发现/执行 - YAML/JSON 连接器配置: 平台自动生成 MCP 服务器
- 数据库连接器第 4 阶段: 企业驱动 — Oracle (
oracledb)、SQL Server (aioodbc)、[x] 达梦 DM8(原生dmPython)、[x] 人大金仓 KingbaseES + 瀚高 HighGo(PG 兼容,复用asyncpg)、南大通用 GBase(aioodbc+ GBase ODBC) - IM 频道集成(双向): 第 1 阶段 — 出站推送: Lark、WeCom、Slack、Email、Teams 来自智能体/工作流结果的通知操作。第 2 阶段 — 入站触发: 用户在 IM 群聊中 @mention 智能体以触发任务,无需打开 Portal;每个频道的 webhook 接收器;每个 IM 频道建模为具有双向操作的连接器(发送 + 接收)。Hub 模式杀手级功能
- 飞书频道(第 1 阶段子集) — 组织范围的
Channel资源,带 Fernet 加密凭证;FeishuChannel实现支持交互式卡片发送 + 回调(签名验证 + URL 挑战);与确认门集成,使写操作批准作为批准/拒绝卡片落地在配置的飞书群聊中;设置 → 频道管理 UI。为 2026-04-24 路演提前发布。剩余:WeCom、Slack、Email、Teams 出站 + 第 2 阶段入站触发。 - 出站通知模式(通用,可跨频道类型复用): 相同的
BaseChannel抽象支持超越批准门控的出站用例目录。每个模式针对BaseChannel实现一次,自动适用于每个具体频道(今天是飞书;Slack/WeCom/Teams/Email 随后推出)。- 任务完成通知: 当长时间运行的 DAG / 工作流 / 计划智能体完成时,向组织频道(或用户选择的频道)发布包含结果片段 + 工件链接的摘要卡片。最小可行的”频道出站”产品 —
FeishuGateHook之后的第一个消费者 - 异常 / 失败告警: 智能体推理失败、LLM 提供商出错、连接器抛出 5xx、DAG 计划耗尽重新规划预算 → 向运维频道推送包含 trace ID 和重试选项的诊断卡片
- 成本 / 预算警告: 按用户或按智能体的 token/请求预算达到 80% / 100% 阈值 → 推送到管理员频道(或 @-mention 智能体所有者),显示当前使用量与上限
- 计划摘要: 智能体或工作流发出定期(每日 / 每周)摘要卡片 — KPI 汇总、未解决工单分类、合同续期列表 — 直接进入频道,无需用户打开 Portal
- 卡住的智能体升级: 智能体连续 N 次迭代没有取得可观测的进展(检测到循环,或超过
max_iterations)→ 发布卡片要求人工操作员接管,包含当前上下文和”使用您的备注恢复”操作 - 敏感工具调用的审计收据: 独立于批准门控 — 每次调用标记为
audit=true的工具都会向合规频道发出只读收据卡片(谁 / 什么 / 何时 / 参数),在数据库外提供持久审计跟踪 - 批准升级: 如果
feishu_gate批准卡片在 N 分钟内未收到响应,自动 @-mention 群组所有者或将卡片转发到更高层级频道;可按工具/连接器配置
- 任务完成通知: 当长时间运行的 DAG / 工作流 / 计划智能体完成时,向组织频道(或用户选择的频道)发布包含结果片段 + 工件链接的摘要卡片。最小可行的”频道出站”产品 —
- 飞书频道(第 1 阶段子集) — 组织范围的
连接器授权层(数据级 RBAC)
现有的 RBAC 控制资源可见性(谁可以看到连接器),而非执行时授权(调用者通过它可以做什么)。当管理员用高权限凭证连接 DB/API 时,每个使用该连接器的组织成员都会继承管理员的风险范围。本小节通过三个不同的上游能力层来弥补这一差距:- Tier 1 — DB 模式(完全管理员 + 基础/遗留):管理员提供单个 DB 凭证(root 或最小权限服务账户),因为大多数遗留系统无法颁发按用户的 DB 账户。强制执行发生在连接之上,通过
ConnectorScopeGuard—— 一个PreToolUse钩子,根据调用者身份过滤query/execute调用。能力:阻止破坏性动词(DROP、TRUNCATE、无范围的 DELETE/UPDATE);表级允许/拒绝列表;由pii=true语义注解驱动的列隐藏;自动注入范围谓词(例如,向每个SELECT追加AND dept_id = :caller_dept)。配置是连接器上的scope_rulesJSON 字段,支持基于角色的匹配;默认为有歧义时拒绝。 - Tier 2 — Open API 模式(按用户 API 密钥):首选路径。用户自带 API 密钥(在 v0.8 中发布 ——
connector_credentials+allow_fallback=false);上游系统的原生授权自然强制范围。剩余工作:按连接器的管理员 UI 来要求按用户凭证(全局禁用管理员回退),以及显示哪些组织成员仍未绑定自己密钥的健康仪表板。 - Tier 3 — 中间层(登录票证交换):用于前端/后端分离系统,没有用户范围的 API 密钥。用用户提供的凭证调用系统的登录端点,缓存返回的短期票证,在过期时自动刷新。新的
LoginTicketCredential类型与 API 密钥 / OAuth 并行;连接器规范声明auth_type: login_ticket,包含login_endpoint、ticket_field和refresh_strategy。适配器层根据每个请求将票证转换为出站认证头。 - 跨层可审计性:每个工具调用都在
ConnectorCallLog中标记caller_user_id、effective_credential_source(user / admin-fallback / ticket)和scope_rules_applied,以便运维可以在事件后回答”谁实际上以谁的身份运行了什么”。
Channel → Integration 升级
目前 Feishu 被设计为 Channel + Connector 对——交付管道和 API 接口。企业部署需要第三个角色:Integration(同一个第三方绑定还提供 SSO 和组织图同步)。在 v0.9 中实现,因为现有的 Feishu 绑定已覆盖 4 个必需方面中的 3 个,身份认证方案解锁了上层 Tier-2 授权(用户可在登录时获取自己的上游 token,而不是手动配置 API 密钥)。- Channel → Integration 模型:将
Channel从”仅出站交付”升级为ThirdPartyIntegration父类,包含三个可选的子功能——(a) Delivery(现有 Channel 行为:发送卡片、门控确认);(b) Login(OIDC / 自定义 SSO;“使用 Feishu 登录”同时产生 FIM 会话和上游平台 token);(c) Org graph sync(将上游部门/成员镜像到 FIM 组织结构;计划驱动或 webhook 驱动)。管理员可按绑定切换各功能。 - Feishu SSO 作为 Integration 功能:复用现有 Feishu 应用绑定(app_id/secret 已在 Channel 上)向每个 Feishu 租户已绑定到组织的用户公开”使用 Feishu 登录”。登录时获得的 token 成为用户对 Feishu Connector 的默认凭证——消除 Tier-2 强制执行中”去获取你自己的 API 密钥”的摩擦。
- Org graph sync(Feishu → FIM org):将 Feishu 部门 + 成员拉入 FIM;将 Feishu 租户管理员 / 部门负责人 / 成员角色映射到 FIM owner/admin/member。为下一步的 WeCom 和 DingTalk,以及 v1.0 中的 Kingdee / Yonyou / SAP ERP-OA 适配器奠定基础。
公开 API(第 2 阶段)
第 1 阶段(已发布):API 密钥认证中间件、作用域支持、精选 OpenAPI 规范、Mintlify API 参考文档及交互式演练场。- 按密钥速率限制 — 每个 API 密钥可配置的请求/分钟和请求/天限制;
429 Too Many Requests响应包含X-RateLimit-*标头 - 按密钥使用配额 — 月度令牌/请求预算,包含管理员仪表板和阈值告警
- 按端点的作用域强制执行 — 所有受保护端点上的
require_scope("chat")依赖;具有scopes=chat的密钥只能访问聊天相关 API - API 版本控制 (
/v1/...) — 稳定的版本化 API 契约;日落端点的弃用标头 - Webhook 回调 — 为每个 API 密钥注册 webhook URL;接收对话完成、智能体错误和异步任务结果的 POST 通知
- SDK 生成 — 从 OpenAPI 规范自动生成 Python 和 TypeScript 客户端 SDK;发布到 PyPI 和 npm
- 开发者门户 — Mintlify 文档中的交互式”试用”面板;密钥所有者可见的使用分析
- API 密钥轮换 — 一键密钥轮换,包含宽限期(轮换后旧密钥有效期为 24 小时)
- 批量/异步 API —
POST /api/batch接受最多 100 个查询;返回batch_id用于轮询结果;适用于批量知识库查询或多智能体编排 - 外部依赖的断路器 — 防止下游 LLM 提供商或连接器不可用时的级联故障;自动回退和恢复
可观测性与智能体运行时
- 智能体追踪层(可观测性++): 应用级运行/追踪/线程层级用于智能体调试 — 每个对话 →
Trace,每个 LLM 调用/工具调用/DAG 步骤 →Span,包含输入/输出/token/时序。前端追踪查看器带时间线和可展开的 LLM 调用负载。这超越了 OTel(基础设施级)以为开发者和企业客户提供可操作的智能体循环调试。OpenTelemetry 导出作为数据接收选项。以 LangSmith 的运行/追踪/线程概念为模型 — 智能体可观测性的行业验证模式。 - 指标仪表板: 延迟、成功率、token 使用、连接器调用分析 — 按智能体、按用户、按组织分解
-
断路器: 三态机(关闭/打开/半开)带每连接器故障追踪、5xx 检测和监控端点(v0.8 提前发布) -
工作流运行保留清理: 后台清理任务,可配置最大年龄和每工作流最大计数;每工作流覆盖;管理员端点用于手动触发(v0.8.1 发布) -
工作流版本变更摘要:(v0.8.1 发布)compute_blueprint_diff()在版本保存时从蓝图差异自动生成人类可读摘要 -
DAG 质量大修: 非快速步骤的默认模型升级;规划中的技能自动发现;法律/医疗/金融领域的引用验证器;结构化内容上下文保留;路由器中的领域分类与领域感知模型选择(v0.8.1 发布) -
ReAct 中的领域模型升级: 专业领域自动升级到推理模型,强制网络搜索和引用验证(v0.8.1 发布) -
每模型原生函数调用切换:(v0.8.1 发布)tool_choice_enabled设置让模型跳过强制工具选择,直接进入 JSON 模式 -
DatabaseMetaTool(数据库连接器的渐进式披露): 单个(v0.8.1 发布)database元工具带list_tables/discover/query子命令替代每个数据库连接器的 3N 个单独工具;通过DATABASE_TOOL_MODE环境变量可配置(progressive默认,legacy回退) -
通过(v0.8.1 发布)request_tools元工具按需工具加载: 当智能选择后有 >12 个工具可用时,LLM 可在对话中动态加载额外工具;在 JSON 和原生函数调用模式中都有效 -
MCPServerMetaTool(MCP 的渐进式披露): 单个(v0.8.1 发布)mcp元工具带discover/call子命令替代 N*M 个单独 MCP 工具;通过MCP_TOOL_MODE环境变量可配置(progressive默认,legacy回退) -
工作流连接依赖自动订阅: 扩展市场订阅级联以自动订阅工作流的连接依赖(API 连接器、MCP 服务器)。工作流节点可引用连接器、MCP 服务器、智能体(递归引用更多依赖)和子工作流 — 完整树中的所有连接依赖必须在订阅时自动订阅,在取消订阅时级联清理。由于递归子工作流解析和循环检测,比技能/智能体更复杂。解决方案(技能/智能体)连接依赖自动订阅的对应物(v0.8.1 发布) -
工作流真实执行器: 用完整实现替换 MCP 和 BuiltinTool 节点执行器存根(MCP 服务器发现+工具调用;ToolRegistry 集成)(v0.8.1 发布) - 智能体钩子系统: 在 LLM 循环外 运行的确定性强制层 — 钩子在工具事件上自动执行,无法被智能体指令绕过。三个钩子点:
PreToolUse(执行前验证/阻止)、PostToolUse(执行后副作用)、SessionStart(注入动态上下文)。内置钩子:每个连接器调用时自动写入ConnectorCallLog(当前手动);组织处于只读模式时阻止写操作;在智能体接收前自动截断超大 DB 查询结果;按连接器调用频率限流。用户定义的钩子:每智能体 YAML 配置(hooks:字段)声明在匹配工具事件上触发的 shell 命令或 Python 可调用对象 — 现代智能体框架共享的基于钩子的强制模式。关键设计原则:钩子用于”必须始终发生”的逻辑,不应依赖 LLM 记住执行。指令说”记录所有调用”;钩子实际记录它们。指令说”不在只读模式下写入”;钩子实际阻止它。- 钩子系统骨架 + FeishuGateHook — 基于类的
PreToolUseHook/PostToolUseHook抽象接线在 ReAct 循环下方;第一个具体钩子是FeishuGateHook,它拦截标记为requires_confirmation=True的工具,并通过组织的飞书频道路由批准。完整钩子生命周期(用户定义的 YAML 钩子、内置审计/阻止/截断钩子、SessionStart)仍在 v0.9 范围内。为 2026-04-24 路演提前发布。 - 钩子批准游乐场 — UI 驱动的往返测试器:频道详情表现在启动一个对话框,创建真实的
ConfirmationRequest行,将生产卡发送到飞书,并实时轮询决定。执行生产钩子会采用的确切代码路径,使预发布排练和演示保真。 - 钩子系统在 ReAct + DAG 运行时中实时 —
build_hook_registry_for_agent在每个聊天会话上解析agent.model_config_json.hooks.class_hooks;ReAct 和 DAG 入口点都在工具分发前实例化钩子。工具适配器将requires_confirmation公开为公共属性,以便钩子谓词可以鸭子类型而无需适配器耦合。配对一个端到端烟雾脚本(scripts/smoke_feishu_gate.py),涵盖通过真实智能体循环的批准/拒绝路径。 - 每钩子配置传递 —
class_hooks条目今天是裸字符串;要覆盖FeishuGateHook.timeout_seconds、poll_interval_seconds或callback_base_url按智能体,模式需要接受{"name": "feishu_gate", "config": {...}}对象,这些对象作为 kwargs 转发给钩子工厂。低风险 v0.8.5 后续;当前默认值(120s 超时/1.5s 轮询/env-var 回调 URL)对 v0.8 可接受。
- 钩子系统骨架 + FeishuGateHook — 基于类的
- 智能体工作区(持久智能体桌面): 三层:(1) 工具输出卸载 — 自动保存超大工具响应(>8K 字符)到
workspace://文件,返回截断预览 + URI;内置工具read_workspace_file、list_workspace_files、write_workspace_file用于选择性访问和智能体生成的工件。(2) 交接笔记 —write_handoff(summary)用于跨压缩/会话切换的上下文转换。(3) 工作区 UI — 前端文件浏览器面板按对话(预览文本/JSON/CSV、下载、删除/重命名);跨会话文件保留;按用户存储配额集成。扩展适配器中的truncate_tool_output()+GET /api/conversations/{id}/workspace端点 - 智能文件内容注入 +
read_uploaded_file工具: 小上传文件(<32K字符)自动内联到 LLM 上下文;大文件获得元数据+工具提示。双模式read_uploaded_file工具(分页读取+正则搜索)。GET /api/files/{file_id}/content端点、.content边车存储、文件 API 响应中的content_length -
智能文档处理(视觉感知): 自适应文档处理 — PDF 页面通过 PyMuPDF 为视觉能力模型(GPT-4o、Claude 3/4、Gemini)渲染为图像;通过 pdfplumber 的纯文本回退。Admin 中的每模型(v0.8.2 发布)supports_vision标志。两种模式(视觉/文本)通过DOCUMENT_PROCESSING_MODE环境变量可配置。智能 PDF 处理:文本丰富页面提取文本+嵌入图像(token 高效),扫描页面渲染为全页 PNG。DOCX/PPTX 嵌入图像提取。多轮视觉持久化。预构建沙箱镜像(Dockerfile.sandbox)。缓存页面渲染带.pages/边车 -
通用文档转换((v0.8.3 发布)convert_to_markdown+ OCR) — 内置智能体工具包装 Microsoft MarkItDown,默认对每个智能体可用。将 PDF、Word、Excel、PowerPoint、HTML、JSON、CSV、XML、ZIP、EPUB、Outlook .msg、图像、音频、YouTube URL 和数据 URI 转换为对话中的干净 Markdown。Office 文件和扫描 PDF 页面中的嵌入图像通过官方markitdown-ocr插件使用工作区的视觉能力 LLM(DB 优先,ENV 回退)自动 OCR。相同的转换内核由 RAG 摄取管道共享,因此聊天时转换和知识库摄取生成字节相同的 Markdown。非 OpenAI 提供商(Claude、Gemini、Bedrock、Azure)通过LiteLLMOpenAIShim透明支持,该 shim 将任何 FIM One LLM 呈现为 openai-SDK 形状的客户端,然后通过 LiteLLM 路由。零回归回退:当没有视觉模型可用时,纯文本提取继续完全如前 - 跨会话文件管理: 文件浏览器 UI、存储配额、自动过期清理
- 会话级文件关联: 追踪哪些文件在哪些对话中使用
- 跨会话对话回忆: 智能体工具列出、搜索和读取过去对话历史 —
list_conversations、search_conversations(跨历史的关键字/正则表达式)、read_conversation(检索完整线程)。启用”我们上次讨论了什么”和”找到我上周要求的 API 变更”工作流。与跨会话文件管理配对形成完整的长期智能体记忆层 - 沙箱强化: v2 改进代码执行隔离
- 性能测试: 并发负载基准
- MCP 连接池: 每请求 STDIO 子进程生成不可扩展 — 100 并发用户 = 每 MCP 服务器 100 个子进程。使用每用户环境隔离(由
(server_id, env_hash)键入)池 STDIO 连接;SSE/HTTP 传输共享httpx.AsyncClient会话。目标:池 STDIO 的≤100 ms热启动,O(1) HTTP 连接每 MCP 服务器,无论用户计数 - 内部工具基准 — 用于使用 EVAL CENTER 基础设施量化工具参数变更(系统提示词、自反思频率、工具选择阈值)的内置测试套件
- 工作流触发身份可观测性: 添加
ExecutionContext.trigger_source("webhook" | "cron" | "manual" | "batch" | "sub"),在五个WorkflowEngine实例化站点(trigger_workflow、run_workflow、batch_run_workflow、scheduler、sub_workflow)的每一个处填充。今天这些路径隐式混合所有者身份(wf.user_id— webhook/cron)与调用者身份(current_user.id— manual/batch);默认值合理但约定未记录,因此 401 类故障(“为
Prompt Cache + 推理 Follow-ups(来自 Batch A MVPs)
这些项目完成了 Batch A 中已发货的部分工作(对话恢复、系统提示词注册表、思考块)并将缓存覆盖范围扩展到剩余的提供商系列。- Gemini Context Cache Adapter:Google Gemini 使用单独的 REST API(
POST /v1beta/cachedContents→ 返回cacheName→ 在后续generateContent调用中通过cachedContent: "<cacheName>"引用),而不是 Anthropic 使用的内联cache_control标记。需要一个GeminiCacheAdapter来进行生命周期管理(预注册前缀 → 引用 cacheName → TTL 感知失效),集成到OpenAICompatibleLLM的 Gemini 路径或 LiteLLM 的 Gemini 提供商中。读取折扣约 0.25×,最小前缀 32,768 tokens(Gemini Pro)/ 4,096(Flash)— 主要受益者是长上下文 KB/RAG 智能体和文档密集型工作流。 - 提示词注册表扩展到规划器 / 验证器 / 域分类器:将
PromptRegistry+DYNAMIC_BOUNDARY模式从 ReAct 扩展到剩余的 LLM 调用点:DAGPlanner、PlanAnalyzer、StepVerifier、CitationVerifier、DomainClassifier、ExecutionModeRouter、CompactUtils。目前这些在每次调用时都从头重建提示词。频率低于 ReAct,因此 ROI 较低,但完成了缓存故事。 - 按智能体
cache_ttl配置:让智能体所有者在ephemeral(5 分钟,默认,写入成本低)和extended(1 小时,写入成本高 2 倍但更适合批处理 / 计划工作流)之间选择。在 Agent 模型上显示为一个字段,并在支持的地方通过cache_control: {"type": "...", "ttl": "..."}传递。 - DAG 步骤级检查点表:当前 A1 对话恢复 MVP 持久化合成 tool_results 和缓存的 SSE 事件,但 DAG 中间步骤状态仅存在于内存中。新的
dag_execution_step表快照每个步骤的 tool_calls、结果和工件引用,以便 DAG 中途断开连接可以恢复而无需重新执行已完成的步骤。与前端useSseResumehook 配对以实现端到端连续性。 - Message 上的专用
tool_call_id列:目前tool_call_id存在于metadata_JSON 中,需要json_extract(...)/::json->>查找来进行孤立工具使用查询。对于高流量部署,一级索引列将使恢复传递以 O(log n) 而不是 O(n) 扫描运行。在规模需求之前优先级较低。 - 中流思考 token 重建:当前恢复粒度是”下一个完整 SSE 事件”— 如果断开发生在思考 delta 内,客户端从以下事件重新启动。Token 级恢复需要重新发出飞行中思考块的缓冲 tokens。小众改进;仅当用户在不稳定连接上报告思考 UX 抖动时才值得追求。
- API 中继缓存诚实性探针:后台工具(管理员触发或计划)通过每个配置的中继发送两个相同的 Claude 请求,比较实际计费输入与
cache_read_input_tokens,并标记剥离cache_control标记或不传递 0.10× 折扣的中继。显示为工作区级别的”中继健康”信号 — 对于通过中文 API 代理路由的企业来说是有用的运营工具。
可靠性后续工作(智能体核心优先级矩阵)
智能体核心集成蓝图(第0–3阶段,I.1–I.16)的主体已在v0.8.2和v0.8.3中发布。下面的项目来自仍需关注的并行优先级矩阵。- 内容替换状态持久化(流式传输不变量#2):“一旦看到,命运冻结”——已经发送给客户端的消息内容在恢复/重新加载时不得进行逆向变更。需要与A1的SSE游标对齐的替换账本。被阻止在理解实际用户可见的故障上;没有主动投诉。
- 附件上下文路由器:使用
alreadySurfaced+readFileState去重、聚合附件预算和活跃性检查的更智能的附件注入。防止在每个回合上重新发送相同的50KB PDF提取。与工作区文件卸载耦合(已在v0.9计划中)。 - 辅助查询工作线程(提示词工作线程池):用于召回/分类/摘要/会话记忆查询的专用轻量级池,以便它们不与主智能体LLM调用争夺速率限制预算。前提条件:提示词注册表扩展(上述)。
生态系统与扩展
- 定时任务 + 事件触发的智能体(Loop): 类似 cron 的后台任务触发;
scheduled_jobs+job_runs数据库表;APScheduler 集成;任务 CRUD API + 任务历史 UI;通过消息推送连接器进行结果通知。范围涵盖时间触发(cron)和事件触发(webhook 入站)两种模式 — 在后台异步运行的智能体就是 Hub 模式下的异步子智能体用例。 -
预构建解决方案模板(市场种子内容): 首次用户注册时发布到市场的 8 个开箱即用的垂直解决方案 — 财务审计、合同审查、数据报告、IT 帮助台、人力资源入职、销售助手、内容写手、会议总结。每个方案都捆绑了一个智能体 + 技能,包含中文操作流程;通过(已在 v0.8.1 中发布)ensure_solution_templates()幂等引导,发布到市场组织以实现即时市场可用性 - 数据库架构高级构建器: 用于大规模数据库的 AI 驱动架构管理智能体 — 战略性表注释(基于模式、SQL 执行信息)、按域前缀进行批量可见性管理、针对 1K–7K+ 表部署的迭代多轮注释;补充现有批量注释任务,提供选择性和业务上下文推理
-
资源分支(包装阶段 1 — v1.0 包装系统的前置条件): 所有按资源分支端点已实现 — MCP Server、技能、智能体、连接器、工作流。知识库分支已移除(本质上是用户本地的)。每个(已在 v0.8.1 中完成)POST /api/{type}/{id}/fork创建一个用户拥有的深层副本,带有forked_from血统跟踪。 - 按工作流
credential_policy覆盖(owner|caller|auto): 五个工作流触发路径当前硬编码了谁的身份运行连接器操作 — webhook/cron 传递wf.user_id(所有者),manual/batch 传递current_user.id(调用者)。这符合常见的”自动化以所有者身份运行,手动运行以调用者身份运行”的预期,但企业部署有时需要按工作流覆盖(例如必须在当前值班工程师身份下运行的 cron,或必须借用所有者凭证的共享模板,即使在手动运行时)。在工作流模型上添加credential_policy字段,在 UI 中与计划 / API 密钥配置一起显示,覆盖默认的trigger_source → identity映射。前置条件:上述trigger_source可观测性。
v1.0 — 热插拔 + 可嵌入
目标: 零重启连接器添加、包生态系统和嵌入式交付。- 连接器渐进式信息披露(第5阶段): 语义引导工具选择(从查询中提取实体 → 本体注册表查找 → 连接器集合缩减;50+连接器部署时可减少90%+令牌);批处理/ETL连接器的规模模式;CLI风格通用
connector <name> <action> <params>接口 - 跨连接器实体对齐(本体注册表): 定义共享实体类型(客户、订单、资产),具有跨连接器的字段映射;DAGPlanner自动解析跨系统JOIN键;启用跨连接器查询(例如,“在Salesforce中订购过Shopify的客户”),无需硬编码字段名称
- 热插拔连接器: 上传OpenAPI规范,AI生成配置,5分钟内上线(无需重启)
-
市场重设计第1阶段 — 解决方案 + 组件: 两层市场模型(解决方案:智能体/技能/工作流;组件:连接器/MCP服务器);范围选择器(全球市场/组织);统一订阅模型(组织自动出现已移除);KB从市场范围移除;数据迁移为现有组织成员回填订阅 - 市场包系统: 市场的可分发资源包 — 用统一打包层替换按类型的”市场”。
fim-package.yaml清单声明:元数据(名称、版本、描述、作者、许可证、标签、min_fim_version)、入口点(主要技能或智能体)、资源列表(智能体、技能、连接器、知识库、MCP服务器、工作流)及其配置引用、包间依赖关系(semver范围)、所需凭证(映射到连接器引用以进行安装时收集)和带默认值的用户可配置变量。两种消费模式: (1) 安装 — 批量创建所有资源 + 通过ID替换自动连接内部引用;安装链接到源以获取版本更新通知;POST /api/market/packages/{id}/install;(2) 分叉 — 克隆为用户拥有的可编辑副本,无更新链接(这是模板模式);POST /api/market/packages/{id}/fork。其他端点:发布(POST /api/market/packages带审查工作流)、卸载(DELETE /packages/{id}/uninstall带依赖检查 + 修改资源确认)、版本历史(GET /packages/{id}/versions)、升级(POST /packages/{id}/upgrade带按资源差异预览)。嵌套包需求的依赖解析器,具有冲突检测。PackageInstallation表跟踪每个用户安装的包及资源ID映射,用于卸载/升级。与单个资源发布共存 — 包是组合层,不是替代品;单个连接器仍可独立发布。示例依赖树:包:合同审查→技能:合同审查(入口点)→智能体:合同分析师+智能体:风险评分员→知识库:法律条款+连接器:docusign-api+MCP:pdf-extractor+工作流:合同审批流 - 创作者计划: 市场货币化层 — 创作者档案及作品集页面、按包分析(安装、分叉、活跃用户、评分/评论)、当包驱动新订阅时的联盟佣金追踪。付费包层级,包含定价、购买流程和审批工作流。创作者仪表板,包含安装趋势、收入报告和用户反馈。用于程序化包发布的公共创作者API(包作者的CI/CD)。社区功能:包评论、问答、每个版本的更新日志
- 可嵌入小部件:
<script src="fim-one.js">注入到主机页面 - 页面上下文注入: 小部件读取主机页面上下文(当前ID、URL、DOM选择器)
- 高级触发器: Webhook入站事件;计划作业增强(多时区、日历感知)
- 批量执行: 通过DAG处理1000+项目
- 企业安全: IP白名单、静态加密、SSO
- 知识库高级编辑器: 为管理大型知识库的高级用户提供构建器模式智能体 — 批量URL摄取、重复检测、差距分析、文档生命周期管理;使用ReAct工具循环扩展现有知识库AI聊天
冻结功能(已发布,仅维护)
根据正交性策略,这些功能已发布并正常运行,但不会获得新功能(仅进行错误修复):| 功能 | 版本 | 冻结原因 |
|---|---|---|
| ReAct 智能体 | v0.1, v0.9 | 模型现已具有原生工具调用能力。中间循环自反思(v0.9)防止长链中的目标漂移。工具观察合成质量已改进(8K 字符,可通过 REACT_TOOL_OBS_TRUNCATION 配置) |
| DAG 规划 / 重新规划 | v0.1, v0.5, v0.7.5 | 模型推理能力不断提升;分解逐渐变为单次完成。v0.7.5 中已发布逐步验证(DAG_STEP_VERIFICATION)。已加固:级联失败传播、验证器状态修复、规划器工具描述、完整重规划历史、基于白名单的工具缓存。14 个引擎常数已作为环境变量公开——不再计划新的规划原语 |
| 内存(窗口、摘要、紧凑) | v0.2, v0.5 | 上下文窗口不断增长(200K+);对外部内存管理的需求减少 |
| RAG 管道 | v0.5 | 提供商正在原生构建检索功能(OpenAI file_search、Gemini Search Grounding) |
| 基础生成 | v0.5 | 模型在引用方面不断改进;5 阶段管道的边际价值递减 |
| ContextGuard / 固定消息 | v0.5 | 按现状发布;无新功能 |
考虑中(无限期延迟)
根据正交性策略,这些功能需要高投入且面临吸收风险:| 功能 | 延迟原因 |
|---|---|
| 多智能体编排(深层级结构) | 提供商正在原生构建(OpenAI Swarm、Google A2A 及类似的多智能体产品)。FIM One 的 CallAgentTool 覆盖单级委派场景;事件触发的后台智能体由 v0.9 中的定时任务覆盖 |
| 智能体自修改技能(过程记忆) | 智能体在执行期间更新自己的 skill.md — 高复杂度、安全/审计表面积大。取决于智能体技能系统(v0.8)先发布。如果企业客户明确请求自改进智能体,则重新评估 |
| 升级至 v0.9。价值在于选择性读取,而非上下文容量 — 跨框架验证已确认。原始延迟理由(“200K+ 窗口降低紧迫性”)是错误的 | |
| 跨会话长期记忆 | 上下文窗口快速增长(200K–2M);提供商添加内置记忆(OpenAI 记忆、Gemini 上下文缓存);实现成本高 vs 差异化价值递减。当企业客户明确请求时重新评估 |
| 记忆生命周期(TTL、配额) | 取决于跨会话记忆;一起延迟 |
| 主动上下文压缩工具(智能体触发) | 已通过 ContextGuard(v0.5)明确冻结。200K+ 上下文窗口降低价值。除非上下文成本成为主要企业投诉,否则不会重新审视 |
| 浏览器自动化 / 计算机使用 | 高维护成本(DOM 变化、反爬虫、沙箱)。行业正在汇聚到计算机使用模式(Anthropic、OpenAI Operator、Google Mariner)和 MCP 浏览器工具(Puppeteer/Playwright MCP)。通过 MCP 集成消费,不自建。当稳定的计算机使用 MCP 标准出现时重新评估 |
| Web 推送通知 | 浏览器原生推送通过 Service Worker + VAPID。与 IM 频道集成(v0.8)重叠,后者覆盖企业首选频道(Lark/Slack/WeCom/Email)。IM 推送具有更高的企业价值;Web 推送 是仅限门户用户的锦上添花。IM 频道发布后重新评估 — 如果用户请求超出 IM 覆盖范围的浏览器通知 |
| 多用户工作流协作编辑 | 实时共同编辑同一工作流蓝图(Figma/Notion 风格),具有光标感知、冲突解决和按节点锁定。高实现成本(CRDT / OT、存在基础设施),企业需求不明确,相比今天的”一次一个编辑器 + 版本差异”模式。如果多个企业明确请求共享实时编辑,则重新评估 |
| 按节点工作流执行权限(运行时 RBAC) | 单个工作流运行内的细粒度授权 — 例如”节点 X 需要 finance_approver 角色才能执行”。今天授权发生在工作流级别(谁可以触发)和连接器级别(谁的凭证运行);按节点 RBAC 添加第三个轴,具有实质性复杂度且没有活跃客户请求 |
| 跨组织工作流共享与实时更新 | 订阅来自另一个组织的工作流并接收上游更新,无需重新分叉。今天订阅 = 分叉(快照),所以破坏性上游更改永远不会传播。实时更新需要上游兼容的模式演进 + 冲突解决;高维护成本。如果企业要求”跨子公司共享工作流”,则重新评估 |
版本如何与模式对齐
| 版本 | 独立模式 | 副驾驶模式 | Hub | 备注 |
|---|---|---|---|---|
| v0.1–v0.3 | 可用 | 尚未支持 | 尚未支持 | 仅限门户,单用户 |
| v0.4 | 可用 | 尚未支持 | 尚未支持 | 多对话,智能体管理 |
| v0.5 | 可用 | 尚未支持 | 尚未支持 | 知识库 + RAG |
| v0.6 | 可用 | 可能 | 可能 | 连接器发布;副驾驶模式/Hub 可通过手动配置实现 |
| v0.7 | 可用 | 就绪 | 就绪 | 管理平台;多租户身份验证;生产就绪 |
| v0.8 | 可用 | 就绪 | 优化 | 每系统 RBAC + 审计日志;更易于集成 |
| v0.9 | 可用 | 就绪 | 生产 | 可观测性、性能、加固 |
| v1.0 | 可用 | 优化 | 企业级 | 包系统、创作者计划、热插拔、可嵌入小部件、Webhook、批处理 |
资源分配 (v0.8–v1.0)
正交性策略指导工作重点分配:| 类别 | 分配比例 | 版本 | 原因 |
|---|---|---|---|
| 连接器平台 (v0.6+) | 50% | 持续进行 | 核心差异化;无被吸收风险 |
| 企业功能 (RBAC、审计、安全、可观测性) | 30% | v0.8–v1.0 | 虽然平凡但持久;生产环境必需。智能体追踪层是商业支撑点 |
| 智能体智能 (技能系统、定时智能体) | 15% | v0.8–v0.9 | 指令+工具+技能 差异化故事;低被吸收风险——框架验证模式,但企业SOP是客户特定的 |
| v0.1–v0.5 维护 | 5% | 持续进行 | 仅限错误修复;无新功能 |
指标驱动的里程碑
成功通过以下指标衡量:| 指标 | v0.7 目标 | v0.8 目标 | v1.0 目标 |
|---|---|---|---|
| 已部署的连接器 | 5 | 20+ | 100+ |
| 企业客户 | 1–2 | 5–10 | 20+ |
| 平均连接器设置时间 | 2 周 | 2 天 | 5 分钟(热插拔) |
| 令牌效率(DAG vs ReAct-only) | 30% 降低 | 40% 降低 | 50% 降低 |
| 正常运行时间 SLA | 99.5% | 99.9% | 99.95% |
| 支持工单主题 | 集成、设置 | 连接器自定义逻辑 | 热插拔、扩展 |
开放问题 / 待定事项
- Marketplace 审核:如何验证社区包和单个资源?对包配置中的凭证泄露进行自动扫描?(v1.0)
- Token 经济学:如何为多用户、多智能体场景定价?(v1.0)
- 包版本控制:已安装包中的破坏性更改——使用迁移脚本自动升级,还是每次更新都需要手动批准?依赖钻石问题解决?(v1.0)
- 包定价:免费与付费层级、Creator Program 的佣金率、支付提供商集成?(v1.0)
- 包凭证 UX:安装时凭证收集——向导式逐步操作还是延迟设置?使用相同连接器类型的包之间的凭证共享?(v1.0)
- 遥测选择退出:如何尊重隐私偏好?(v0.8)
- 连接器版本控制:如何管理连接器 API 中的破坏性更改?(v0.8)
- 速率限制:已发布按用户工作流速率限制(滑动窗口 10 runs/min,3 并发)。按连接器和按智能体速率限制待定 (v0.9)
- 连接器授权层级选择:管理员如何发现哪个层级适用于给定的上游系统?自动探测(尝试按用户 API 密钥 → 回退到登录票证 → 回退到共享数据库)vs. 在连接器规范中显式声明?我们如何在 UI 中表达”此连接器支持第 2 层但管理员选择在第 1 层运行”而不会让非技术管理员感到困惑?(v0.9)
- 集成 vs 连接器二元性:当 Feishu 绑定同时是 SSO 提供商和 API 调用表面时,我们如何在设置中呈现它?一个对象带三个切换开关,还是三个共享凭证的独立绑定?卸载语义的含义(撤销 SSO 是否会杀死连接器?)(v0.9)