# 台区线损 Skill - target_url 缺失修复方案 ## 问题背景 `browser_script_skill_tool.rs` 调用 `Action::Eval` 时只传了 `script` 参数,没有传 `target_url`。`callback_backend.rs` 的 `target_url` 方法需要从 params 或 `current_target_url` 获取值,两者都没有时报错。 知乎热榜正常工作是因为先执行了 `Action::Navigate`,设置了 `current_target_url`。 ## 设计方案 **方案:在 `browser_script_skill_tool.rs` 的 params 中添加 `target_url`** ### 修改位置 `src/compat/browser_script_skill_tool.rs` - `execute_browser_script_impl` 函数 ### 修改内容 在调用 `browser_tool.invoke(Action::Eval, ...)` 时,从 `expected_domain` 构造完整 URL 并添加到 params: ```rust let target_url = format!("http://{}", expected_domain); let result = match browser_tool.invoke( Action::Eval, json!({ "script": wrapped_script, "target_url": target_url, }), &expected_domain, ) { ``` ### 约束条件 - 使用 `http://` 协议前缀 - `expected_domain` 可能包含端口号(如 `20.76.57.61:18080`),直接拼接即可