返回顶部
d

ds160-autofillDS-160自动填写

Automate filling of US nonimmigrant visa DS-160 forms using CDP for element location, CSV data source for user information, LLM assistance for complex cases (captcha, missing elements), and session persistence for resume capability. Use when user needs to: (1) Fill DS-160 visa application forms automatically, (2) Resume filling an interrupted DS-160 application, (3) Handle captcha and complex form elements with LLM assistance. Supports Chinese input with automatic translation to English.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
1,157
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

ds160-autofill

DS-160 自动填写技能

本技能通过结合以下技术,自动填写美国非移民签证DS-160表格:

  • - CDP(Chrome DevTools协议)用于快速定位元素
  • CSV数据源用于用户信息
  • LLM辅助处理复杂情况(验证码、缺失元素)
  • 会话持久化支持恢复功能
  • 用户输入的中文到英文翻译

快速开始

开始新申请

  1. 1. 提供CSV数据:用户必须提供包含个人信息的CSV文件(使用ds160-user-info.csv作为模板)
  1. 2. 打开DS-160网站:使用browser工具,以openclaw配置文件打开https://ceac.state.gov/genniv/
  1. 3. 初始化会话:加载并执行scripts/ds160-filler.js以解析映射和CSV
  1. 4. 开始填写:从首页开始,用LLM处理验证码,然后逐页进行

恢复申请

  1. 1. 加载现有会话:检查ds160/ds160-session.json中保存的申请ID
  1. 2. 打开申请:使用保存的申请ID在DS-160网站上恢复
  1. 3. 继续填写:从保存的位置加载CSV,并从上一页继续

核心工作流程

步骤1:准备数据

始终先检查会话是否存在:
javascript
// 读取 ds160/ds160-session.json
// 如果存在 → 恢复模式
// 如果不存在 → 新申请模式

新申请模式:

  • - 询问用户CSV文件路径或内容
  • 使用write工具将CSV保存到ds160/ds160-user-info.csv
  • 在ds160/ds160-session.json中初始化会话数据:

json
{
applicationId: null,
securityQuestion: null,
securityAnswer: null,
currentPageIndex: 0,
completedPages: [],
startDate: 2026-02-06T21:00:00Z
}

恢复模式:

  • - 从ds160/ds160-user-info.csv加载CSV
  • 从ds160/ds160-session.json加载会话
  • 向用户报告当前进度

步骤2:初始化浏览器

