安全处理敏感信息,防止模型获取实际密码

处理敏感数据

在处理密码等敏感信息时,你可以使用 sensitive_data 参数,使模型无法直接看到实际值,同时仍然允许它在执行操作时引用这些信息。

示例:如何使用 sensitive_data

  1. from dotenv import load_dotenv
  2. from langchain_openai import ChatOpenAI
  3. from browser_use import Agent
  4. load_dotenv()
  5. # 初始化模型
  6. llm = ChatOpenAI(
  7. model='gpt-4o',
  8. temperature=0.0,
  9. )
  10. # 定义敏感数据
  11. # 模型只能看到键名(x_name, x_password),但无法看到实际值
  12. sensitive_data = {'x_name': 'magnus', 'x_password': '12345678'}
  13. # 在任务描述中使用占位符名称
  14. task = '前往 x.com,使用 x_name 和 x_password 登录,然后发布一篇关于生命意义的帖子'
  15. # 将敏感数据传递给 Agent
  16. agent = Agent(task=task, llm=llm, sensitive_data=sensitive_data)
  17. async def main():
  18. await agent.run()
  19. if __name__ == '__main__':
  20. asyncio.run(main())

示例解析

  1. 模型只能看到 x_namex_password 这两个占位符,而不会接触到实际的用户名和密码。
  2. 当模型需要使用密码时,它只会输出 x_password,然后系统会用实际值替换它。
  3. 如果当前页面上显示了密码,我们会在传递给 LLM 的输入中进行替换,以确保模型不会在其状态中存储密码。

⚠️ 注意:视觉模型(如具备 OCR 识别能力的模型)仍然可能通过页面截图看到敏感信息。

这种方法能够在保证敏感数据安全的前提下,使代理仍然能够执行需要身份验证的任务。