Load tool briefs from tool_briefs.yaml for context-aware plan generation. Returns a dict mapping tool name to its brief data, e.g.: {"paper_search": {"brief": "...", "params": {...}}, ...}
()
| 1126 | |
| 1127 | @staticmethod |
| 1128 | def _load_tool_briefs() -> dict: |
| 1129 | """Load tool briefs from tool_briefs.yaml for context-aware plan generation. |
| 1130 | |
| 1131 | Returns a dict mapping tool name to its brief data, e.g.: |
| 1132 | {"paper_search": {"brief": "...", "params": {...}}, ...} |
| 1133 | """ |
| 1134 | briefs_path = Path(__file__).parent / "tool_briefs.yaml" |
| 1135 | if briefs_path.exists(): |
| 1136 | import yaml |
| 1137 | |
| 1138 | data = yaml.safe_load(briefs_path.read_text(encoding="utf-8")) |
| 1139 | tools = data.get("tools") or {} |
| 1140 | # YAML uses dict keyed by tool name: {paper_search: {brief: ..., params: ...}} |
| 1141 | if isinstance(tools, dict): |
| 1142 | return tools |
| 1143 | # Fallback for list format: [{name: ..., brief: ..., params: ...}, ...] |
| 1144 | if isinstance(tools, list): |
| 1145 | return {t["name"]: t for t in tools if "name" in t} |
| 1146 | return {} |
| 1147 | |
| 1148 | @staticmethod |
| 1149 | def _load_workflow_language_guide() -> str: |