安全处理敏感信息,防止模型获取实际密码
处理敏感数据
在处理密码等敏感信息时,你可以使用 sensitive_data
参数,使模型无法直接看到实际值,同时仍然允许它在执行操作时引用这些信息。
示例:如何使用 sensitive_data
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from browser_use import Agent
load_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 登录,然后发布一篇关于生命意义的帖子'
# 将敏感数据传递给 Agent
agent = 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 识别能力的模型)仍然可能通过页面截图看到敏感信息。
这种方法能够在保证敏感数据安全的前提下,使代理仍然能够执行需要身份验证的任务。