实习第一周:环境、目标与一个值得借鉴的双端架构
本周主线
实习第一周,三条线并行:
- 继续开发本地优先的 Obsidian 知识库 Agent:knomate,重点理解业务流程。
- 搭建开发环境:装软件、配大模型接口、明确实习目标和工时。
- 补大数据与 C++ 基础:编译调试、鲲鹏 / ARM、大数据全链路。
深入:knomate 为什么把」边界」定死在架构里
knomate 采用 插件前端 + 独立后端 的双端分离架构,WebSocket 是唯一通信通道。
flowchart LR
A[插件前端 UI] -->|WebSocket| B[后端 AgentLoop]
B -->|指令| A
A --> D[本地双索引检索]
D -->|检索结果| B
B -->|AI 回复| A核心是职责分离:
- 前端插件层:只做本地 IO 和检索,不跑大模型。
- 后端调度层:跑 AgentLoop,封装大模型接入,分发工具调用。
- 数据索引层:关键词倒排做精准匹配,向量索引做语义匹配,文件变化自动增量更新。
- 安全隔离:本地修改笔记必须先出预览,用户确认后才写入;后端无权直接改文件。
这个设计最值钱的地方是 权限和安全在架构层面就定死了,而不是靠代码约束。前端不碰模型、后端不碰文件、写操作必须确认 —— 每一条都是一道天然边界。比起」程序员自觉遵守约定」,这种架构级隔离可靠得多。
用户主流程:侧边栏输入 → 打包成消息经 WebSocket 发到后端 → 校验通过后开启 AgentLoop。工具分两类,内置的后端直接跑,依赖前端的由后端下发指令让本地执行再回传。
其他成果:环境与大数据的底子
- 环境就绪:开发软件、两套大模型后端(智谱 / 华为 Ascend)配好,实习目标和工作时间确认。
- 大数据地图:用」电商 10 亿日志分析」串起 Flume → Kafka → HDFS → Spark → Hive → Flink → MySQL 全链路。
- C++ 基础:跑通 MinGW + CMake 编译调试模板,搞清 aarch64 / x86 差异与鲲鹏 920 定位。
沉淀与下一步
三条收获:进新环境先搞定环境、目标、人;学大数据先有全流程地图再学细节;架构上的边界设计能省掉运行时的大量麻烦。
下一步:深入 Flink 与流计算设计,进入组内 wiki 学习和 Omni 生态研读。
参考资料
- knomate 项目仓库:https://github.com/int2t05/obsidian-knomate
- Apache Flink 官方文档:https://flink.apache.org/