三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

第12篇:技能摘要的动态生成与数据库双层同步

第12篇:技能摘要的动态生成与数据库双层同步

第12篇:技能摘要的动态生成与数据库双层同步

大模型能看到哪些技能,决定了它能回答什么问题。在智能助手中,66 个技能通过代码注册到内存注册表,但管理员需要通过 UI 禁用某些技能、修改描述文本——这些修改必须持久化到数据库,并在下次启动时仍然生效。本文拆解"代码注册表 + 数据库表"的双层架构:_sync_skills_to_db()在启动时将代码技能同步到数据库(保留 enabled 状态),get_skills_summary_for_llm()优先从数据库读取启用状态和元数据覆盖生成大模型可见的技能清单,数据库不可用时回退到内存注册表。这套机制让管理员无需修改代码就能管控大模型的能力边界。

一、问题提出:为什么需要双层同步

先看一个真实场景。系统中有一个delete_project技能,允许大模型根据用户自然语言指令删除项目。在开发测试阶段这很方便,但部署到生产环境后,管理员觉得"通过对话删除项目"太危险,想暂时禁用这个能力——但不想删代码,因为将来可能重新启用。

如果技能清单只存在于代码注册表中(SkillRegistry._skills字典),管理员无法通过 UI 禁用——代码注册表是只读的运行时结构,UI 没有接口去修改它。每次应用重启后,注册表从代码重建,任何运行时修改都会丢失。

解决方案是引入数据库表ai_skill作为第二层。数据库存储每个技能的en

← 返回列表