
DB-GPT Skill 实战指南任务识别、load_skill 加载与工具链路编排【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT本篇指南聚焦 DB-GPT 中 Skill技能包的实际使用方式讲清楚智能体在一次会话中如何识别任务该用哪个 skill、如何加载其指令、按什么工具链路执行并最终渲染出报告。读完本文你将掌握load_skill等内置工具的典型调用组合、财报分析与 CSV/Excel 分析两大真实场景的执行路径并能结合仓库源码理解 skill 的渐进式加载机制与校验规则。基本使用流程在 DB-GPT 的实际使用中skill 遵循一条固定的五步模式识别先识别当前任务适合哪个 skill。智能体在系统提示词中只看到每个 skill 的名称与描述元数据根据用户请求与描述的匹配程度判断是否有合适的 skill 可用。加载加载该 skill 的说明和指令即读取对应SKILL.md的完整内容。执行按照 skill 定义的工作流逐步执行。调用工具调用 skill 所需的内置工具如sql_query、code_interpreter等。交付返回最终结果或者渲染最终报告。渐进式披露先看描述需要时才读全文这条流程与仓库源码中的设计是一一对应的。从根目录的 skills.py 可以看到DB-GPT 采用“渐进式披露Progressive Disclosure”模式SkillsMiddleware在构造系统提示词时只注入每个 skill 的名称、描述和SKILL.md路径而不会把所有 skill 的完整指令一次性塞进上下文# skills.py 中的 system prompt 模板节选 **How to Use Skills (Progressive Disclosure):** 1. **Recognize when a skill applies**: Check if the users task matches a skills description 2. **Read the skills full instructions**: Use the path shown in the skill list above 3. **Follow the skills instructions**: SKILL.md contains step-by-step workflows, best practices, and examples 4. **Access supporting files**: Skills may include helper scripts, configs, or reference docs - use absolute paths具体实现上SkillsLoader.load_skills()按顺序扫描配置的多个 skill 源目录后加载的同名 skill 会覆盖先加载的把每个包含SKILL.md的子目录解析为LoadedSkill对象SkillsLoader.match_skills(user_input)提供了基于描述的关键词匹配能力用于从用户输入推断候选 skillSkillsMiddleware.create_skills_prompt_section()负责把“skill 位置 skill 列表 使用说明”渲染进系统提示词。这种“先发现、再按需完整加载”的设计让智能体在 skill 数量增多时上下文开销依然可控——这也解释了为什么使用流程的第一步是“识别”第二步才是“加载全文”。被加载的 skill 长什么样被加载的对象是仓库skills/目录下一个个自包含的能力包。以财报分析技能 skills/financial-report-analyzer/SKILL.md 为例其头部是标准的 YAML frontmatter 元数据--- name: financial-report-analyzer description: 专门用于上市公司财报如年度报告、季度报告的深度分析。该技能能够自动提取关键财务指标计算核心财务比率生成可视化图表并结合行业背景生成专业的财务分析报告。 ---description不仅是展示文案更是第一步“识别”的依据。skills.py 中对元数据有明确约束编写或导入 skill 时需要满足约束项规则依据name最长 64 字符仅允许小写字母、数字与连字符不能以连字符开头或结尾不允许连续连字符_validate_skill_nameskills.pydescription缺失时该 skill 被跳过超过 1024 字符会被截断并告警_parse_skill_metadataskills.py文件体积SKILL.md超过 10 MB 会被跳过MAX_SKILL_FILE_SIZEskills.py可选字段version、author、license、skill_type、tags、allowed-tools空格分隔的工具名列表skills.py常见工具链路根据 skill 类型不同执行路径通常由以下内置工具串联完成load_skill→ 加载 skill 指令sql_query→ 在需要时获取结构化数据code_interpreter→ 计算指标、转换数据、生成图表shell_interpreter→ 在需要时执行 shell 命令html_interpreter→ 渲染最终 HTML 报告或页面load_skill链路的起点load_skill是整个链路的第一环。按照 load_skill 工具文档它按 skill 名称和文件路径加载 skill 内容通常是SKILL.md中的指令入参为{ skill_name: skill name, file_path: skill file path }它的工作是从注册表中解析出该 skill → 读取指令或 prompt 模板 → 把加载到的工作流内容返回给智能体。文档同时特别强调了两点边界load_skill只加载指令不执行工作流本身加载完成后智能体应当严格遵循该 skill 要求的工具与步骤。文档给出的典型示例正好对应仓库中的真实 skill{ skill_name: financial-report-analyzer, file_path: skills/financial-report-analyzer/SKILL.md }各工具在链路中的分工可以这样理解sql_query负责“取数”面向数据库的结构化查询code_interpreter负责“算数”Python 计算与图表生成shell_interpreter负责“执行环境操作”html_interpreter负责“交付呈现”。一个 skill 的工作流本质上就是对这四个环节的一次编排。示例场景一财报分析智能体处理财报任务时的完整链路加载 financial-report skill执行需要的数据提取与分析步骤生成图表与指标结果使用html_interpreter渲染最终报告。这条链路在仓库中不是示意而是有完整落地的 financial-report-analyzer skill。对照其SKILL.md可以看到一个典型的“多步工具编排 报告渲染”工作流数据提取与结构化执行scripts/extract_financials.py传入财报文件路径提取营收、净利润、资产、负债等核心数值返回 JSON财务比率计算执行scripts/calculate_ratios.py计算毛利率、净利率、ROE、资产负债率等输出模板占位符键值并参考references/financial_metrics.md保证指标定义准确图表生成执行scripts/generate_charts.py自动产出 3 张可视化图表核心指标柱状图、盈利能力横向条形图、资产结构环形饼图系统将图片复制到静态目录并记录 URL 映射深度分析遵循references/analysis_framework.md从盈利质量、偿债风险、营运效率和现金流四个维度撰写 7 段分析文本渲染报告调用html_interpreter的template_path模式指定financial-report-analyzer/templates/report_template.html模板并传入分析文本{ template_path: financial-report-analyzer/templates/report_template.html, data: { PROFITABILITY_ANALYSIS: LLM撰写的盈利能力分析..., SOLVENCY_ANALYSIS: LLM撰写的偿债分析..., EFFICIENCY_ANALYSIS: LLM撰写的营运效率分析..., CASHFLOW_ANALYSIS: LLM撰写的现金流分析..., ADVANTAGES_LIST: li优势1/lili优势2/li, RISKS_LIST: li风险1/lili风险2/li, OVERALL_ASSETTMENT: LLM撰写的综合评价... }, title: XX公司 2023年度财报分析报告 }值得注意的是该 skill 的一个工程细节data字典中只需传入 LLM 撰写的 7 段分析文本此前步骤产出的 30 个数据指标与图片 URL 映射由后端自动合并。这正是“skill 定义工作流顺序 内置工具各司其职”的体现。示例场景二CSV / Excel 分析智能体处理数据文件任务时的链路加载一个数据分析 skill检查上传文件使用 Python 分析计算指标并可视化结果如果需要再将结果渲染为报告。与财报场景的区别在于这里通常不需要sql_query数据来自上传文件而非数据库核心链路收缩为load_skill→ 文件检查 →code_interpreterPython 计算与可视化→ 可选的html_interpreter报告渲染。仓库中对应参考 csv-data-analysis 与 walmart-sales-analyzer 两个 skill前者提供通用 CSV 分析工作流后者展示了“脚本生成图表 HTML 模板报告”的完整交付形态。最佳实践原文档给出的四条实践建议结合上述机制可以落地为更具体的检查清单当工作流需要可重复时优先使用 skill——skill 的价值在于把“一次成功的执行路径”固化下来而不是每次让模型临场发挥严格遵循 skill 中定义的指令——load_skill加载的是约束而非建议步骤顺序、参数传递如上例中 Step 1 的 JSON 传给 Step 2/Step 3都应照做优先使用 skill 指定的工具而不是临时替代方案——例如 skill 指定用html_interpreter的模板模式渲染报告时就不要改用自由生成 HTML当 skill 产出网页或报告时优先使用html_interpreter做最终渲染——它是交付环节的默认出口。延伸阅读dbgpts Introductionskill 的定义、包结构SKILL.md/scripts//references//assets/与“为什么 skill 重要”的完整说明Tools Overview智能体工具体系总览Built-in tools内置工具文档目录load_skill 工具文档load_skill参数与使用边界skills.pyskill 加载器、元数据校验与系统提示词注入的源码实现how-to-use-custom-skill.md如何创建自定义 skill【免费下载链接】DB-GPTopen-source agentic AI data assistant for the next generation of AI Data products.项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考