开发者配置
本节提供有关如何为开发者配置 UFO 代理的详细信息。配置文件 config_dev.yaml
位于 ufo/config
目录中,包含各种设置和开关,用于为开发目的自定义 UFO 代理。
系统配置
UFO 代理的系统配置中包含以下参数
配置选项 | 描述 | 类型 | 默认值 |
---|---|---|---|
CONTROL_BACKEND |
控制动作的后端列表,目前支持 uia 、win32 和 onmiparser |
列表 | ["uia"] |
ACTION_SEQUENCE |
是否在单个步骤中输出多个动作。 | 布尔值 | False |
MAX_STEP |
在会话中完成用户请求的最大步骤限制。 | 整数 | 100 |
MAX_ROUND |
在会话中完成用户请求的最大轮次限制。 | 整数 | 10 |
SLEEP_TIME |
每个步骤之间等待窗口就绪的休眠时间(秒)。 | 整数 | 5 |
RECTANGLE_TIME |
围绕选定控件显示矩形的时间(秒)。 | 整数 | 1 |
SAFE_GUARD |
是否使用安全防护,在执行敏感操作前请求用户确认。 | 布尔值 | True |
CONTROL_LIST |
允许选择的小部件列表。 | 列表 | ["Button", "Edit", "TabItem", "Document", "ListItem", "MenuItem", "ScrollBar", "TreeItem", "Hyperlink", "ComboBox", "RadioButton", "DataItem"] |
HISTORY_KEYS |
添加到 Blackboard 中用于代理决策的步骤历史记录键。 |
列表 | ["Step", "Thought", "ControlText", "Subtask", "Action", "Comment", "Results", "UserConfirm"] |
ANNOTATION_COLORS |
为不同控件类型分配的标注颜色。 | 字典 | {"Button": "#FFF68F", "Edit": "#A5F0B5", "TabItem": "#A5E7F0", "Document": "#FFD18A", "ListItem": "#D9C3FE", "MenuItem": "#E7FEC3", "ScrollBar": "#FEC3F8", "TreeItem": "#D6D6D6", "Hyperlink": "#91FFEB", "ComboBox": "#D8B6D4"} |
ANNOTATION_FONT_SIZE |
标注的字体大小。 | 整数 | 22 |
PRINT_LOG |
是否在控制台中打印日志。 | 布尔值 | False |
CONCAT_SCREENSHOT |
是否将屏幕截图连接成单个图像作为 LLM 输入。 | 布尔值 | False |
INCLUDE_LAST_SCREENSHOT |
是否在观察中包含上一步的屏幕截图。 | 布尔值 | True |
LOG_LEVEL |
UFO 代理的日志级别。 | 字符串 | "DEBUG" |
REQUEST_TIMEOUT |
LLM 模型的调用超时时间(秒)。 | 整数 | 250 |
USE_APIS |
是否允许使用应用程序 API。 | 布尔值 | True |
LOG_XML |
是否在每个步骤记录 XML 文件。 | 布尔值 | False |
SCREENSHOT_TO_MEMORY |
是否允许屏幕截图到 Blackboard 用于代理决策。 |
布尔值 | True |
SAVE_UI_TREE |
是否在日志中保存 UI 树。 | 布尔值 | False |
SAVE_EXPERIENCE |
是否保存经验,可以是“always”表示总是保存,“always_not”表示总是 F不保存,“ask”表示询问用户是否保存。默认值为“always_not” | 字符串 | "always_not" |
TASK_STATUS |
是否在批量执行模式下记录任务状态。 | 布尔值 | True |
主提示词配置
主提示词模板
主提示词模板包括 UFO 代理中用于 system
和 user
角色的提示词。
配置选项 | 描述 | 类型 | 默认值 |
---|---|---|---|
HOSTAGENT_PROMPT |
HostAgent 的主提示词模板。 |
字符串 | "ufo/prompts/share/base/host_agent.yaml" |
APPAGENT_PROMPT |
AppAgent 的主提示词模板。 |
字符串 | "ufo/prompts/share/base/app_agent.yaml" |
FOLLOWERAGENT_PROMPT |
FollowerAgent 的主提示词模板。 |
字符串 | "ufo/prompts/share/base/app_agent.yaml" |
EVALUATION_PROMPT |
用于评估的提示词模板。 | 字符串 | "ufo/prompts/evaluation/evaluate.yaml" |
主提示词模板的精简版本可在 ufo/prompts/share/lite
目录中找到,以减少特定令牌限制的输入大小。
示例提示词模板
示例提示词模板用于 UFO 代理中的演示目的。
配置选项 | 描述 | 类型 | 默认值 |
---|---|---|---|
HOSTAGENT_EXAMPLE_PROMPT |
用于演示的 HostAgent 示例提示词模板。 |
字符串 | "ufo/prompts/examples/{mode}/host_agent_example.yaml" |
APPAGENT_EXAMPLE_PROMPT |
用于演示的 AppAgent 示例提示词模板。 |
字符串 | "ufo/prompts/examples/{mode}/app_agent_example.yaml" |
示例提示词模板的精简版本可在 ufo/prompts/examples/lite/{mode}
目录中找到,以减少演示目的的输入大小。
经验和演示学习
这些配置参数用于 UFO 代理中的经验和演示学习。
配置选项 | 描述 | 类型 | 默认值 |
---|---|---|---|
EXPERIENCE_PROMPT |
用于自经验学习的提示词。 | 字符串 | "ufo/prompts/experience/experience_summary.yaml" |
EXPERIENCE_SAVED_PATH |
保存经验学习数据的路径。 | 字符串 | "vectordb/experience/" |
DEMONSTRATION_PROMPT |
用于用户演示学习的提示词。 | 字符串 | "ufo/prompts/demonstration/demonstration_summary.yaml" |
DEMONSTRATION_SAVED_PATH |
保存演示学习数据的路径。 | 字符串 | "vectordb/demonstration/" |
应用程序 API 配置
这些提示词配置参数用于 UFO 代理中的应用程序和控制 API。
配置选项 | 描述 | 类型 | 默认值 |
---|---|---|---|
API_PROMPT |
用于 UI 自动化 API 的提示词。 | 字符串 | "ufo/prompts/share/base/api.yaml" |
APP_API_PROMPT_ADDRESS |
应用程序 API 的提示词地址。 | 字典 | {"WINWORD.EXE": "ufo/prompts/apps/word/api.yaml", "EXCEL.EXE": "ufo/prompts/apps/excel/api.yaml", "msedge.exe": "ufo/prompts/apps/web/api.yaml", "chrome.exe": "ufo/prompts/apps/web/api.yaml"} |
pywinauto 配置
API 配置参数用于 UFO 代理中的 pywinauto API。
配置选项 | 描述 | 类型 | 默认值 |
---|---|---|---|
CLICK_API |
用于点击动作的 API,可以是 click_input 或 click 。 |
字符串 | "click_input" |
INPUT_TEXT_API |
用于输入文本动作的 API,可以是 type_keys 或 set_text 。 |
字符串 | "type_keys" |
INPUT_TEXT_ENTER |
输入文本后是否按回车键。 | 布尔值 | False |
控件过滤
控件过滤配置参数用于代理观察中的控件过滤。
配置选项 | 描述 | 类型 | 默认值 |
---|---|---|---|
CONTROL_FILTER |
控件过滤类型,可以是 TEXT 、SEMANTIC 或 ICON 。 |
列表 | [] |
CONTROL_FILTER_TOP_K_PLAN |
控件过滤对代理的前 k 个计划的影响。 | 整数 | 2 |
CONTROL_FILTER_TOP_K_SEMANTIC |
语义相似度的控件过滤前 k 个。 | 整数 | 15 |
CONTROL_FILTER_TOP_K_ICON |
图标相似度的控件过滤前 k 个。 | 整数 | 15 |
CONTROL_FILTER_MODEL_SEMANTIC_NAME |
语义相似度的控件过滤模型名称。 | 字符串 | "all-MiniLM-L6-v2" |
CONTROL_FILTER_MODEL_ICON_NAME |
图标相似度的控件过滤模型名称。 | 字符串 | "clip-ViT-B-32" |
自定义
自定义配置参数用于 UFO 代理中的自定义项。
配置选项 | 描述 | 类型 | 默认值 |
---|---|---|---|
ASK_QUESTION |
是否向用户提问。 | 布尔值 | True |
USE_CUSTOMIZATION |
是否启用自定义。 | 布尔值 | True |
QA_PAIR_FILE |
历史 QA 对的路径。 | 字符串 | "customization/historical_qa.txt" |
QA_PAIR_NUM |
自定义的 QA 对数量。 | 整数 | 20 |
评估
评估配置参数用于 UFO 代理中的评估。
配置选项 | 描述 | 类型 | 默认值 |
---|---|---|---|
EVA_SESSION |
是否在评估中包含会话。 | 布尔值 | True |
EVA_ROUND |
是否在评估中包含轮次。 | 布尔值 | False |
EVA_ALL_SCREENSHOTS |
是否在评估中包含所有屏幕截图。 | 布尔值 | True |
您可以在 config_dev.yaml
文件中自定义配置参数,以满足您的开发需求并增强 UFO 代理的功能。