ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

思源笔记 v3.7 深度解析:全新 UI、内核插件、CLI 与 AI 知识库

思源笔记 v3.7 深度解析:全新 UI、内核插件、CLI 与 AI 知识库 思源笔记 v3.7 深度解析全新 UI、内核插件、CLI 与 AI 知识库【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan版本总览思源 v3.7 的“全面焕新”思源笔记SiYuanv3.7 是一个标志性的里程碑版本。该版本对桌面端与移动端进行了全面焕新在“界面美观度”与“智能化”两个方向同时发力。根据 v3.7.0.zh-TW.md 的发布说明这一版的核心亮点包括五大主题重新设计的用户界面、移动端速记、核心插件系统、命令行界面CLI、AI 知识库并伴随大量编辑器、数据库、导出与多语言相关的改进与缺陷修复。阅读本文后你将掌握v3.7 新增的 CLI 直连内核数据层能力含serve子命令与破坏性变更、内核级插件系统的架构与热重载机制、移动端闪念速记的使用方式、AI 智能体与嵌入向量检索的技术路径以及所有破坏性变更对插件开发者与高级用户的实际影响。注意本文事实均来自当前仓库源码与官方变更记录版本号以 util/working.go 中的Ver 3.7.2为当前仓库实际版本基准v3.7.0 为其上一个正式版本。重新设计的用户界面新的默认外观主题与图标v3.7 引入了全新的默认外观主题对应 issue #17384与默认外观图标#7976。仓库中appearance/themes/daylight与appearance/themes/midnight目录下的 CSS 与主题配置即为随版本发布的默认主题appearance/icons/litheness目录则是新的默认图标集。同时appearance/covers目录中提供了 70 张内置封面图cover_001.webp至cover_072.webp供文档封面设置使用。新的设置界面与视觉层级设置界面在 v3.7 中被重做PR #17675顶部标题栏与标签列合并#10749整体视觉层级更清晰。外观底部停靠栏#8890也得到了改进。这些改动体现在app/src/config与app/src/layout等前端的渲染逻辑中——从源码结构看设置面板的配置项依旧围绕kernel/conf下的各配置结构体如editor.go、appearance.go、search.go等进行读写因此新界面只是交互层重构底层配置模型保持兼容。移动端速记闪念速记v3.7 为移动端新增了“速记”能力issue #14414灵感来临时长按应用图标即可即开即写。内容会被保存为带时间戳的笔记保存路径可自定义碎片化想法不再丢失。从前端源码看速记功能仅在移动端内核支持。app/src/config/tabs/fileTab.ts中的注释明确写道// 仅移动端内核支持使用闪念速记 https://github.com/siyuan-note/siyuan/issues/14414因此该功能面向 Android / iOS 移动端入口是应用图标的长按手势属于系统级快捷操作写入的笔记以时间戳命名存储路径可在设置中自定义例如归档到指定的笔记本或目录。同一版本还补齐了移动端的一批体验改进移动端多块选择#13207、移动端切换手机/桌面界面#13952、平板拖拽#17612、移动设备拖拽#17628、三指选择后立即复制#17633、iOS 上打开用户指南#17851、Android 核心后台进程改进#17641以及 Android 上引用不可用#17877的修复。核心插件系统常驻内核的单一数据源架构定位v3.7 引入了核心插件Kernel Plugin系统PR #17487。与传统的“前端插件”不同内核插件常驻在核心进程中运行作为单一数据来源single source of truth使多个窗口和实例之间始终保持一致彻底告别多窗口场景下的数据冲突。从源码看这一机制由kernel/plugin包实现manager.go 是插件的生命周期管理器负责插件的发现、加载、启动与停止插件的物理目录为工作空间下的data/plugins/见pluginsDir: filepath.Join(util.DataDir, plugins)每个插件的入口文件是插件目录下的kernel.js管理器以单例sync.Once形式存在InitManager()在核心启动流程中被调用见 serve.go 中go plugin.InitManager()。生命周期与热重载PluginManager维护PluginManagerStateStopped/PluginManagerStateRunning两种状态并使用fsnotify监听插件源码目录当kernel.js文件发生Create或Write事件时会自动触发插件重载hot reload插件启用/停用由model.SetPetalEnabled驱动管理器通过model.OnKernelPluginStart/Stop等回调与前端插件体系Petal打通启动与停止均使用sync.Map 每插件互斥锁保证不同插件可以并发启停同一插件不会并发启停若配置Conf.Bazaar.PetalDisabled或未信任集市!Conf.Bazaar.Trust内核插件将被整体禁用这是重要的安全开关。对开发者的意义内核插件常驻核心进程意味着它可以直接读写核心数据层、调用核心内部能力而无需经过前端渲染进程转发从而在多窗口/多实例场景下天然避免数据冲突。插件开发者需要关注 v3.7 中的相关破坏性变更详见下文“破坏性变更”章节例如updateTransaction的弃用、lang值改为 RFC 5646 规范等。命令行界面CLI直连内核数据层设计目标v3.7 为内核新增了命令行界面issue #17674。无需启动思源即可直连核心数据层适用于脚本与自动化任务批量导入导出、定时处理、外部系统整合。从源码看CLI 基于 spf13/cobracmd.Execute()子命令定义于kernel/cli/cmd/目录包括asset.go attr.go block.go bookmark.go dailynote.go database.go document.go export.go file.go history.go import.go inbox.go notebook.go outline.go ref.go repo.go root.go search.go serve.go sql.go sync.go system.go tag.go template.go workspace.go涵盖文档、块、笔记本、数据库、属性、书签、搜索、SQL 查询、导出导入、历史、同步、模板、标签、大纲、引用、收件箱、仓库等数据层操作几乎覆盖核心 API 的完整能力面。全局参数root.go 定义了四个全局Persistent参数参数简写默认值说明--workspace-w环境变量SIYUAN_WORKSPACE_PATH为空则~/SiYuan指定工作空间路径必须是合法的思源工作区--format-ftable输出格式table或json--dry-run-false干跑模式只校验并打印将要执行的操作不真正改动数据--log-level-vwarnCLI 单次命令默认值日志级别off/trace/debug/info/warn/error/fatal几个值得注意的细节工作空间校验CLI 启动时会校验appearance/langs目录存在用于定位内核运行目录并校验workspacePath是合法工作区util.IsWorkspaceDir日志默认 warn 级CLI 单次命令默认只输出警告及以上日志到temp/siyuan-cli.log避免内核初始化日志刷屏serve子命令例外仍跟随conf.json的system.logLevel命令结束自动落库CLI 单次命令没有后台 cron 周期刷 SQL 队列server 模式才有job.StartCron因此PersistentPostRunE会在命令执行完后统一调用model.FlushTxQueue()与sql.FlushQueue()保证“写完即可搜索”——这也是 CLI 与常驻服务在数据一致性上的关键差异。子命令与输出格式所有子命令支持-f json输出机器可读结果便于脚本解析--dry-run可用于对导入、导出、删除等有副作用的操作做安全演练CLI 支持对加密笔记本的安全限制rejectEncryptedNotebookCLI会拒绝 CLI 对加密笔记本及其块的操作避免 CLI 进程成为明文/密文文件的旁路入口exportDataCmd、notebookRandomIconCmd与涉及加密笔记本 id 的操作会被拒绝。破坏性变更核心服务需显式serve子命令v3.7 有一条对部署方式影响最大的破坏性变更issue #17866核心服务现在需要显式使用serve子命令。即过去直接运行内核二进制即启动 HTTP 服务的方式不再可用现在必须运行./kernel serveserve子命令serve.go负责启动内核 HTTP 服务其完整参数如下参数默认值说明--wd内核可执行文件所在目录的上一级打包后为resources/思源工作目录working directory--port0HTTP 服务端口0表示自动分配--readonlyfalse只读模式--accessAuthCode空访问授权码即锁屏密码--lang空界面语言ar/de/en/es/fr/he/hi/id/it/ja/ko/nl/pl/pt-BR/ru/sk/th/tr/uk/zh-CN/zh-TW--modeprod运行模式dev/prod--sslfalse是否启用 HTTPS 与 WSS--attach-uifalse将内核生命周期挂接到桌面 UI 进程Electron 使用--safe-modefalse以安全模式启动对应桌面端新增的“安全模式”入口#17948serve的启动流程Run函数展示了完整的服务初始化链路BootWithFlags→InitJwtKey→InitConf→server.Serve→ 各 SQL 数据库初始化 →BootSyncData→InitBoxes→LoadFlashcards→job.StartCron→ 自动生成文件历史 → 插件管理器 → 嵌入向量索引器 → 资产/表情/主题监听 → 信号处理。注意CLI 单次命令模式与serve是两种不同的进程形态。前者执行完即退出、内存索引随之释放依赖末尾 flush 落库后者是长驻服务拥有完整的后台任务cron、插件、嵌入索引、文件监听等。AI 知识库智能体与嵌入向量检索v3.7 开始公开测试思源智能体Agent与嵌入向量搜索用自然语言与笔记对话、用语义检索管理知识。仓库中的相关实现包括kernel/agent/agent.go智能体核心内嵌系统提示词system prompt定义了块Block、文档、标题层级、嵌套列表、hPath、日记等思源领域概念并通过一组领域工具document.*、block.*、search.fulltext、search.semantic、dailynote.*、database.*、inbox.*、attr.*、todo_write、file等操作笔记数据kernel/model/embedding.go嵌入向量索引器实现StartEmbeddingIndexer在 serve.go 中以 goroutine 启动kernel/model/rerank.go检索结果的重排序rerank能力kernel/api/ai.goAI 相关 API 端点kernel/conf/ai.goAI 配置项kernel/util/openai.goOpenAI 兼容接口的底层客户端封装。从架构看语义检索链路为全文检索search.fulltext 语义检索search.semantic→ 重排序rerank→ 交由智能体整合回答。CLI 模式同样支持语义检索——root.go 中model.PrepareEmbeddingSearch()的注释说明CLI 一次性命令无法运行嵌入索引的死循环索引器因此只把语义搜索开关置真命中已构建的嵌入索引如search -m 4之类带语义模式的命令可正常工作。说明AI 知识库在 v3.7 属于“公开测试”特性文中关于其内部实现的事实以仓库源码为准具体模型接入与计费方式请以思源官方后续发布为准。设置密钥和变量Secrets Variablesv3.7 支持设置密钥secrets和变量variablesissue #17933用于在智能体工具、MCP 服务等场景中安全地引用敏感信息。实现位于 kernel/conf/secrets.go密钥Secret一条命名密钥Name为引用名如weread_key运行时为明文落盘时通过 AES 加密util.AESEncrypt引用语法支持{{secrets.NAME}}显式占位符也支持无前缀的 shell 风格$NAME与${NAME}仅在密钥库存在对应名字时才替换找不到则保留原文便于调用方/LLM 发现尚未配置的密钥统一解析ResolveSecretsVars串行调用密钥与变量的Resolve形成“$NAME 先密钥后变量”的优先级供智能体http_request工具、MCP 服务 headers 等统一消费。注意密钥只在内存明文状态下解析InitConf解密后落盘均为密文。请勿把密钥明文写入笔记正文。编辑器、数据库与其他体验改进v3.7 在编辑器与数据库上同样有大量改进按主题归类如下。编辑器与文档编辑跨文件撤销#4866撤销/重做不再局限于当前文档嵌入区块就地编辑#17800嵌入块支持就地修改内容超级区块拖拽调宽#9521、区块拖拽工具提示改进#14034、列表与超级区块拖放体验改进#17893根据字体文件自动调整编辑器字体字重#10313、字体菜单支持搜索#17691AltEnter在列表末端插入新项目PR #16314、递归折叠/展开块PR #17651区块标改进#17751、区块标支持在上方或下方快速插入块#17900、区块标提示简化#17945行级元素解析改进#17611、行级公式与图片复制改进、剪切行为与复制一致#17571、粘贴大量text/siyuan内容不再导致渲染进程崩溃#17569、字数统计改进PR #17572剪贴板粘贴改进PR #17850、复制到微信公众号时列表左缩进修复#17759所有编辑器共享同一个 Lute 实例降低多分页内存占用#17869改进空标题的边界情况PR #17468。数据库属性视图数据库筛选器组合#10550数据库项目支持“创建副本”#10850数据库日期字段输入格式改进#13428数据库多选字段值支持拖拽排序#13468数据库页脚字段计算支持基于模板的计算#14394数据库视图性能改进#17830取消单元格合并时tbody中的th转换为td#17835。表格与搜索包含合并单元格的表格粘贴体验改进#11888表格中方向键导航不绕过合并单元格#17587、无外围块的表格中方向键失效修复#17567撤销编辑时保留水平滚动位置#13829搜索新增标题和列表子类型筛选器PR #17597通过文件名搜索可从数据快照返回文件列表#17258新增简繁中文敏感度选项PR #17846。导出、图表与显示新增 Markdown 导出参数对话框#17031桌面端/移动端文件导出不再依赖浏览器下载#17405、#17580改进导出预览的 HTML 复制PR #17783、改进 PDF 导出预览界面#17687改进嵌入块中标题层级的导出#17629mermaid/graphviz 图表新增缩放和平移选项#12691Mermaid 图表中的公式渲染修复#17593改进 IFrame 区块#17659。安全与隐私不再向浏览器暴露绝对工作区路径#17410将“访问授权码”更名为“锁屏密码”#17701——这是语义上的安全术语统一修复一些安全漏洞#17624本地 HTTPS HTTP/2 支持#17822桌面端支持安全模式启动#17948Windows 数据同步因 DNS 问题失败时自动刷新本地 DNS 缓存并重试#17936。多语言与发布新增乌克兰语PR #17595、印地语#17636、印尼语#17637、荷兰语#17638、泰语#17639支持——appearance/langs目录下可看到对应语言文件uk.json、hi.json、id.json、nl.json、th.json为 Linux 新增 rpm 发布包PR #17596推送通知标题变更后窗口标题同步更新#17621。移除功能与破坏性变更清单移除功能不再支持直接将列表区块插入到列表项区块中#17890。依据思源的树形结构约束列表项的父级必须是列表NodeList嵌套列表应通过“在列表项下创建子列表”的方式实现。破坏性变更变更影响对象核心服务需显式serve子命令#17866所有直接运行内核二进制的部署/脚本一些核心 API 的破坏性变更#15727依赖旧版 API 的插件/api/history/rollbackDocHistory移除notebook参数#17411调用该 API 的插件/脚本弃用updateTransaction替换为updateTransactionElement#17828使用事务更新的插件修改lang值以符合 RFC 5646#17855依赖语言代码的插件与配置开发者迁移时请重点检查内核服务启动命令、历史回滚 API 参数、事务更新 API、语言代码取值。开发者相关更新v3.7 面向插件开发者的更新还包括提供用于导出文件的插件函数#15484改进 LocalStorage 相关 APIPR #17482addDock允许在任意生命周期阶段调用#17506修复插件安装/卸载/启用/停用后全局快捷键注册/注销失效#17599为/api/query/sql新增只读模式PR #17696新增核心 API/api/lute/md2htmlPR #17697新增核心 API/api/history/createDocHistory#17774RTL 布局为.protyle新增.rtl类并修复提示/块引用样式#17741升级 Electron 至 v42.5.0#17617、升级 highlight.js 至 v11.11.2#17928不再创建数据表blocks_fts_case_insensitive#17849——全文搜索的大小写敏感行为统一由sql.SetCaseSensitive(model.Conf.Search.CaseSensitive)控制改进 Linux 构建脚本PR #17632、改进数据索引稳定性#17610、避免数据仓库清理结束时长时间等待#17711。文档与规范更新新增数据库 API 端点文档#11130新增.sy格式规范文件#17961——即仓库根目录的 docs/SY-FORMAT.md定义了思源专有的.sy文档格式改进用户指南#17870并通过发布服务提供在线用户指南#17673iOS 端也支持打开用户指南#17851。缺陷修复精选v3.7 修复了多类关键缺陷值得关注的有焦点块开头按 Enter 插入位置错误#14742反向链接面板 ShiftClick 多选失效#17867重新索引回退导致 sort.json 损坏#17862页面加载完成前滚动导致突然重新定位跳变#17864启动时缺少window.siyuan.storage报错#17620工作清单复选框切换问题PR #17840提示块内部删除块引用后撤销异常#17665reconnectWebSocket的 ping 隔离CONNECTING 套接字下保持存活PR #17680包含连续图片的内容设置行级元素样式时图片消失#17704无法将笔记本拖拽到最末端#17709搜索窗口内为文档添加标签异常#17623导入 Markdown 后标签页自动关闭#17615。升级与部署建议脚本与自动化用户检查启动内核的脚本统一改为./kernel serve如需批处理可先使用--dry-run演练再执行实际操作插件开发者对照上文“破坏性变更清单”逐一迁移特别是updateTransaction与lang值自托管用户可利用 CLI 在不启动界面的情况下完成数据备份、SQL 查询与批量导入导出利用密钥/变量机制安全管理 AI 工具与 MCP 的凭据多窗口用户升级后建议迁移到内核插件体系以获得跨窗口一致的单一数据源体验。思源 v3.7 在“界面焕新—内核能力开放—智能检索”三条主线上同时发力CLI 让数据层向脚本与外部系统完全开放内核插件解决了多窗口数据一致性难题而智能体与语义检索则开启了“笔记会思考”的新阶段。对于追求自动化与知识库智能化的用户这是一个值得立即升级的版本。【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表