Skip to content

Commit d72273f

Browse files
committed
feat(skills): 新增内置技能 deep-reporter,支持生成科研报告和深度分析类长报告
1 parent ef0f5ca commit d72273f

File tree

4 files changed

+80
-0
lines changed

4 files changed

+80
-0
lines changed

backend/package/yuxi/agents/skills/buildin/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ class BuiltinSkillSpec:
2121
_SKILLS_ROOT = Path(__file__).resolve().parent
2222

2323
BUILTIN_SKILLS: list[BuiltinSkillSpec] = [
24+
BuiltinSkillSpec(
25+
slug="deep-reporter",
26+
source_dir=_SKILLS_ROOT / "deep-reporter",
27+
description="指导生成科研报告、行业调研和其他需要深度分析的结构化长报告。",
28+
version="2026.03.28",
29+
tool_dependencies=["tavily_search"],
30+
),
2431
BuiltinSkillSpec(
2532
slug="reporter",
2633
source_dir=_SKILLS_ROOT / "reporter",
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
name: deep-reporter
3+
description: "指导生成科研报告、行业调研、技术分析等需要深度研究的长篇报告。当任务目标是形成结构化、可引用、具有分析深度的正式报告时使用此技能。"
4+
---
5+
6+
# 深度报告技能
7+
8+
当用户要求产出科研报告、课题综述、行业研究、技术选型分析、竞争对比、专题调研或其他正式长报告时,使用此技能组织研究与写作过程。
9+
10+
## 适用场景
11+
12+
- 科研论文综述、研究进展梳理、方法比较
13+
- 技术报告、方案评估、架构选型分析
14+
- 行业研究、竞品分析、政策与市场调研
15+
- 基于用户附件、知识库、网页资料整理深度报告
16+
17+
## 操作流程
18+
19+
1. 明确报告目标、读者对象、范围边界、输出语言与交付形式
20+
2. 若问题仍然模糊,先向用户补充确认关键范围,再开始研究
21+
3. 优先从用户提供的材料、知识库、可用工具检索结果中收集证据,必要时再补充外部资料
22+
4. 先整理报告提纲,再分章节归纳事实、方法、数据、观点与局限
23+
5. 在正式写作前检查证据是否足够支撑结论,避免只堆砌材料
24+
6. 输出完整报告,包含清晰章节、分析结论、引用来源,必要时附表格或图片
25+
26+
## 报告要求
27+
28+
- 报告语言必须与用户提问语言一致
29+
- 优先使用正式、克制、可复核的书面表达,不要口语化
30+
- 必须围绕“问题定义 -> 证据整理 -> 分析比较 -> 结论建议”组织内容
31+
- 章节要完整,避免只有结论没有论证,或只有资料堆积没有分析
32+
- 当信息不足时,应明确指出证据缺口与不确定性,不要臆断
33+
- 当用户要求“科研报告”时,应重点覆盖研究背景、问题定义、相关工作/现状、方法或方案比较、实验或案例证据、局限性、结论与后续方向
34+
- 当用户要求“深度报告”但未限定类型时,应根据主题自适应组织章节,不必强行套科研论文结构
35+
36+
## 推荐结构
37+
38+
可根据任务类型调整,但通常应包含以下内容中的大部分:
39+
40+
1. 标题与摘要
41+
2. 背景与问题定义
42+
3. 研究范围、对象与评估维度
43+
4. 关键事实、数据与资料整理
44+
5. 方法、方案、产品或观点的分项分析
45+
6. 横向比较与优劣权衡
46+
7. 风险、限制与不确定性
47+
8. 结论
48+
9. 建议或下一步行动
49+
10. 来源
50+
51+
## 引用规范
52+
53+
- 报告中的关键结论、数据、图表、观点应绑定来源
54+
- 使用 `[标题](URL)` 或清晰可追溯的文件路径引用材料
55+
- 在文末单独列出“来源”章节,汇总所有实际引用过的资料
56+
- 若引用用户附件或知识库文件,应标明对应文件名或路径
57+
58+
## 输出约束
59+
60+
- 最终结果应直接是一份可交付的报告,而不是“我准备怎么写”
61+
- 不要暴露中间推理过程,不要把待办列表原样输出成正文
62+
- 除非用户明确要求,一般不要输出原始检索日志、原始笔记或未经整理的大段摘录

backend/test/test_skill_service.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,16 @@ def fail_read_bytes(self: Path) -> bytes:
508508
assert svc._compute_dir_hash(source_dir)
509509

510510

511+
def test_builtin_skill_specs_include_deep_reporter():
512+
specs = svc.list_builtin_skill_specs()
513+
deep_reporter = next(item for item in specs if item["slug"] == "deep-reporter")
514+
515+
assert deep_reporter["name"] == "deep-reporter"
516+
assert "深度" in deep_reporter["description"]
517+
assert deep_reporter["source_dir"].is_dir()
518+
assert (deep_reporter["source_dir"] / "SKILL.md").is_file()
519+
520+
511521
@pytest.mark.asyncio
512522
async def test_install_builtin_skill_ok(tmp_path: Path, monkeypatch: pytest.MonkeyPatch):
513523
monkeypatch.setattr(svc.sys_config, "save_dir", str(tmp_path))

docs/develop-guides/roadmap.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
- 新增 API Key 认证功能,支持外部系统通过 API Key 调用系统服务
4444
- 新增 subagents 的支持,支持在 web 中添加 subagents,以及两个内置的子智能体
4545
- 新增内置Skills reporter,并移除内置 Agent reporter,数据库报表将由 Skills 完成
46+
- 新增内置 Skills `deep-reporter`,用于指导生成科研报告、行业调研和其他深度分析类长报告
4647
- 重构内置 Skills 安装机制:内置 skill 改为在管理页以“未安装”状态展示,支持按需安装、基于 `version + content_hash` 的更新提示与覆盖确认,并对已安装内置 skill 禁止在线文件编辑
4748
- 新增知识库 PDF、图片的预览功能
4849
- 优化扩展页工具列表筛选区:将“全部分类”筛选收纳为搜索框右侧的紧凑下拉入口,并复用扩展页侧栏工具条样式,避免影响其他管理组件布局

0 commit comments

Comments
 (0)