开发者配置

本节提供有关如何为开发者配置 UFO 代理的详细信息。配置文件 config_dev.yaml 位于 ufo/config 目录中,包含各种设置和开关,用于为开发目的自定义 UFO 代理。

系统配置

UFO 代理的系统配置中包含以下参数

配置选项 描述 类型 默认值
CONTROL_BACKEND 控制动作的后端列表,目前支持 uiawin32onmiparser 列表 ["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 代理中用于 systemuser 角色的提示词。

配置选项 描述 类型 默认值
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_inputclick 字符串 "click_input"
INPUT_TEXT_API 用于输入文本动作的 API,可以是 type_keysset_text 字符串 "type_keys"
INPUT_TEXT_ENTER 输入文本后是否按回车键。 布尔值 False

控件过滤

控件过滤配置参数用于代理观察中的控件过滤。

配置选项 描述 类型 默认值
CONTROL_FILTER 控件过滤类型,可以是 TEXTSEMANTICICON 列表 []
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 代理的功能。