javascript
// 使用openclaw配置文件打开浏览器
browser_start: { profile: openclaw, targetUrl: https://ceac.state.gov/genniv/ }

// 恢复模式时,将申请ID添加到URL
// 示例:https://ceac.state.gov/GenNIV/Common/ConfirmApplicationID.aspx

步骤3:填写当前页面

按顺序处理每个页面:

  1. 1. 快照页面以了解当前状态:
javascript browser_snapshot: { refs: role, profile: openclaw }
  1. 2. 加载映射从references/ds160-elements.yaml
  1. 3. 执行填写逻辑,使用browser act配合evaluate:
javascript // 加载 ds160-filler.js // 调用 fillPage(page, currentUrl, userData, yamlData)
  1. 4. 处理结果
- 成功:继续到下一页 - 需要LLM协助:调用LLM并重试 - 需要用户输入:保存进度并暂停

步骤4:处理特殊情况

验证码:

  • - 截取验证码区域截图
  • 使用image工具分析验证码
  • 通过浏览器evaluate填写验证码

缺失元素:

  • - 使用页面快照调用LLM
  • 请求LLM定位元素并提供替代选择器
  • 重试填写操作

需要翻译:

  • - 使用字段上下文和中文值调用LLM
  • 请求LLM翻译为适当的英文值
  • 更新CSV并重试填写操作

用户数据缺失:

  • - 识别缺失的字段
  • 向用户报告字段名称和描述
  • 重要:在暂停前使用浏览器evaluate保存当前页面
  • 等待用户提供数据

步骤5:保存进度并继续

完成一个页面后:

  1. 1. 更新会话数据
json { applicationId: AA00FBLCQP, securityQuestion: What is the given name of your mothers mother?, securityAnswer: LiMei, currentPageIndex: 5, completedPages: [home, securityquestion, personal1, personal_2], startDate: 2026-02-06T21:00:00Z }
  1. 2. 保存到文件:write(ds160/ds160-session.json, JSON.stringify(sessionData))
  1. 3. 向用户报告进度
- 当前页面已完成 - 下一页名称 - 申请ID - 安全问题/答案(仅首次) - 总体进度(X/Y页)
  1. 4. 点击继续按钮以进入下一页

数据结构

CSV格式

CSV必须包含以下列:

  1. 1. 页面 - 页面名称
  2. 字段名称 - 字段标识符(匹配YAML中的name字段)
  3. 英文说明 - 英文描述
  4. 中文说明 - 中文描述
  5. 必填 - 是否必填(是/否)
  6. 示例值 - 示例值
  7. 用户填写 - 用户提供的值(这是实际填写的内容)

重要:用户可以提供中文值。脚本包含常用字段的内置翻译字典(性别、婚姻状况、国家等)。对于字典中没有的字段,将自动调用LLM进行翻译。

YAML结构

ds160-elements.yaml中的每个页面包含:

  • - pageid:唯一页面标识符
  • pagename:人类可读的页面名称
  • url:页面URL模式
  • elements:表单元素数组,包含:

- id:元素ID
- name:字段标识符(匹配CSV)
- type:元素类型(text、select、radio、checkbox、button)
- label:英文标签
- label_cn:中文标签
- required:是否必填
- options:可用选项(用于select)
- group:单选按钮组名称

错误处理

元素未找到

症状:fillPage返回needsLLM: true

操作

  1. 1. 获取页面快照
  2. 调用LLM,提供:

- 当前URL
- 元素信息(id、name、type)
- 页面HTML片段
- 请求LLM分析并提供替代选择器
  1. 3. 使用LLM建议的选择器重试

需要翻译

症状:fillPage返回needsTranslation: true

操作

  1. 1. 调用LLM,提供翻译上下文:

- 字段名称和描述(中/英文)
- 字段类型和可用选项
- 原始中文值
- 请求LLM翻译为适合该字段的英文值
  1. 2. 用翻译后的值更新CSV
  2. 使用翻译后的值重试填写操作

LLM翻译提示示例

我需要将这个中文值翻译为DS-160表格字段的英文值:

字段:${elementName}
类型:${elementType}
英文标签:${label}
中文标签:${label_cn}
中文值:${originalValue}

可用选项(如果是选择框):${options}

请提供该字段的正确英文值。请考虑:

  • - 字段类型和上下文
  • 可用选项(如适用)
  • 标准DS-160术语

只返回英文值,无需解释。

数据缺失

症状:fillPage返回needsUserInput: true

操作

  1. 1. 关键:在暂停前保存当前页面:

javascript
// 查找并点击保存按钮
browser_act: {
request: { kind: click, ref: save_button }
}

  1. 2. 向用户报告缺失字段:
- 字段名称(英文和中文) - 描述 - 是否必填
  1. 3. 使用write工具用新数据更新CSV
  2. 继续填写

验证码

症状:页面上检测到验证码图片

操作

  1. 1. 截取验证码区域截图
  2. 使用image工具:

javascript
image: {
image: /path/to/captcha.png,
prompt: 这个验证码中显示的代码是什么?只返回代码字符。
}

  1. 3. 通过浏览器evaluate填写验证码字段
  2. 提交表单

页面顺序

按以下顺序填写页面:

  1. 1. home

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 ds160-autofill-1776343105 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 ds160-autofill-1776343105 技能

通过命令行安装

skillhub install ds160-autofill-1776343105

下载

⬇ 下载 ds160-autofill v1.0.0(免费)

文件大小: 22.95 KB | 发布时间: 2026-4-17 14:43

v1.0.0 最新 2026-4-17 14:43
DS-160 autofill skill initial release.

- Automates US DS-160 visa form filling using Chrome DevTools, LLM assistance, and CSV data source.
- Supports session saving and resuming interrupted applications.
- Handles captchas, missing elements, and Chinese input with built-in or LLM-based translation to English.
- Reports progress after each completed page and prompts for missing data as needed.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部