安全处理敏感信息,防止模型获取实际密码
处理敏感数据
在处理密码等敏感信息时,你可以使用 sensitive_data 参数,使模型无法直接看到实际值,同时仍然允许它在执行操作时引用这些信息。
示例:如何使用 sensitive_data
from dotenv import load_dotenvfrom langchain_openai import ChatOpenAIfrom browser_use import Agentload_dotenv()# 初始化模型llm = ChatOpenAI(model='gpt-4o',temperature=0.0,)# 定义敏感数据# 模型只能看到键名(x_name, x_password),但无法看到实际值sensitive_data = {'x_name': 'magnus', 'x_password': '12345678'}# 在任务描述中使用占位符名称task = '前往 x.com,使用 x_name 和 x_password 登录,然后发布一篇关于生命意义的帖子'# 将敏感数据传递给 Agentagent = Agent(task=task, llm=llm, sensitive_data=sensitive_data)async def main():await agent.run()if __name__ == '__main__':asyncio.run(main())
示例解析
- 模型只能看到
x_name和x_password这两个占位符,而不会接触到实际的用户名和密码。 - 当模型需要使用密码时,它只会输出
x_password,然后系统会用实际值替换它。 - 如果当前页面上显示了密码,我们会在传递给 LLM 的输入中进行替换,以确保模型不会在其状态中存储密码。
⚠️ 注意:视觉模型(如具备 OCR 识别能力的模型)仍然可能通过页面截图看到敏感信息。
这种方法能够在保证敏感数据安全的前提下,使代理仍然能够执行需要身份验证的任务。
