7979from .spatial_statistics import spatial_autocorrelation , local_moran , hotspot_analysis
8080from .gis_processors import _generate_output_path , _resolve_path
8181from .database_tools import T_TABLE_OWNERSHIP
82+ from .tool_filter import intent_tool_predicate
8283
8384# ---------------------------------------------------------------------------
8485# Tool filter presets — reusable across agents
124125
125126data_exploration_agent = LlmAgent (
126127 name = "DataExploration" ,
127- instruction = get_prompt ("optimization" , "data_exploration_agent_instruction " ),
128- description = "数据质量审计与治理专家 " ,
128+ instruction = get_prompt ("optimization" , "data_exploration_opt_instruction " ),
129+ description = "优化管道数据准备专家 " ,
129130 model = MODEL_STANDARD ,
130131 output_key = "data_profile" ,
131132 after_tool_callback = _self_correction_after_tool ,
138139
139140data_processing_agent = LlmAgent (
140141 name = "DataProcessing" ,
141- instruction = get_prompt ("optimization" , "data_processing_agent_instruction " ),
142- description = "特征工程与预处理专家 " ,
142+ instruction = get_prompt ("optimization" , "data_processing_opt_instruction " ),
143+ description = "优化管道数据预处理专家 " ,
143144 model = MODEL_STANDARD ,
144145 output_key = "processed_data" ,
145146 after_tool_callback = _self_correction_after_tool ,
178179quality_checker_agent = LlmAgent (
179180 name = "QualityChecker" ,
180181 instruction = get_prompt ("optimization" , "quality_checker_instruction" ),
181- description = "分析结果质量审查员。验证FFI/DRL /遥感指标合理性。" ,
182+ description = "分析结果质量审查员。验证DRL优化 /遥感指标合理性。" ,
182183 model = MODEL_FAST ,
183184 output_key = "quality_verdict" ,
184185 tools = [approve_quality ],
301302 after_tool_callback = _self_correction_after_tool ,
302303 tools = [
303304 ExplorationToolset (tool_filter = _TRANSFORM_TOOLS ),
304- GeoProcessingToolset (),
305- LocationToolset (),
305+ GeoProcessingToolset (tool_filter = intent_tool_predicate ),
306+ LocationToolset (tool_filter = intent_tool_predicate ),
306307 DatabaseToolset (tool_filter = _DB_READ_DESCRIBE + ["share_table" , "import_to_postgis" ]),
307308 FileToolset (),
308309 MemoryToolset (),
309- AdminToolset (),
310- RemoteSensingToolset (),
311- SpatialStatisticsToolset (),
312- SemanticLayerToolset (),
313- StreamingToolset (),
314- TeamToolset (),
315- DataLakeToolset (),
310+ AdminToolset (tool_filter = intent_tool_predicate ),
311+ RemoteSensingToolset (tool_filter = intent_tool_predicate ),
312+ SpatialStatisticsToolset (tool_filter = intent_tool_predicate ),
313+ SemanticLayerToolset (tool_filter = intent_tool_predicate ),
314+ StreamingToolset (tool_filter = intent_tool_predicate ),
315+ TeamToolset (tool_filter = intent_tool_predicate ),
316+ DataLakeToolset (tool_filter = intent_tool_predicate ),
316317 McpHubToolset (pipeline = "general" ),
317- FusionToolset (),
318- KnowledgeGraphToolset (),
318+ FusionToolset (tool_filter = intent_tool_predicate ),
319+ KnowledgeGraphToolset (tool_filter = intent_tool_predicate ),
319320 ] + _arcpy_tools ,
320321)
321322
@@ -411,15 +412,15 @@ def _make_planner_processor(name: str, **overrides) -> LlmAgent:
411412 after_tool_callback = _self_correction_after_tool ,
412413 tools = [
413414 ExplorationToolset (tool_filter = _TRANSFORM_TOOLS ),
414- GeoProcessingToolset (),
415- LocationToolset (),
415+ GeoProcessingToolset (tool_filter = intent_tool_predicate ),
416+ LocationToolset (tool_filter = intent_tool_predicate ),
416417 RemoteSensingToolset (tool_filter = ["describe_raster" , "download_lulc" , "download_dem" ]),
417- StreamingToolset (),
418+ StreamingToolset (tool_filter = intent_tool_predicate ),
418419 DataLakeToolset (tool_filter = _DATALAKE_READ ),
419420 DatabaseToolset (tool_filter = ["import_to_postgis" ]),
420421 McpHubToolset (pipeline = "planner" ),
421- FusionToolset (),
422- KnowledgeGraphToolset (),
422+ FusionToolset (tool_filter = intent_tool_predicate ),
423+ KnowledgeGraphToolset (tool_filter = intent_tool_predicate ),
423424 ] + _arcpy_tools ,
424425 )
425426 defaults .update (overrides )
@@ -431,7 +432,7 @@ def _make_planner_analyzer(name: str, **overrides) -> LlmAgent:
431432 defaults = dict (
432433 name = name ,
433434 instruction = get_prompt ("planner" , "planner_analyzer_instruction" ),
434- description = "FFI破碎化指数、 DRL深度强化学习布局优化、遥感分析、空间统计专家。" ,
435+ description = "DRL深度强化学习布局优化、遥感分析、空间统计专家。" ,
435436 model = MODEL_STANDARD ,
436437 output_key = "analysis_report" ,
437438 disallow_transfer_to_peers = True ,
@@ -448,7 +449,7 @@ def _make_planner_visualizer(name: str, **overrides) -> LlmAgent:
448449 name = name ,
449450 instruction = get_prompt ("planner" , "planner_visualizer_instruction" ),
450451 description = "地理空间可视化专家。交互地图、Choropleth、热力图、气泡图、PNG导出。" ,
451- model = MODEL_FAST ,
452+ model = MODEL_STANDARD ,
452453 output_key = "visualizations" ,
453454 disallow_transfer_to_peers = True ,
454455 tools = [
@@ -492,7 +493,7 @@ def _make_planner_visualizer(name: str, **overrides) -> LlmAgent:
492493
493494analyze_viz_workflow = SequentialAgent (
494495 name = "AnalyzeAndVisualize" ,
495- description = "分析→可视化 一体化工作流。执行FFI/DRL /统计分析后自动生成可视化。" ,
496+ description = "分析→可视化 一体化工作流。执行DRL /统计分析后自动生成可视化。" ,
496497 sub_agents = [
497498 _make_planner_analyzer ("WFAnalyzer" ),
498499 _make_planner_visualizer ("WFVisualizer" ),
0 commit comments