Files
wehub-resource-sync 4b6817381b
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
CI / coverage-report (push) Has been cancelled
CI / test-kubernetes (push) Has been cancelled
CI / should-run-thorough (push) Has been cancelled
CI / test-thorough (cloudwatch-demo) (push) Has been cancelled
CI / test-thorough (flink-ecs) (push) Has been cancelled
CI / test-thorough (upstream-lambda) (push) Has been cancelled
CI / test-thorough (prefect-ecs-fargate) (push) Has been cancelled
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Has been cancelled
Benchmark image — build + push to ECR (any adapter) / build + push (push) Has been cancelled
CI / quality (ubuntu-latest) (push) Has been cancelled
CI / test (tools-runtime) (push) Has been cancelled
CI / test (e2e-general) (push) Has been cancelled
CI / test (cli-runtime) (push) Has been cancelled
CI / test (e2e-provider-and-openclaw) (push) Has been cancelled
CI / test (integrations-and-misc) (push) Has been cancelled
Release / verify (push) Has been cancelled
Release / build-python-dist (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Has been cancelled
Release / publish-release (push) Has been cancelled
Release / publish-main-release (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Has been cancelled
Release / prepare (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:10:45 +08:00

61 lines
2.2 KiB
Python

"""SRE knowledge retrieval tool for pipeline incident investigation."""
from __future__ import annotations
from typing import Any
from core.tool_framework.tool_decorator import tool
from tools.system.sre_guidance_tool.knowledge_base import (
get_sre_guidance as _get_sre_guidance,
)
from tools.system.sre_guidance_tool.knowledge_base import (
get_topics_for_keywords,
)
def _extract_guidance_params(sources: dict[str, dict[str, Any]]) -> dict[str, Any]:
return {"keywords": sources.get("problem_keywords", [])}
@tool(
name="get_sre_guidance",
display_name="SRE runbook",
source="knowledge",
description="Retrieve SRE best practices for data pipeline incidents.",
use_cases=[
"Understanding pipeline failure patterns (delayed data, corrupt data)",
"Applying SLO concepts to data freshness and correctness issues",
"Identifying hotspotting and resource contention patterns",
"Getting remediation guidance for common pipeline failures",
"Structuring postmortem findings and recommendations",
],
tags=("safe", "fast", "no-credentials"),
input_schema={
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "Specific topic: pipeline_types, slo_freshness, slo_correctness, failure_delayed_data, failure_corrupt_data, hotspotting, thundering_herd, monitoring_pipelines, dependency_failure, recovery_remediation, resource_planning, pipeline_documentation, playbooks_overview, workflow_patterns",
},
"keywords": {
"type": "array",
"items": {"type": "string"},
"description": "Keywords to match against SRE content (e.g., ['timeout', 'delay'])",
},
"max_topics": {"type": "integer", "default": 3},
},
"required": [],
},
extract_params=_extract_guidance_params,
)
def get_sre_guidance(
topic: str | None = None,
keywords: list[str] | None = None,
max_topics: int = 3,
) -> dict[str, Any]:
"""Retrieve SRE best practices for data pipeline incidents."""
return _get_sre_guidance(topic=topic, keywords=keywords, max_topics=max_topics)
__all__ = ["get_sre_guidance", "get_topics_for_keywords"]