browser-use Agent 日志链路分析
browser-use Agent 日志链路分析
本节详细梳理 browser-use Agent 的日志输出,从 Agent 初始化到每一步的行为日志,帮助理解其行为轨迹。
1. Agent 初始化阶段
- 日志点:
logger.info('🧠 Starting a browser-use agent ...')
- 记录 agent 启动、模型、工具、vision、memory、planner等配置。
logger.warning(...)
/logger.error(...)
- 检查敏感数据和安全配置,若
allowed_domains
未配置或不安全,输出安全警告。
- 检查敏感数据和安全配置,若
logger.info('Saving conversation to ...')
- 如果设置了保存对话路径,记录保存路径。
2. Agent 运行主流程(run)
- 日志点:
logger.info('🚀 Starting task: ...')
- 记录任务启动。
logger.info('🛑 Agent stopped')
、logger.error('❌ Stopping due to ... consecutive failures')
- 任务被主动停止或因连续失败终止。
logger.info('Got KeyboardInterrupt during execution, returning current history')
- 捕获到用户中断。
logger.error('Agent run failed with exception: ...', exc_info=True)
- 运行异常。
logger.info('❌ ...')
- 任务未在最大步数内完成。
logger.info('Agent run finished. Attempting to save Playwright script to: ...')
- 任务结束后尝试保存 Playwright 脚本。
logger.error('Failed to save Playwright script: ...', exc_info=True)
- 脚本保存失败。
3. Agent 步骤执行(step)
- 每一步日志点:
logger.info(f'📍 Step {self.state.n_steps}: Evaluating page with ... interactive elements on: ...')
- 记录当前步骤、页面、可交互元素数量。
logger.info('Last step finishing up')
- 最后一步特殊提示。
logger.warning('Model returned empty action. Retrying...')
- LLM未返回action,重试。
logger.warning('Model still returned empty after retry. Inserting safe noop action.')
- 多次无action,插入安全空操作。
logger.info(f'📄 Result: {result[-1].extracted_content}')
- 步骤完成,输出最终结果。
logger.info(f'📍 Step {self.state.n_steps}: Ran {action_count} actions in {step_duration:.2f}s: ...')
- 步骤完成,统计执行action数量、耗时、成功/失败数。
logger.info(f'⚡️ Decided next action: ...')
或logger.info(f'⚡️ Decided next {action_count} multi-actions: ...')
- 记录 LLM 决策的下一个动作。
logger.info(f'🧠 LLM call => ...')
- 记录 LLM 调用的详细信息(消息数、token数、是否有图片、工具数量等)。
logger.warning(f'Failed to parse model output: ...')
- LLM输出解析失败。
logger.error('❌ Browser is closed or disconnected, unable to proceed')
- 浏览器断开。
logger.error(f'❌ Result failed ... times: ...')
/logger.warning(f'❌ Result failed ... times: ...')
- 步骤异常、重试、限流等。
logger.info(f'Cutting tokens from history - new max input tokens: ...')
- token超限,裁剪历史。
4. 多动作执行(multi_act)
- 日志点:
logger.info(msg)
- 多动作时,元素索引变化、新元素出现等特殊情况。
5. Telemetry 与历史
- 日志点:
self._log_agent_event(...)
(内部调用 logger.info/telemetry)- 记录本次 run 的所有 action、结果、成功率、最终输出等。
6. 其它辅助日志
- 如 LLM 工具调用方式检测、模型能力测试、版本信息、异常处理等,均有 debug/info/warning/error 日志,便于开发和排查。
总结
Agent 的日志输出链路覆盖了:
- 初始化配置与安全检查
- 任务主流程启动、终止、异常
- 每一步的页面环境、LLM决策、动作执行、结果统计
- 多动作与特殊情况
- Telemetry与历史记录
- 关键异常与调试信息
这些日志为追踪Agent的自动化行为、调试和优化提供了完整的轨迹。