write agent.py

This commit is contained in:
a2a-cloud
2026-06-08 22:49:36 +00:00
parent 25ece56942
commit dbd6f12dc0

View File

@@ -436,23 +436,23 @@ class SeleniumbaseWebsiteScraper(A2AAgent[SeleniumbaseWebsiteScraperConfig, NoAu
proposed_selectors = decision.get("selectors") or {}
confidence = float(decision.get("confidence") or 0.0)
# Enforce safety: same-origin only, and only allow selector updates if permitted
if not same_origin_safeguard(start_url, next_url):
# Enforce safety: allowed_domains and same-origin only
if not _allowed_origin(next_url):
decisions.append({
"iteration": iteration,
"step": step,
"action": "stop",
"reason": "planner suggested cross-origin URL; stopping for safety",
"reason": "planner suggested URL outside allowed domains; stopping",
"confidence": confidence,
})
break
if action == "stop":
decisions.append({"iteration": iteration, "action": "stop", "reason": reason, "confidence": confidence})
decisions.append({"step": step, "action": "stop", "reason": reason, "confidence": confidence})
break
if action != "scrape":
decisions.append({
"iteration": iteration,
"step": step,
"action": "stop",
"reason": "planner returned unknown action",
"confidence": confidence,
@@ -461,8 +461,7 @@ class SeleniumbaseWebsiteScraper(A2AAgent[SeleniumbaseWebsiteScraperConfig, NoAu
# Adopt next plan
current_url = next_url
if allow_selector_updates and isinstance(proposed_selectors, dict) and proposed_selectors:
# ensure keys/values are strings
if isinstance(proposed_selectors, dict) and proposed_selectors:
safe_map: dict[str, str] = {}
for k, v in proposed_selectors.items():
k2 = str(k).strip()
@@ -472,7 +471,7 @@ class SeleniumbaseWebsiteScraper(A2AAgent[SeleniumbaseWebsiteScraperConfig, NoAu
if safe_map:
current_selectors = safe_map
decisions.append({
"iteration": iteration,
"step": step,
"action": "scrape",
"reason": reason or "refining selectors/pagination",
"confidence": confidence,