Files
DEMO-AGENT/docs/需求分析/4.场景模块需求.md

3.8 KiB

场景模块需求文档

1. 模块定位

Scenarios 模块负责管理业务 Agent 场景,是整个平台快速适配未知复试题的核心入口。

场景定义需要尽量配置化,避免把具体业务逻辑写死在 Django View 或 Agent Core 中。

2. 模块目标

  • 读取预置场景配置。
  • 展示可用业务 Agent 列表。
  • 提供场景详情。
  • 为 Chat 模块提供当前场景的完整配置。
  • 以 YAML 配置文件作为 V1 场景唯一事实来源。

3. 职责边界

3.1 负责

  • 场景模板定义。
  • 场景配置文件读取。
  • 场景元信息展示。
  • 场景启用/禁用状态。
  • 场景与文档、审计日志的关联关系。

3.2 不负责

  • 不执行 Agent 对话。
  • 不直接处理 RAG 检索。
  • 不直接调用工具。
  • 不直接调用大模型。
  • 不解析结构化输出。

4. 场景模板需求

V1 预置 5 类场景模板:

模板 ID 模板名称 适用题型
knowledge_qa 知识库问答助手 SOP、制度、客服知识库、内部文档问答
document_review 文档审核助手 合同审核、制度审核、材料合规检查
ticket_assistant 工单处理助手 客服工单、售后工单、运维工单
quality_analysis 质量异常分析助手 生产质量、缺陷分析、原因定位
risk_audit 风险审核助手 财务审核、采购审核、报销审核、合同风险

5. 场景配置字段

场景配置文件使用 YAML。V1 的后台管理只管理上传文件、审计日志和示例业务数据等外围数据,不作为场景配置入口。

必填字段:

字段 类型 说明
id string 场景唯一标识
name string 场景名称
description string 场景说明
agent.role string Agent 角色
agent.goal string Agent 目标
agent.instructions list[string] Agent 指令
agent.system_prompt string 可选字段;配置后优先作为系统提示词
rag.enabled boolean 是否启用 RAG
tools list[string] 可用工具列表
output.type string 输出模板类型
audit.enabled boolean 是否记录审计

示例:

id: document_review
name: 文档审核助手
description: 检查合同、制度或 SOP 中的风险点和缺失项

agent:
  role: 文档审核专家
  goal: 根据审核规则和知识库内容输出结构化审核意见
  system_prompt: ""
  instructions:
    - 只基于用户提供文档和知识库进行判断
    - 不确定的问题必须标记为需人工复核
    - 输出必须包含风险等级和修改建议

rag:
  enabled: true
  collection: document_review
  top_k: 5

tools:
  - check_required_fields

output:
  type: document_review_report

audit:
  enabled: true

6. 页面需求

6.1 场景列表页

路径:/

展示内容:

  • 场景名称。
  • 场景描述。
  • 适用题型。
  • 是否启用。
  • 进入对话按钮。

6.2 场景详情页 可选

路径:/scenarios/<scenario_id>/

展示内容:

  • Agent 角色。
  • Agent 目标。
  • RAG 是否启用。
  • 可用工具列表。
  • 输出模板类型。

V1 可以不做独立详情页,在对话页展示当前场景摘要即可。

7. 服务接口需求

Scenarios 模块至少需要提供以下服务函数:

list_scenarios() -> list[ScenarioConfig]
get_scenario(scenario_id: str) -> ScenarioConfig
validate_scenario(config: dict) -> ValidationResult

8. 验收标准

  • 首页可以展示 5 个预置场景。
  • 点击场景可以进入对应对话页。
  • 场景配置来自配置文件,而不是硬编码在 View 中。
  • 后台管理不作为 V1 场景配置编辑入口。
  • 缺失必填字段时能给出明确错误。
  • Chat 模块可以根据 scenario_id 获取完整场景配置。