ALMANACARCHITECTUREDESIGN DECISION · 2026-08-28

CONNECTOR · ALMANAC · AGENT

三个独立系统,两条单向依赖。

多个 Connector 只负责把来源送进 Almanac;多个 Agent 独立面向用户,只通过 API 使用 Almanac。 Almanac 不托管、不反向依赖 Connector 或 Agent。

一句话决策 先原样拆出当前 Agent;不在 Almanac 新增服务,也不趁迁移发明 Registry、agent_id 或第二把 Key。

一座知识中枢两条不互相调度的入口
采集
SOURCE工作通道
INDEPENDENTConnector(s)
服务
USER终端用户
INDEPENDENTAgent(s)
SHARED FOUNDATION

ALMANAC

ASSETWORKERKNOWLEDGE

资产 · 加工 · ACL · 检索 · 引用

× Connector 与 Agent 没有直接调用

CORE MODEL · 核心模型

把 Almanac 想成一座知识中枢。

首期只拆飞书 Connector 与当前知识 Agent。以后可以增加其他 Connector 和 Agent,但这次不提前制造通用平台能力。

知识采集链

多个 Connector,把不同来源可靠送进 Almanac

目标契约允许按来源扩展多个独立 Connector;首期只实现飞书消息、云文档与附件。Almanac 接手后的加工、索引、权限和检索不再由 Connector 承担。
01飞书来源

消息、云文档、附件、编辑与撤回

02飞书 Connector

保留来源坐标并转成稳定记录

03Almanac Asset

登记权威资产、版本与血缘

04Worker / Knowledge

异步加工、索引并受控供给

BOUNDARY & SCOPE · 归属与首期

未来可以多个,
现在只原样拆一个。

首期只交付飞书 Connector 和现有知识 Agent。多实例是未来事实,不代表现在必须建设 Registry、Router 或统一运行骨架。

INDEPENDENT SERVICEConnector(s)

来源接入与可靠投递

→ ingestion API
INDEPENDENT COREAlmanac

资产 · 知识 · 权威检索

← retrieval API
INDEPENDENT SERVICEAgent(s)

终端交互与智能体运行

CONNECTOR FAMILY

多个 Connector,同一采集契约

每个 Connector 只理解自己的来源协议,并向 Almanac 投递统一记录。

一期实施飞书 Connector

消息、云文档、附件及增量事件

后续S3 Connector

保留类型与绑定契约,暂不实现

后续信云库 Connector

保留类型与绑定契约,暂不实现

AGENT FAMILY

先迁现有知识 Agent

当前 Agent 由部署和飞书终端确定,继续按 scenario 选择 Profile;API Key 不是 Agent 身份。

一期实施知识 Agent

配套飞书终端适配,复用 Almanac 检索

后续其他业务 Agent

需求明确后独立接入,不在本期预造路由平台

OWNERSHIP · 谁负责什么

四层职责,不能再揉成一个 Provider。

点击一层查看它应该拥有和明确不该拥有的能力。最终边界以长期目标为准,当前混合实现只属于迁移态。

应该拥有

✓飞书来源认证与连接

✓历史拉取与增量事件

✓消息与附件标准化

✓来源坐标与幂等投递

明确不拥有

×Agent 选择与会话

×知识库物理结构

×检索、回答与终端回复

AGENT SERVICE · 等价迁出边界

不是新平台,
就是当前 Agent 能力的新家。

首期把 Connector 里的知识 Agent、互动管线、会话、安全、人工转接和飞书回复整体搬出;接口和数据语义保持原样。

终端入口
飞书 · 一期
WEB · 后续
APP · 后续
LOGICAL BOUNDARY

Agent Service

现有互动能力的独立运行边界

CURRENT BEHAVIOR

Feishu Interaction

mention 解析scenario 路由会话上下文安全包装人工转接终端回复

scenario_id 继续选择现有 Profile;Connector 与 Agent 引用同一个 API Key

一期实现一个,后续按同一契约扩展
PHASE ONE · EXISTING AGENT

知识助手

deployment = knowledge-assistant

围绕企业知识进行检索、解释与引用。

携带已验证身份与授权范围调用 Almanac →
ALMANAC / AIINSIGHT PROFILE · EXTERNAL沿用当前 base_url · API Key · scenario 路由 · 检索与引用行为
不是一个新网关

