发布:学生会策划部工作包(Skills + MCP)

This commit is contained in:
gitea_admin
2026-09-29 12:35:04 +08:00
commit 2df696c390
147 changed files with 50777 additions and 0 deletions
@@ -0,0 +1,406 @@
# create_survey 工具参考
## 概述
使用纯文本创建问卷。系统会自动将文本解析为问卷结构。
## 参数
| 参数 | 类型 | 必填 | 说明 |
|------|------|:----:|------|
| `text` | string | **是** | 问卷内容文本,换行使用 `\n` 代替(具体语法见下文) |
| `scene` | number | 否 | 问卷场景,默认为 1(调查),见下方场景枚举 |
| `project_id` | number | 否 | 项目 ID,将问卷创建到指定项目下 |
> **注意**:`text` 为必填参数。创建空白问卷时至少需要传入问卷标题,如 `text="新建问卷"`。
## 返回值
### 成功响应
```json
{
"survey_id": 716128,
"hash": "859f"
}
```
### 字段说明
| 字段 | 类型 | 说明 |
|------|------|------|
| `survey_id` | number | 新创建的问卷 ID |
| `hash` | string | 问卷 hash,用于拼接投放链接 |
> **投放链接拼接**:`https://wj.qq.com/s2/{survey_id}/{hash}`
### 失败响应
```json
{
"code": "InvalidArgument",
"error": {
"type": "invalid_text_format"
}
}
```
## 场景枚举
| scene | 场景 | 说明 |
|-------|------|------|
| **1** | **调查** | **默认值**,通用问卷调查 |
| 3 | 考试 | 带评分的考试问卷 |
| 6 | 测评 | 测评类问卷 |
| 8 | 投票 | 投票类问卷 |
## text 文本语法详解
`text` 参数使用纯文本描述问卷结构,系统会自动解析为对应的问卷题型。
> **重要**:在 JSON 参数中,所有换行必须使用 `\n` 代替。
>
> 📖 语法详细参考:
> - [内容编辑概述](https://wj.qq.com/docs/survey-dsl/content/)
> - [语法说明](https://wj.qq.com/docs/survey-dsl/content/grammar)
> - [普通场景语法](https://wj.qq.com/docs/survey-dsl/content/scene-default)
> - [考试场景语法](https://wj.qq.com/docs/survey-dsl/content/scene-exam)
> - [测评场景语法](https://wj.qq.com/docs/survey-dsl/content/scene-assessment)
### 基础结构
```
问卷标题
问卷引导语(可选)
题目标题[题型](描述)
选项/内容
```
- 第一行为**问卷标题**
- 标题后可跟**引导语**(可选)
- 使用 `=== 分页 ===` 插入分页符
- 题目之间用空行分隔
### 题型语法列表
| 题型 | 语法 | 说明 |
|------|------|------|
| 单选题 | `标题[单选题](描述)\n选项A\n选项B` | 选项另起一行,每行一个 |
| 多选题 | `标题[多选题](描述)\n选项A\n选项B` | 选项另起一行 |
| 下拉题 | `标题[下拉题](描述)\n选项A\n选项B` | 选项另起一行 |
| 排序题 | `标题[排序题](描述)\n选项A\n选项B` | 选项另起一行 |
| 单行文本题 | `标题[单行文本题](描述)` | 无需选项 |
| 多行文本题 | `标题[多行文本题](描述)` | 无需选项 |
| 多项填空题 | `标题[多项填空题](描述)\n填空1:____` | 使用 `____` 指定填空位置 |
| 量表题 | `标题[量表题](描述)\n1~5` | 使用数字范围指定量表 |
| 日期时间题 | `标题[日期时间题](描述)` | 无需选项 |
| 地理位置题 | `标题[地理位置题](描述)` | 无需选项 |
| 附件题 | `标题[附件题](描述)` | 无需选项 |
| 手写签名题 | `标题[手写签名题](描述)` | 无需选项 |
| 段落说明 | `描述内容[段落说明]` | 用于纯文本段落说明(也称 `[文本描述题]`) |
| 矩阵单选题 | `标题[矩阵单选题](描述)\n选项A 选项B\n子问题1\n子问题2` | 选项空格分隔,子问题另起一行 |
| 矩阵多选题 | `标题[矩阵多选题](描述)\n选项A 选项B\n子问题1\n子问题2` | 同上 |
| 矩阵量表题 | `标题[矩阵量表题](描述)\n1~5\n子问题1\n子问题2` | 量表范围在前,子问题在后 |
| 联动题 | `标题[联动题](描述)\n第一层 第二层\n答案A+子答案A1+子答案A2\n答案B+子答案B1` | 层级名空格分隔,答案用 `+` 连接 |
> **提示**:`(描述)` 部分为可选的题目描述/说明文字。`[单选题]` 为默认题型,可以省略。
### 题目结构
每道题目的完整结构为:
```
标题[题型][设置](描述)
```
各部分顺序固定,不可调换。其中 `[设置]` 和 `(描述)` 都是可选的。
### 题目设置
支持在题型后追加设置标记:
| 设置 | 语法 | 说明 |
|------|------|------|
| 必答 | `[必答]` | 该题必须作答 |
| 选答 | `[选答]` | 该题可以跳过 |
示例:`您的姓名[单行文本题][必答](请填写真实姓名)`
### 考试场景专用设置
在考试场景(`scene=3`)中,题目可追加答案、分值和评分机制设置:
| 设置 | 语法 | 说明 |
|------|------|------|
| 答案 | `[答案:A、B]` | 正确答案,选项索引从 A 开始 |
| 填空答案 | `[答案:1.答案1、2.答案2]` | 各填空的正确答案 |
| 分值 | `[分数:5]` | 该题总分值 |
| 多空分值 | `[分数:2、3]` | 各空/各选项的分值 |
| 全部正确得分 | `[全部]` | 完全匹配答案才得分 |
| 部分正确得分 | `[部分]` | 部分匹配也可得分(多选题、不定项选择题) |
| 按空得分 | `[按空]` | 按填空分别计分(多项填空题) |
| 人工评分 | `[人工]` | 需人工阅卷评分(所有题型均可) |
> **考试题型**:考试场景额外支持 `[判断题]`、`[不定项选择题]`、`[问答题]` 三种题型。
### 测评场景专用题型
在测评场景(`scene=6`)中,选择题使用专用题型标记:
| 题型 | 语法 | 说明 |
|------|------|------|
| 测评单选题 | `[测评单选题]` | 替代普通场景的 `[单选题]` |
| 测评多选题 | `[测评多选题]` | 替代普通场景的 `[多选题]` |
> 测评场景也支持 `[量表题]`、`[矩阵单选题]`、`[矩阵量表题]`、`[单行文本题]`、`[多行文本题]`、`[多项填空题]`、`[文本描述题]`。
### 富文本语法
在题目标题、描述和选项中支持使用以下富文本语法:
| 类型 | 语法 | 说明 |
|------|------|------|
| 高亮 | `**高亮文本**` | 文本加粗/高亮显示 |
| 链接 | `[链接文本](https://example.com)` | 插入超链接 |
| 图片 | `![alt](https://example.com/img.png){宽度, 高度}` | 插入图片,`{宽度, 高度}` 必填,值为数字或 `auto` |
| 视频 | `!video(视频地址)` | 插入视频,仅支持腾讯视频、哔哩哔哩、优酷 |
### 完整示例(普通调查场景)
以下示例覆盖了普通调查场景(`scene=1`,默认)中的所有题型:
```
员工满意度调查
为了给您提供更好的服务,希望您能抽出几分钟时间,将您的感受和建议告诉我们。
1. 您在公司工作了多久?[单选题]
1年以下
1-3年
3-5年
5年以上
2. 您对以下哪些方面比较满意?[多选题]
工作环境
薪资福利
团队氛围
职业发展
3. 请选择您的部门[下拉题]
技术部
产品部
市场部
人力资源部
4. 请对以下福利按重要程度排序[排序题]
薪资待遇
年假天数
培训机会
弹性工作
5. 请对整体工作满意度打分[量表题](5分表示非常满意,1分表示非常不满意)
1~5
6. 您的姓名[单行文本题]
7. 您有什么建议或意见?[多行文本题]
8. 请填写以下信息[多项填空题]
姓名:____ 工号:____
9. 请选择您的入职日期[日期时间题]
10. 请选择您的办公地点[地理位置题]
11. 请上传相关材料[附件题]
12. 请签名确认[手写签名题]
本问卷到此结束,感谢您的参与![段落说明]
=== 分页 ===
13. 请对各部门的协作效率打分[矩阵单选题]
非常好 较好 一般 较差
技术部
产品部
市场部
14. 以下哪些部门您有过合作经历?[矩阵多选题]
有合作 有交流 无接触
技术部
产品部
市场部
15. 请为各方面打分[矩阵量表题](1分最低,5分最高)
1~5
工作环境
薪资福利
团队氛围
16. 请选择您的所在区域[联动题]
省份 城市
广东省+广州市+深圳市+东莞市
北京市+朝阳区+海淀区
上海市+浦东新区+徐汇区
```
### 考试场景示例
考试场景(`scene=3`)支持设置答案、分值和评分机制。语法在题型后追加 `[答案:...]`、`[分数:...]`、`[全部]`/`[部分]`/`[按空]`/`[人工]`。
```
期中考试
考生姓名:____ 班级:____ 考号:____
1. 在下列物体中,难溶于水的物体是?[单选题][答案:D][分数:5][全部]
味精
酱油
酒精
食用油
2. 地球是太阳系中最大的行星[判断题][答案:A][分数:3][全部]
错误
正确
3. 哪些颜色属于奥运五环的颜色?[多选题][答案:A、B、D][分数:5][部分]
蓝色
黑色
紫色
红色
棕色
4. 哪些是哺乳动物?[不定项选择题][答案:B、C][分数:4][部分]
鳄鱼
鲸鱼
海豚
蜥蜴
5. 古诗文默写[多项填空题][答案:1.秋风萧瑟、2.洪波涌起][分数:2、3][按空]
树木丛生,百草丰茂。____,____。(曹操《观沧海》)
6. 以"一件令人感动的事"为题写一篇小作文[问答题][分数:20][人工]
```
### 测评场景示例
测评场景(`scene=6`)使用 `[测评单选题]`、`[测评多选题]` 等专用题型:
```
职业性格测评
本测评将帮助您了解自己的职业性格类型,请根据真实感受作答。
1. 在团队合作中,您通常扮演什么角色?[测评单选题]
领导者
协调者
执行者
创意提供者
2. 以下哪些描述符合您的工作风格?[测评多选题]
注重细节
喜欢创新
善于沟通
偏好独立工作
3. 请评价您对当前工作的满意程度[量表题](1分非常不满意,5分非常满意)
1~5
4. 请对以下陈述表示您的同意程度[矩阵单选题]
非常同意 同意 中立 不同意 非常不同意
我善于处理压力
我喜欢接受新挑战
我注重工作与生活的平衡
5. 请为以下能力自评打分[矩阵量表题](1分最低,5分最高)
1~5
沟通能力
领导能力
学习能力
团队协作
6. 请简要描述您的职业目标[多行文本题]
```
### 请求体示例
```json
{
"text": "员工满意度调查\n\n为了给您提供更好的服务,希望您能抽出几分钟时间。\n\n1. 您在公司工作了多久?[单选题]\n1年以下\n1-3年\n3-5年\n5年以上\n\n2. 您对以下哪些方面比较满意?[多选题]\n工作环境\n薪资福利\n团队氛围\n职业发展\n\n3. 请对整体工作满意度打分[量表题](5分表示非常满意,1分表示非常不满意)\n1~5\n\n4. 您有什么建议或意见?[多行文本题]"
}
```
## 调用示例
### 创建带内容的问卷
```
create_survey(text="满意度调查\n\n1. 您对工作环境是否满意?[单选题]\n非常满意\n满意\n一般\n不满意\n\n2. 您有什么建议?[多行文本题]")
```
### 创建在线考试
```
create_survey(scene=3, text="期中考试\n\n1. 1+1=?[单选题][答案:B][分数:5][全部]\n1\n2\n3\n4\n\n2. 以下哪些是偶数?[多选题][答案:A、C][分数:4][部分]\n2\n3\n4\n5\n\n3. 请默写古诗[问答题][分数:10][人工]")
```
### 创建投票
```
create_survey(scene=8, text="年度最佳员工投票\n\n1. 请选择您心目中的最佳员工[单选题]\n张三\n李四\n王五")
```
### 创建测评
```
create_survey(scene=6, text="性格测评\n\n1. 遇到困难时,您通常会?[测评单选题]\n独立解决\n寻求帮助\n暂时搁置\n\n2. 请为自信程度打分[量表题]\n1~5")
```
### 指定项目下创建
```
create_survey(project_id=100, text="项目反馈问卷\n\n1. 项目进展如何?[单选题]\n按计划进行\n有延迟\n已完成")
```
### mcporter 调用
```bash
# 创建调查
mcporter call tencent-survey.create_survey --args '{"text": "满意度调查\n\n1. 满意吗?[单选题]\n满意\n不满意"}'
# 指定场景(投票)
mcporter call tencent-survey.create_survey --args '{"scene": 8, "text": "投票\n\n1. 选谁?[单选题]\n甲\n乙"}'
```
## 错误码
| error.type | 错误描述 | 解决方案 |
|------------|---------|---------|
| `permission_denied` | 无创建权限 | 确认 Token 有创建问卷的权限 |
| `invalid_text_format` | 文本内容格式错误 | 检查 text 语法是否正确,参考上方语法说明 |
| `invalid_argument` | 参数校验不通过 | 检查参数类型和值是否正确 |
| `resource_exhausted` | 创建数量超过限制 | 当前团队问卷数量已达上限 |
## 注意事项
1. **text 为必填参数**:必须提供 text 内容
2. **project_id 需要有效**:传入无效的 project_id 会导致创建失败
3. **非幂等操作**:每次调用都会创建一份新问卷,请勿重复调用
4. **换行必须用 `\n`**:JSON 中不能直接换行,必须用 `\n` 替代
5. **选项不需要字母前缀**:选项直接写内容即可(如 `满意`),不需要写 `A. 满意`
6. **题目内不允许空行**:一道题目的标题和选项之间不能有空行,否则会被识别为两道题
7. **量表范围用 `~`**:量表题使用 `1~5` 格式(全角 `~` 和半角 `~` 均支持)
8. **考试场景题型差异**:考试场景额外支持 `[判断题]`、`[不定项选择题]`、`[问答题]`,答案索引从 A 开始
9. **测评场景题型差异**:测评场景的选择题需使用 `[测评单选题]`、`[测评多选题]`
## Annotations(工具注解)
| 注解 | 值 | 说明 |
|------|---|------|
| `readOnlyHint` | false | 非只读操作 |
| `destructiveHint` | false | 非破坏性操作 |
| `idempotentHint` | false | **非幂等**,每次调用都创建新问卷 |
| `openWorldHint` | false | 内部调用 |