assistant/knowledge/xuegong_demo.yaml

306 lines
22 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

id: xuegong_demo
name: 学工系统办事(演示)
description: 学工系统多业务演示。用户一句话先识别业务并抽取字段,再按业务角色登录执行。
systems:
- id: xgxt
name: 学工系统
url: https://school.miaopinai.com:29800/xuegong/
allowed_domains:
- school.miaopinai.com
- "*.miaopinai.com"
login:
# 优先级:system_accounts 表里有该用户此系统的账号 -> 自动填写(sensitive_data,LLM 看不到明文)
# 否则按 fallback_mode:quick_login = 点测试环境快捷登录按钮(角色由业务的 role 决定);manual = 请用户手动登录
fallback_mode: quick_login
# 全局已知信息(所有业务共享),运行时注入 prompt
learned:
门户: 登录后自动进入 https://school.miaopinai.com:29800/xuegong/portal,顶部导航有 首页 / 消息中心 / 待办中心,右上角有「退出」
快捷登录: 登录页「测试环境快捷登录」有 系统管理员 / 校级管理员 / 院系领导 / 辅导员 / 学生 五个按钮;点按钮只是把账号密码填进输入框,还要再点「登 录」才真正登录
辅导员日志任务: 「辅导员工作日志 → 日志填报」任务列表共 5 项:每月查课要求、谈心谈话常规要求、家访走访常规要求、主题班会常规要求、每周谈心谈话;每项「进入」后都有「新建填报」,表单地址形如 /xuegong/duiwu/ledger/my/new/{任务id}
businesses:
# ---------------- 辅导员:工作日志填报(查课 / 听课记录) ----------------
- id: counselor_worklog
name: 辅导员工作日志填报(查课)
role: 辅导员
system: xgxt
intent: 辅导员填写工作日志、每月查课日志、听课记录、查课记录填报
required_inputs:
- name: class_name
label: 班级
type: text
required: true
hint: 如 计科2301班
- name: observe_date
label: 听课日期
type: date
required: true
hint: 用户说「今天」按当天换算
- name: course_name
label: 课程名称
type: text
required: true
hint: 听的是哪门课
- name: teacher
label: 授课教师
type: text
required: true
- name: record
label: 听课记录
type: text
required: true
hint: 用户对听课情况的描述原文,如「还好还好」
- name: location
label: 听课地点
type: text
required: false
- name: follow_up
label: 后续跟进
type: text
required: false
- name: log_type
label: 日志类型
type: text
required: false
default: 查课
workflow:
# 第一阶段(已完成,2026-09-17):只读探索。结论见下方 learned
- step_id: worklog_explore_readonly
enabled: false
max_steps: 40
goal: 以辅导员身份登录学工系统,找到「工作日志」或「查课 / 听课记录」的填报入口,打开新建日志的表单,读出全部字段。只读:不填写、不提交。
instructions:
- 找到新建 / 填报表单后,用 save_artifact 保存 entry_url 和 form_fields
- 找不到时保存 menus 并在 done 里说明找过哪里,这也算完成
human_confirm_before: null
success_artifacts_any: [form_fields, menus]
# 第二阶段:填报 + 提交前确认
- step_id: worklog_fill_and_submit
enabled: true
max_steps: 60
# 填表时一步可以连做多个动作(如连填几个文本框),比一步一动作快得多
max_actions_per_step: 6
goal: 以辅导员身份登录学工系统,进入「每月查课要求」的新建填报表单(查课听课记录),按用户资料填写:班级 {class_name}、听课时间 {observe_date}、课程名称 {course_name}、授课教师 {teacher}、听课记录「{record}」。填完后逐项请用户确认,确认后点击「提交填报」并记录结果。
instructions:
- 路径:门户 → 辅导员管理 → 辅导员工作日志 → 左侧「日志填报」→ 任务列表「每月查课要求」点「进入」→ 点「新建填报」;已登录时也可直接打开已知信息里的新建填报表单地址
- 提交前先看任务详情页的已有记录列表,若已有同一天、同一班级的查课记录,调用 ask_user 询问用户是否仍要提交
- 班级是下拉框:点开后选择与「{class_name}」匹配的选项(选项形如「计科2301班(计算机科学与技术·计算机科学与技术学院)」)
- 听课时间是日期选择框:优先点进输入框直接键入 {observe_date} 再按回车;不行再用日历面板点选
- 课程名称、授课教师、听课记录按资料原文填写;听课地点、后续跟进资料里有就填,没有就留空,不要编造
- 表单里若还有资料里没有的必填项,调用 ask_user 询问用户
- 全部填好后调用 ask_user,把即将提交的每个字段和值逐项列出请用户确认,并说明将点击「提交填报」
- 用户确认后点击「提交填报」(不是「保存草稿」),然后用 save_artifact 保存 submitted_record(提交的字段和值)和 result_message(页面提示原文)
- 用户说取消或不提交:不要点提交,用 save_artifact 保存 cancelled(用户原话),不要保存 submitted_record / result_message,然后 done 说明已填未提交
human_confirm_before: submit
on_success_status: submitted
submitted_artifacts_any: [submitted_record, result_message]
# 提交后跟踪:到点拉起只读任务看审批状态。approval_status 含「通过 / 同意」→ completed,含「驳回 / 退回」→ rejected,否则继续
tracking:
interval_minutes: 60
max_checks: 48
step:
step_id: worklog_track_status
max_steps: 20
max_actions_per_step: 4
goal: 以辅导员身份登录学工系统,进入「辅导员工作日志 → 日志填报 → 每月查课要求」的任务详情页,在历史填报列表里找到之前提交的那条记录(内容:{submitted_record}),读出它当前的审批状态和审批轨迹。只读:不点任何提交 / 修改 / 撤回按钮。
instructions:
- 已登录时可直接进入「辅导员工作日志」,左侧「日志填报」→「每月查课要求」点「进入」,历史填报列表在任务详情页
- 按课程名称、授课教师、听课时间匹配那条记录;有多条相似时取时间最接近提交时间的
- 用 save_artifact 保存 approval_status(列表或详情里显示的审批状态原文,如 未审批 / 待审批 / 已通过 / 已驳回)和 approval_note(审批轨迹或审批意见原文,没有就不保存)
- 找不到那条记录时保存 approval_status=未找到记录 并在 done 里说明
learned:
入口路径: 门户 → 业务模块「辅导员管理」→「辅导员工作日志」→ 左侧菜单「日志填报」→ 任务列表「每月查课要求(查课听课)」点「进入」→ 任务详情页点「新建填报」
新建填报表单地址: https://school.miaopinai.com:29800/xuegong/duiwu/ledger/my/new/ff6be301-0fa3-4fc7-a1f8-e39f45574b24 (登录后可直接打开;表单标题「查课听课记录」)
表单字段: 课程名称(文本,必填);授课教师(文本,必填);班级(下拉,必填,仅可选主带或协带班级,如 计科2301班);听课时间(日期选择,必填);听课地点(文本,选填);听课记录(文本域,选填);后续跟进(文本域,选填)
按钮: 取消 / 保存草稿 / 提交填报
任务说明: 每月查课要求:每周至少记录 3 次,考核范围 2026-09-14 至 2026-09-20
班级下拉技巧: 点击班级输入框展开选项后,要点击选项的文字容器才能选中,直接点 option 元素无效
日期控件技巧: 听课时间输入框点进去直接键入 2026-09-17 这样的日期再按回车即可,输入框可能一直显示 invalid 样式,这是显示问题不影响提交,不要反复重试
任务列表为空: 「日志填报」任务列表有时显示「当前没有分配给你的填报任务」,此时直接打开新建填报表单地址即可
填写顺序: 课程名称、授课教师、听课记录是普通文本框,可以在一步里连续填完,再处理班级下拉和听课时间
其他日志任务: 谈心谈话常规要求 / 家访走访常规要求 / 主题班会常规要求 / 每周谈心谈话
# ---------------- 辅导员:每周谈心谈话记录 ----------------
- id: counselor_talk
name: 辅导员谈心谈话记录填报
role: 辅导员
system: xgxt
intent: 辅导员填写谈心谈话记录、每周谈心谈话日志、和某个学生谈话后的记录
required_inputs:
- name: student_name
label: 谈话对象
type: text
required: true
hint: 学生姓名或学号
- name: talk_date
label: 谈话时间
type: date
required: true
hint: 用户说「今天」按当天换算
- name: topic
label: 谈话主题
type: text
required: true
hint: 一个短语,如 学业压力 / 心理疏导 / 学业适应
- name: content
label: 谈话内容
type: text
required: true
hint: 谈了什么、学生的情况,用户原话或据实整理
- name: follow_up
label: 后续跟进
type: text
required: false
- name: key_focus
label: 标记为重点关注
type: text
required: false
hint: 是 / 否,用户没说就不填
workflow:
# 第一阶段(已完成,2026-09-17):只读探索,结论见 learned
- step_id: talk_explore_readonly
enabled: false
max_steps: 40
goal: 以辅导员身份登录学工系统,进入「辅导员工作日志 → 日志填报」,找到「每周谈心谈话」(或「谈心谈话常规要求」)任务,打开新建填报表单,读出全部字段(名称、控件类型、是否必填、下拉可选项)。只读:不填写、不提交。
instructions:
- 入口与查课日志相同:门户 → 辅导员管理 → 辅导员工作日志 → 左侧「日志填报」;任务列表里找谈心谈话相关任务点「进入」再点「新建填报」
- 如果任务列表显示没有分配任务,尝试点任务列表页面上的筛选或「全部」,仍找不到就保存 menus 并说明
- 找到表单后用 save_artifact 保存 entry_url 和 form_fields(每个字段的名称、控件类型、是否必填、可选项,用分号分隔);同一表单有多个日志任务时也记录任务名称列表 tasks
- 找不到不算失败:保存 menus 并说明找过哪里即可 done
human_confirm_before: null
success_artifacts_any: [form_fields, menus]
# 第二阶段:填报 + 提交前确认
- step_id: talk_fill_and_submit
enabled: true
max_steps: 60
max_actions_per_step: 6
goal: 以辅导员身份登录学工系统,进入「每周谈心谈话」的新建填报表单(谈心谈话记录),按用户资料填写:谈话对象 {student_name}、谈话时间 {talk_date}、谈话主题 {topic}、谈话内容「{content}」。填完后逐项请用户确认,确认后点击「提交填报」并记录结果。
instructions:
- 已登录时直接打开已知信息里的新建填报表单地址;否则走 门户 → 辅导员管理 → 辅导员工作日志 → 日志填报 → 「每周谈心谈话」点「进入」→「新建填报」
- 提交前先看任务详情页的已有记录列表,若已有同一天、同一谈话对象的记录,调用 ask_user 询问用户是否仍要提交
- 谈话对象是搜索下拉:点进输入框键入「{student_name}」,等候选列表出现后点击匹配项的文字容器;候选有多个同名时调用 ask_user 让用户选
- 谈话时间是日期选择框:点进输入框直接键入 {talk_date} 再按回车
- 谈话主题、谈话内容按资料原文填写,可在一步里连续填完;后续跟进、重点关注资料里有就填,没有就留空,不要编造;附件不上传
- 全部填好后调用 ask_user,把即将提交的每个字段和值逐项列出请用户确认,并说明将点击「提交填报」
- 用户确认后点击「提交填报」(不是「保存草稿」),然后用 save_artifact 保存 submitted_record 和 result_message(页面提示原文)
- 用户说取消或不提交:不要点提交,用 save_artifact 保存 cancelled(用户原话),不要保存 submitted_record / result_message,然后 done 说明已填未提交
human_confirm_before: submit
on_success_status: submitted
submitted_artifacts_any: [submitted_record, result_message]
tracking:
interval_minutes: 60
max_checks: 48
step:
step_id: talk_track_status
max_steps: 20
max_actions_per_step: 4
goal: 以辅导员身份登录学工系统,进入「辅导员工作日志 → 日志填报 → 每周谈心谈话」的任务详情页,在历史填报列表里找到之前提交的那条记录(内容:{submitted_record}),读出它当前的审批状态和审批轨迹。只读。
instructions:
- 按谈话对象、谈话时间、谈话主题匹配那条记录
- 用 save_artifact 保存 approval_status(审批状态原文)和 approval_note(审批轨迹或意见原文,没有就不保存)
- 找不到那条记录时保存 approval_status=未找到记录 并在 done 里说明
learned:
入口路径: 门户 → 辅导员管理 → 辅导员工作日志 → 左侧「日志填报」→ 任务列表「每周谈心谈话」点「进入」→ 任务详情页点「新建填报」
新建填报表单地址: https://school.miaopinai.com:29800/xuegong/duiwu/ledger/my/new/ee5b9c10-fa2e-4a2b-b21c-54930377e5cb (登录后可直接打开;表单标题「谈心谈话记录」)
表单字段: 谈话对象(搜索下拉 combobox,按姓名或学号搜索,必填);谈话时间(日期选择,必填);谈话主题(单行文本,必填,提示如 学业适应 / 心理疏导);谈话内容(多行文本,必填);后续跟进(多行文本,选填);标记为重点关注(单选 是/否,选填);相关附件(文件上传,选填)
按钮: 取消 / 保存草稿 / 提交填报
任务说明: 每周谈心谈话:每周至少记录 1 次,考核范围 2026-09-14 至 2026-09-20,任务长期有效
日期控件技巧: 谈话时间输入框点进去直接键入日期再按回车,输入框可能显示 invalid 样式,这是显示问题不影响提交
# ---------------- 辅导员:核实学生返校 ----------------
# 普通辅导员业务。学生请假被「返校核验」拦住时,由辅导员在自己的端上办这件事,学生随后点「继续」重试
- id: counselor_return_verify
name: 辅导员核实学生返校
role: 辅导员
system: xgxt
intent: 辅导员核实某个学生的返校情况、处理学生的未返校记录、返校核验、把学生标记为已返校
required_inputs:
- name: student_name
label: 学生
type: text
required: true
hint: 学生姓名或学号
workflow:
# 第一阶段:只读探索,找到辅导员端核实返校的入口和操作方式
- step_id: verify_explore_readonly
enabled: true
max_steps: 40
goal: 以辅导员身份登录学工系统,找到核实学生返校情况的入口(可能在「节假日离返校」「学生管理」或待办中心),找到学生「{student_name}」的未返校记录,看清核实 / 补登 / 标记已返校的操作入口和表单字段(名称、控件类型、是否必填、可选项)。只读:不点确认、不提交、不修改。
instructions:
- 先看门户业务模块里与「离返校」「返校」「核验」相关的模块,再看「待办中心」有没有相关待办
- 找到学生列表或记录列表后,用搜索或筛选定位「{student_name}」,用 save_artifact 保存 student_records(该学生的未返校记录:假期、预计返校、状态,用分号分隔)
- 找到核实 / 补登操作后,只打开弹窗或表单读字段,用 save_artifact 保存 entry_url 和 form_fields,然后关闭弹窗,不要点确认
- 找不到入口就保存 menus 并说明找过哪里,这也算完成
human_confirm_before: null
success_artifacts_any: [form_fields, student_records, menus]
# 2026-09-17 探索结论:辅导员端没有核实 / 补登入口,见 learned
learned:
带班工作台: 门户 → 节假日离返校 → 辅导员看到的是「带班工作台」https://school.miaopinai.com:29800/xuegong/affairs/holiday-checkin/counselor,三个标签页:本班概览 / 学生报备明细 / 未返校异常,顶部可切换假期
学生报备明细: 行内只有「查看详情」,弹窗只显示报备与签到信息,没有核实 / 补登 / 标记已返校的操作
辅导员端模块: 学生管理、综合测评、评奖评优、违纪处分、资助管理、请销假、节假日离返校、学工队伍、辅导员工作日志、绩效考核;学生管理子菜单为 档案统计 / 学生档案 / 填报审核 / 核对进度 / 重点关注
结论: 学生的历史「未返校」记录在辅导员端无法处理,待办中心也没有相关待办;需要管理员角色或系统侧处理
# ---------------- 学生:请假(带前置阻断声明) ----------------
# 2026-09-17 探索:测试学生账号有 10 条「未返校」记录,学生端补登窗口已关闭,页面提示「如实际已到校请联系辅导员核实」。
# 所以「发起请假」被拦截时,前置事项不是学生自己能办的,属于 other_role:由辅导员核实。表单字段要等阻断解除后再探索。
- id: student_leave
name: 学生请假
role: 学生
system: xgxt
intent: 学生请假、请病假事假、发起请假申请、销假
required_inputs: []
workflow:
- step_id: leave_explore_readonly
enabled: true
max_steps: 40
goal: 以学生身份登录学工系统,进入「请销假 → 发起请假」,打开请假申请表单,读出全部字段(名称、控件类型、是否必填、可选项)。只读:不填写、不提交。
instructions:
- 门户业务模块「请销假」→ 页面里的「发起请假」按钮
- 表单打开了就用 save_artifact 保存 entry_url 和 form_fields;不要填写不要提交
- 找不到入口就保存 menus 并说明,这也算完成
# 前置阻断声明:resolution = self(同角色可顺带办,需给 business_id)/ other_role(要别的角色处理)/ manual(线下处理)
prerequisites:
- id: return_verification
title: 返校核验
match: 请先完成未办结的返校核验
resolution: other_role
advice: 由辅导员在学工系统里核实你的返校情况(学生端的补登窗口已经关闭,「节假日离返校 → 返校登记」里只能查看不能补登)
human_confirm_before: null
success_artifacts_any: [form_fields, menus]
learned:
请假入口: 门户 → 业务模块「请销假」→ 页面「发起请假」按钮,页面地址 /xuegong/affairs/leave,列表是「我的请销假」
返校登记页: 门户 → 节假日离返校 → 左侧「返校登记」(/xuegong/affairs/holiday-checkin/return),三个 tab:待返校 / 未返校 / 已返校;学生端只能查看,补登窗口结束后不能操作
拦截提示: 点「发起请假」若弹出「请先完成未办结的返校核验,或联系辅导员处理。」,说明有未返校记录未核实,这需要辅导员处理
# ---------------- 通用探索(识别不出业务时的兜底) ----------------
- id: generic_explore
name: 通用探索
role: 学生
system: xgxt
intent: 其他无法归类的需求,如查找某个入口、看看某个页面、了解某个表单有哪些字段
required_inputs: []
workflow:
- step_id: generic_explore_readonly
enabled: true
max_steps: 40
goal: 根据用户目标「{goal}」在系统中找到对应入口,进入页面读出关键信息或表单字段。只读:不填写、不提交。
instructions:
- 用 save_artifact 保存 entry_url、form_fields 或 findings(你发现的关键信息)
- 找不到时保存 menus 并在 done 里说明找过哪里,这也算完成
human_confirm_before: null
success_artifacts_any: [form_fields, menus, findings]
learned:
学生端一级模块: 学生管理;综合测评;评奖评优;违纪处分;资助管理;请销假;节假日离返校;辅导员评议
留校申请: 学生端没有「留校申请」模块。最接近的是「节假日离返校 → 我的报备」(默认在校,离校才需报备)
请假前置: 「请销假 → 发起请假」可能被「请先完成未办结的返校核验」拦截,需先到「节假日离返校 → 返校登记」处理
rules:
- 只允许访问 school.miaopinai.com 域名
- 涉及登录、验证码时按「登录」小节的方式处理,不要猜测账号
- 正式提交前必须获得用户确认
- 不要猜测学校内部未在指南中说明的规则