Agent Service 是当前互动能力的独立归属,不复制外围通用 API 网关职责。

不是Connector 下游

Connector 的采集链到 Almanac 即结束。

不是Agent 管理平台

首期没有 Registry、Runtime Router、agent_id 或版本路由。

不是Almanac 内部模块

Agent 独立部署,通过现有接口使用 Almanac,不进入 Almanac 仓库。

概念位置真正职责
Agent Service独立服务边界

承接当前知识 Agent、互动管线、会话、安全与回复

Feishu AdapterAgent Service 内部

沿用当前 mention、thread、audience 与回复行为

Scenario Provider现有路由

继续按 scenario_id 选择 Profile;不新增 agent_id

Knowledge Agent现有业务执行层

原样保留当前提示词、查询、澄清和答案组织

Almanac Profile共享外部依赖

同一 base_url 与 API Key 同时供 Connector 写入和 Agent 检索

MIGRATION · 从当前到目标

先解耦,再迁出;不做一次性重写。

当前生产闭环仍在 Connector 中运行。迁移必须保留灰度、回滚和权限验收,不能把目标架构伪装成已经完成。

TARGET · APPROVED

Connector、Almanac、Agent 三个系统彼此独立。

Connector 只采集,Almanac 只保留知识与资产,Agent 只面向用户;首期分别落飞书与知识 Agent。

Connector(s)Feishu first
→ALMANAC←
Agent(s)Knowledge first
01
冻结当前行为

用现有 825 项测试和新增兼容测试锁定采集、问答、引用、转接与回复。

02
直接搬 Agent 代码

把 Agent、会话、互动管线和技能资源迁到 almanac_agent,旧路径只做兼容转发。

03
保持现有路由

继续使用 scenario_id → profile_id → base_url / API Key,不新增 agent_id。

04
保持一把钥匙

Connector 写入和 Agent 检索引用同一个 Profile Secret,不复制第二把 Key。

05
再拆运行入口

沿用飞书已有采集/回复开关拆组合根,先验证行为等价,再切部署。

06
优化另起变更

Almanac Agent Chat 迁移、检索归并、多 Agent 路由以后分别评审,不混进本次拆分。

SOURCE CHECK · 源码证据

哪些是事实,哪些是目标,明确分开。

设计依据来自 2026-08-28 对两个本地仓库的源码核对;AINS 内部知识库登录已过期,因此未把内部文档当作本轮证据。

已确认Almanac 已有权威检索流水线

/api/v1/insight/knowledge/retrieval/query 统一完成身份范围、召回、融合、充分性与引用;响应给出 evidence_status。

来源:retrieval.py · pipeline.py
待迁出Almanac 仍混有单 Agent 入口

/knowledge/chat/agent 直接构造 AinsCliSkillAgent;它是历史归属,不是新增 Agent Serving 的落点。

来源:agent_chat_service.py
迁移中Connector 已拆开采集与旧互动类型

采集使用 KnowledgeIngestSink;旧互动接口明确标记为待迁出,不再称为 Gateway。

来源:providers/base.py
目标先完成行为等价拆分

Connector 与 Agent 独立运行,但保留当前 scenario / Profile / API Key 和互动行为;以后扩展另立变更。

来源:本轮架构决策
3独立系统边界
2单向 API 依赖
1+1首期:飞书 + 知识 Agent

范围外但保留扩展契约:S3、信云库 Connector,以及其他业务 Agent;本期不做伪实现。

NON-NEGOTIABLE · 不变式

后续实现不能越过的四条线。

01没有 Connector → Agent 调用

采集交付到 Almanac 后,Connector 的业务链路结束。

02同一 Profile 只用一把 Key

Connector 写入与 Agent 检索引用同一个 Secret;API Key 不是 Agent 身份。

03Almanac 不托管 Agent

现有 Agent Chat 迁出;Agent 只通过稳定知识 API 使用 Almanac,不与其共仓。

04不在迁移里造新东西

本期只搬飞书与知识 Agent;多 Agent 路由、检索归并和凭证优化以后再做。

THE DECISION

Connector 负责让知识进来。
Agent 负责让能力走向用户。

Almanac 是独立的知识与资产核心;Connector 与 Agent 是两侧独立、可扩展的服务家族。