Skip to content

智能助手预加载对话组件与知识库技能 ​

状态:implemented 类型:feature Owner:backend/yuxi/modules/agents/presets/default_chatbot.py

问题 ​

智能助手需要从首轮获得对话组件和知识库技能的完整说明,减少按需发现的不确定性。

决策 ​

实现方案 ​

默认助手预设的 context.preload_skills 使用内置标识 chat-widgets 与 knowledge-base。Skills 可用范围沿用 Chatbot 的默认全部;运行准备继续按访问权限解析预加载与依赖工具。预设初始化仅为新记录写入默认配置,已持久化配置保留用户选择。

默认助手的选择部分取代对话组件决定中的按需加载默认;通用 Chatbot 的空预加载默认值继续保留。

替代方案 ​

按需读取保留发现成本;预加载全部会扩大无关提示和工具范围。固定预加载这两个 Skill 对应用户明确选择。

验证 ​

验收主张失败面语义 Owner直接证据 / 命令负向案例当前结果
默认助手预加载有效内置技能,保留授权与默认选择语义预设发现、资源归一化与指令注入default_chatbot / context / SkillsMiddleware实际发现预设并构造 ChatBotContext,两个 slug 与内置文件头匹配,skills 保持 all;既有发现、context、runtime 与 middleware 85 项单测通过不可访问技能被过滤,预加载说明不重复注入,其他 Skill 保持按需加载Passed

执行 docker compose exec -T api uv run --group test pytest test/unit/agents/test_builtin_discovery.py test/unit/agents/test_context_auth.py test/unit/agents/skills/test_skill_runtime.py test/unit/middlewares/test_skills_middleware.py -q,85 passed。Ruff 的格式与 lint 检查通过。

docker compose exec -T api uv run --group test pytest test/unit/repositories/test_agent_repository.py -q,60 passed。默认助手创建用例以两个明确标识校验新记录的 config_json,删除预设配置或写错技能名会失败。

后果 ​

预加载增加首轮提示长度并提前开放授权依赖工具。已有部署需要通过助手配置选择这两个预加载项,重启不会覆盖已有配置。

本项目基于 MIT License 开源,欢迎使用和贡献。