关于 synthetic-data-generator
面向研究场景的技能,可根据指定的人口或心理特征模拟问卷受访者。它能离线生成 CSV 或 JSON 数据,也可通过 chrome-devtools MCP 在浏览器中填写在线问卷。
主要功能
- 01按画像生成合成回答
- 02离线导出 CSV 或 JSON 数据
- 03使用 Python 批量离线生成
- 04识别并填写在线问卷
- 05验证数据并截取提交截图
适用场景
- 01为研究创建多样化问卷数据集
- 02模拟李克特量表或访谈回答
- 03让合成参与者提交在线表单
MCP 相关
在线填写问卷时,该技能连接 chrome-devtools MCP 服务,在浏览器中检查表单并录入回答。它通过浏览器工具执行导航、交互和截图。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ lensetek/ research-agent-skills-collection --skill synthetic-data-generator安装后在 Claude Code 中输入/synthetic-data-generator确认已加载。
详细介绍
合成数据生成器(数字孪生模拟器)
概述
此技能赋予 Agent 在研究中充当**受访者模拟器(数字孪生模拟器)**的能力。Agent 会根据指定的档案参数采用某个人设(数字孪生),并像真实受访者一样回答研究工具(问卷、李克特量表、开放式访谈问题)。
除了将数据以离线方式生成到 CSV/JSON 文件中,此技能还支持主动参与者模拟器,即通过 chrome-devtools MCP 服务集成,使用浏览器自动填写真实的在线问卷(如 Google Forms、Typeform 等)。
依赖项
- Python 标准模块(用于大规模离线数据生成)。
- MCP 服务
chrome-devtools(用于通过浏览器填写在线问卷)。 - 零失败自动配置规则:如果在线填写问卷时
chrome-devtools尚未启用或安装,Agent 严禁回答“未安装”。Agent 必须自动按需直接触发:npx -y chrome-devtools-mcp@latest或py bin/mcp_auto_updater.py。
快速开始
使用示例:
- 离线:"使用 synthetic-data-generator 技能,创建包含 100 名受访者的合成调查数据集,其人口统计档案为大学毕业年级学生,并提供对在线辅导服务满意度的回答。"
- 在线:"使用 synthetic-data-generator 技能,模拟 5 个数字孪生,通过 URL https://forms.gle/xxxxx 填写 Google Form,其档案为数字领域的中小微企业经营者。"
工作流
1. 初始化研究工具和档案
- **研究工具:**了解所用研究工具的结构。它是定量型(1-5 级量表)还是定性型(叙述性回答)?
- **人口统计/心理统计档案:**了解目标样本的分布。例如:“创建 300 条数据,其中男性占 60%,女性占 40%,年龄 18-35 岁,技术怀疑程度为中高。”
2. 人设提示词策略(大模型采用)
为确保数据不雷同且具有真实的差异性:
- 使用动态 System Prompt 技术,在每次迭代时为受访者注入随机特征(traits)。
- 设置适当的 Temperature(例如 0.7 - 0.9),避免回答具有确定性。
- **逻辑一致性:**确保不同问题之间的回答(尤其是相互关联的问题或反向题)与当前采用的人设一致。
- **注意力检测题:**如有要求,以较低概率(例如 5%)插入“陷阱”答案或合理异常(例如随意作答的受访者),以模拟现实世界中的噪声。
3. 通过 Python 批量执行(大规模离线生成时必须采用)
为数百名受访者逐一调用大模型,在 Token 和时间方面都非常低效。如果 N > 10 且以离线方式运行,必须创建利用批量提示词的 Python 脚本。
Python 脚本流程指南:
- 创建一条集中式指令提示词:"生成 50 行 CSV 格式数据。每行代表 1 名独立受访者。列包括:人口统计信息、Q1、Q2、Q3(1-5 级量表)和观点(文本/定性)。确保数据多样性符合以下分布:[PROFIL_TARGET]。输出仅限有效 CSV 格式,不要使用 markdown。"
- 在 Python 中使用循环调用大模型(例如通过
google-genai或相关大模型端点),重复 N/50 次。 - 将生成的 CSV 字符串解析为数据结构(如
pandas.DataFrame)。 - 合并所有批次,并清理错误或格式错误的行。
- 将最终的 DataFrame 保存到
synthetic_dataset.csv。
4. 在线填写问卷(主动参与者模拟器)
如果用户要求填写 Google Forms 等在线问卷:
- 页面分析(表单映射):连接到
chrome-devtools服务,并使用puppeteer_navigate将浏览器导航到问卷 URL。使用puppeteer_evaluate识别问题类型(文本输入、单选按钮、复选框)。 - 批量填写受访者问卷:对于每个数字孪生(例如 N 名受访者):
- 在内部生成受访者的回答档案(JSON/键值对格式)。
- 找到与问题匹配的输入元素。
- 模拟人工输入:
- 对于多项选择题/李克特量表,使用
puppeteer_click点击相应的单选按钮。 - 对于文本输入,使用
puppeteer_type自然地输入回答。 - 在点击提交/下一步按钮前,随机等待 1.5 到 3 秒,以模拟人类行为并避免触发反机器人检测。
- 对于多项选择题/李克特量表,使用
- 使用
puppeteer_click点击“发送”/“Submit”按钮。 - 使用
puppeteer_screenshot截取填写成功页面,作为验证凭据。 - 如果要填写下一位受访者的问卷,点击“提交其他答复”/“Submit another response”链接以加载新表单。
5. 最终验证与交接
- 离线:通过脚本执行简单的
describe(),确保李克特量表的数值处于有效范围(例如:最小值为 1,最大值为 5),且不存在异常的缺失值。 - 在线:提供填写成功日志摘要(例如:“3/3 名受访者成功填写 Google Form”),并附上每位受访者的提交凭据截图文件。
常见错误与关键规则
- 数据过于雷同(无差异):由于使用了温度(temperature)为 0 的大模型,或系统指令过于僵化,导致生成的回答单调、毫无变化。
- 角色设定不一致:忽略受访者的内在逻辑(例如,档案设定为“对技术不熟悉/持怀疑态度”的受访者,却对 AI 的采用表现得十分熟练和热情)。
- 文件格式损坏(格式不正确的 CSV):将输出保存为无效的 CSV 格式,导致数据处理 Agent 无法读取。
- 在线表单的机器人检测:填写表单过快且没有等待间隔,导致出现 CAPTCHA。模拟人工输入时,始终使用动态延迟(随机延迟)。
评论
支持 Markdown