agent-framework-lib 0.6.3.post3__tar.gz → 0.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_framework_lib-0.6.3.post3/agent_framework_lib.egg-info → agent_framework_lib-0.7.0}/PKG-INFO +18 -17
- {agent_framework_lib-0.6.3.post3/agent_framework/web/docs → agent_framework_lib-0.7.0}/README.md +17 -16
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/__init__.py +5 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/model_config.py +5 -5
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/step_display_config.py +10 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/llm_metrics.py +1 -1
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/llm_metrics_collector.py +1 -1
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/otel_instrumentor.py +3 -3
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/token_counter.py +3 -3
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/agent_mixin.py +62 -3
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/base.py +33 -2
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/__init__.py +25 -9
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/scripts/__init__.py +1 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/scripts/create_and_register.py +189 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/scripts/register_to_storage.py +115 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/chart/SKILL.md +290 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/chart/chart_to_image.py +244 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/drawio/SKILL.md +109 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/drawio/create_drawio.py +85 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/excel/SKILL.md +111 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/excel/create_excel.py +110 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/file/SKILL.md +187 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/file/create_file.py +85 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/file/list_files.py +77 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/file/read_file.py +62 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/file_access/SKILL.md +96 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/file_access/get_file_path.py +75 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/form/SKILL.md +163 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/image_display/SKILL.md +206 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/mermaid/SKILL.md +267 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/mermaid/mermaid_to_image.py +246 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/multimodal/SKILL.md +124 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/optionsblock/SKILL.md +258 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/table/SKILL.md +220 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/table/table_to_image.py +366 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/unified_pdf/SKILL.md +167 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/unified_pdf/create_pdf.py +180 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/web_search/SKILL.md +141 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/web_search/web_news_search.py +77 -0
- agent_framework_lib-0.7.0/agent_framework/skills/builtin/skills/web_search/web_search.py +75 -0
- agent_framework_lib-0.7.0/agent_framework/skills/custom_skill_manager.py +529 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/discovery_prompt.py +47 -18
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/markdown_loader.py +20 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/shell_tool.py +22 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/utils/session_title_generator.py +4 -4
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/GETTING_STARTED.md +3 -3
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0/agent_framework/web/docs}/README.md +12 -12
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0/agent_framework/web}/docs/TOOLS_AND_MCP_GUIDE.md +287 -14
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0/agent_framework/web}/docs/configuration.md +10 -10
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0/agent_framework/web/docs}/examples/agent_with_memory_graphiti.py +1 -1
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/helper_agent.py +3 -3
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/modern_ui.html +578 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/server.py +46 -2
- agent_framework_lib-0.7.0/agent_framework/web/skills_router.py +389 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0/agent_framework_lib.egg-info}/PKG-INFO +18 -17
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework_lib.egg-info/SOURCES.txt +30 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/ARCHITECTURE_DIAGRAM.md +3 -3
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/CREATING_AGENTS.md +1 -1
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/ELASTICSEARCH_DATA_STRUCTURES.md +1 -1
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/GETTING_STARTED.md +3 -3
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/HISTORY_MESSAGE_FORMAT.md +1 -1
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/MULTIMODAL_TOOLS_GUIDE.md +2 -2
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/SKILLS_AND_SUBAGENTS_ANALYSIS.md +73 -51
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/STREAMING_EVENTS_FRONTEND.md +1 -1
- {agent_framework_lib-0.6.3.post3/agent_framework/web → agent_framework_lib-0.7.0}/docs/TOOLS_AND_MCP_GUIDE.md +287 -14
- {agent_framework_lib-0.6.3.post3/agent_framework/web → agent_framework_lib-0.7.0}/docs/configuration.md +10 -10
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/framework_audit_remarques.md +1 -1
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/agent_context_budget_test.py +1 -1
- {agent_framework_lib-0.6.3.post3/agent_framework/web/docs → agent_framework_lib-0.7.0}/examples/agent_with_memory_graphiti.py +1 -1
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/pyproject.toml +13 -10
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/ARCHITECTURE.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/LICENSE +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/MANIFEST.in +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/base.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/endpoints/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/endpoints/a2a_router.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/endpoints/agent_card_builder.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/endpoints/agent_card_skill_builder.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/endpoints/jsonrpc_dispatcher.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/endpoints/models_jsonrpc.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/endpoints/sse_wrapper.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/endpoints/translation_layer.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/models.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/providers/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/providers/elasticsearch_provider.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/a2a/providers/postgres_provider.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/capabilities/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/capabilities/resolver.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/chart_generation/llm_refinement_loop.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/activity_formatter.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/agent_interface.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/agent_provider.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/base_agent.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/context_budget.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/context_summarizer.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/elasticsearch_config_provider.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/implementation_validator.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/knowledge_state.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/loop_detector.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/model_clients.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/model_router.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/models.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/provider_calibration.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/rich_content_prompt_unsused_to_be_deleted.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/scratchpad_compressor.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/state_manager.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/streaming_parts_accumulator.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/implementations/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/implementations/budget_aware_agent.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/implementations/llamaindex_agent.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/implementations/llamaindex_memory_adapter.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/implementations/microsoft_agent.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/memory/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/memory/agent_mixin.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/memory/base.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/memory/config.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/memory/manager.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/memory/personalization.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/memory/providers/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/memory/providers/graphiti_provider.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/memory/providers/memori_provider.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/memory/tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/api_timing_tracker.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/elasticsearch_circuit_breaker.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/elasticsearch_logging.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/error_handling.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/error_logging.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/llm_auto_instrumentor.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/llm_metrics_extractor.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/metrics_aggregator.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/metrics_config.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/observability_manager.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/otel_logging_handler.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/otel_metrics_recorder.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/otel_setup.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/performance_monitor.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/progress_tracker.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/resource_manager.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/resource_metrics_collector.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/streaming_latency_tracer.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/timing_tracker.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/monitoring/tracing_context.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/processing/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/processing/ai_content_management.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/processing/markdown_converter.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/processing/multimodal_integration.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/processing/rich_content_validation.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/py.typed +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/session/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/session/elasticsearch_session_storage.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/session/session_storage.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/chart_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/drawio_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/excel_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/file_access_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/file_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/form_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/image_display_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/mermaid_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/multimodal_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/optionsblock_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/pdf_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/pdf_with_images_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/table_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/unified_pdf_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/builtin/web_search_skill.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/storage/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/storage/file_storages.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/storage/file_system_management.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/storage/storage_optimizer.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/subagents/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/subagents/spawn_tool.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/activity_callback.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/adaptive_pdf_css.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/base.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/chart_tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/drawio_tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/excel_tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/file_access_tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/file_tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/html_content_analyzer.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/mermaid_tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/multimodal_tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/pdf_image_scaler.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/pdf_tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/pdf_with_images_tool.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/sizing_config.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/tabledata_tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/unified_pdf_tool.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/web_fetch_tool.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/tools/web_search_tools.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/utils/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/utils/path_utils.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/utils/post_install.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/utils/source_detector.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/utils/special_blocks.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/__init__.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/admin_auth.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/admin_models.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/admin_router.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/admin_services.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/api_timing_middleware.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/Dockerfile +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/api-reference.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/docker-compose.yml +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/examples/agent_example_multi_skills.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/examples/agent_with_file_storage.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/examples/agent_with_mcp.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/examples/agent_with_memory.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/examples/agent_with_memory_hybrid.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/examples/agent_with_memory_simple.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/examples/custom_framework_agent.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/examples/simple_agent.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/examples/skills_demo_agent.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/documentation_generator.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/helper_ui.html +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/observability/kibana-llm-dashboard-setup.json +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/observability/kibana-resource-metrics-dashboard.json +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/otel_tracing_middleware.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/web/test_app.html +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework_lib.egg-info/dependency_links.txt +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework_lib.egg-info/entry_points.txt +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework_lib.egg-info/requires.txt +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework_lib.egg-info/top_level.txt +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/ACTIVITY_OUTPUT_PART.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/CONCURRENCE_VS_PARALLELISME_GUIDE.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/FILE_DOWNLOAD_LINKS.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/FILE_STORAGE_GUIDE.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/IMPLEMENTATION_GUIDE_NEW_AGENT.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/MODIFICATIONS_CONCURRENCE.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/OBSERVABILITY_GUIDE.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/PYPI_PUBLISHING.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/QA_STREAMING_LATENCY.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/SPEC_CROSS_MODEL_HISTORY_CONVERSION.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/api-reference.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/README.md +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/agent_example_multi_skills.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/agent_exemple_test.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/agent_training_with_apo.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/agent_with_custom_tools_file_storage.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/agent_with_file_storage.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/agent_with_mcp.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/agent_with_memory_hybrid.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/agent_with_memory_simple.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/agent_with_personalization.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/biagenttest.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/custom_framework_agent.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/dependencies/docker-compose.yaml +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/pyproject.toml +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/simple_agent.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/examples/skills_demo_agent.py +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/setup.cfg +0 -0
- {agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/setup.py +0 -0
{agent_framework_lib-0.6.3.post3/agent_framework_lib.egg-info → agent_framework_lib-0.7.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-framework-lib
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: A comprehensive Python framework for building and serving conversational AI agents with FastAPI
|
|
5
5
|
Author-email: Sebastian Pavel <sebastian@cinco.ai>, Elliott Girard <elliott.girard@icloud.com>
|
|
6
6
|
Maintainer-email: Sebastian Pavel <sebastian@cinco.ai>
|
|
@@ -373,13 +373,13 @@ ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
|
|
|
373
373
|
GEMINI_API_KEY=your-gemini-key
|
|
374
374
|
|
|
375
375
|
# Model Configuration
|
|
376
|
-
DEFAULT_MODEL=gpt-5-mini
|
|
376
|
+
DEFAULT_MODEL=gpt-5.4-mini
|
|
377
377
|
|
|
378
378
|
# Multi-Model Routing (Auto Mode)
|
|
379
379
|
DEFAULT_MODEL_MODE=auto # "auto" or specific model name
|
|
380
|
-
AUTO_CLASSIFIER_MODEL=gpt-5-nano # Model for complexity classification
|
|
381
|
-
PREFERRED_LIGHT_MODELS=gpt-5-nano,claude-haiku-4-5-20251001
|
|
382
|
-
PREFERRED_STANDARD_MODELS=gpt-5-mini
|
|
380
|
+
AUTO_CLASSIFIER_MODEL=gpt-5.4-nano # Model for complexity classification
|
|
381
|
+
PREFERRED_LIGHT_MODELS=gpt-5.4-nano,claude-haiku-4-5-20251001
|
|
382
|
+
PREFERRED_STANDARD_MODELS=gpt-5.4-mini
|
|
383
383
|
PREFERRED_ADVANCED_MODELS=gpt-5.2,claude-opus-4-6
|
|
384
384
|
|
|
385
385
|
# Session Storage (optional)
|
|
@@ -446,8 +446,8 @@ When `DEFAULT_MODEL_MODE=auto`, the system analyzes each query and routes it to
|
|
|
446
446
|
|
|
447
447
|
| Tier | Icon | Use Case | Example Models |
|
|
448
448
|
|------|------|----------|----------------|
|
|
449
|
-
| **Light** | 💨 | Simple queries, greetings, basic info | gpt-5-nano, claude-haiku-4-5 |
|
|
450
|
-
| **Standard** | ⚖️ | Typical questions, explanations | gpt-5-mini, claude-sonnet-4-6 |
|
|
449
|
+
| **Light** | 💨 | Simple queries, greetings, basic info | gpt-5.4-nano, claude-haiku-4-5 |
|
|
450
|
+
| **Standard** | ⚖️ | Typical questions, explanations | gpt-5.4-mini, claude-sonnet-4-6 |
|
|
451
451
|
| **Advanced** | 🧠 | Complex analysis, creative tasks | gpt-5.2, claude-opus-4-6 |
|
|
452
452
|
|
|
453
453
|
**Benefits:**
|
|
@@ -469,11 +469,11 @@ Users can also select a specific model from the UI dropdown:
|
|
|
469
469
|
DEFAULT_MODEL_MODE=auto
|
|
470
470
|
|
|
471
471
|
# Model used for complexity classification (should be fast and cheap)
|
|
472
|
-
AUTO_CLASSIFIER_MODEL=gpt-5-nano
|
|
472
|
+
AUTO_CLASSIFIER_MODEL=gpt-5.4-nano
|
|
473
473
|
|
|
474
474
|
# Preferred models per tier (comma-separated, in order of preference)
|
|
475
|
-
PREFERRED_LIGHT_MODELS=gpt-5-nano,claude-haiku-4-5-20251001,gemini-2.5-flash-lite
|
|
476
|
-
PREFERRED_STANDARD_MODELS=gpt-5-mini,gemini-2.5-flash
|
|
475
|
+
PREFERRED_LIGHT_MODELS=gpt-5.4-nano,claude-haiku-4-5-20251001,gemini-2.5-flash-lite
|
|
476
|
+
PREFERRED_STANDARD_MODELS=gpt-5.4-mini,gemini-2.5-flash
|
|
477
477
|
PREFERRED_ADVANCED_MODELS=gpt-5.2,claude-opus-4-6,gemini-2.5-pro
|
|
478
478
|
```
|
|
479
479
|
|
|
@@ -486,12 +486,12 @@ curl http://localhost:8000/api/models
|
|
|
486
486
|
# Response
|
|
487
487
|
{
|
|
488
488
|
"models_by_tier": {
|
|
489
|
-
"light": [{"id": "gpt-5-nano", "provider": "openai", "available": true}, ...],
|
|
489
|
+
"light": [{"id": "gpt-5.4-nano", "provider": "openai", "available": true}, ...],
|
|
490
490
|
"standard": [...],
|
|
491
491
|
"advanced": [...]
|
|
492
492
|
},
|
|
493
493
|
"default_mode": "auto",
|
|
494
|
-
"classifier_model": "gpt-5-nano"
|
|
494
|
+
"classifier_model": "gpt-5.4-nano"
|
|
495
495
|
}
|
|
496
496
|
```
|
|
497
497
|
|
|
@@ -520,7 +520,7 @@ class MyAgent(LlamaIndexAgent):
|
|
|
520
520
|
)
|
|
521
521
|
# Default model config (can be overridden per session)
|
|
522
522
|
self.default_temperature = 0.7
|
|
523
|
-
self.default_model = "gpt-5-mini"
|
|
523
|
+
self.default_model = "gpt-5.4-mini"
|
|
524
524
|
```
|
|
525
525
|
|
|
526
526
|
**Runtime Configuration:**
|
|
@@ -985,7 +985,7 @@ class MySkillsAgent(LlamaIndexAgent):
|
|
|
985
985
|
| Category | Skills |
|
|
986
986
|
|----------|--------|
|
|
987
987
|
| **Visualization** | chart, mermaid, table |
|
|
988
|
-
| **Document** | file,
|
|
988
|
+
| **Document** | file, unified_pdf, file_access, excel, drawio |
|
|
989
989
|
| **Web** | web_search |
|
|
990
990
|
| **Multimodal** | multimodal |
|
|
991
991
|
| **UI** | form, optionsblock, image_display |
|
|
@@ -994,9 +994,10 @@ class MySkillsAgent(LlamaIndexAgent):
|
|
|
994
994
|
|
|
995
995
|
1. Agent receives user request: "Create a bar chart"
|
|
996
996
|
2. Agent calls `list_skills()` → sees available skills
|
|
997
|
-
3. Agent calls `load_skill("chart")` → gets
|
|
998
|
-
4. Agent
|
|
999
|
-
5.
|
|
997
|
+
3. Agent calls `load_skill("chart")` → gets chart instructions
|
|
998
|
+
4. Agent constructs the shell command as described in the instructions
|
|
999
|
+
5. Agent executes via `shell_exec` → script generates the chart
|
|
1000
|
+
6. Optionally calls `unload_skill("chart")` when done
|
|
1000
1001
|
|
|
1001
1002
|
**More info:** See [Creating Agents Guide](docs/CREATING_AGENTS.md#skills-integration) and [skills_demo_agent.py](examples/skills_demo_agent.py)
|
|
1002
1003
|
|
{agent_framework_lib-0.6.3.post3/agent_framework/web/docs → agent_framework_lib-0.7.0}/README.md
RENAMED
|
@@ -227,13 +227,13 @@ ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
|
|
|
227
227
|
GEMINI_API_KEY=your-gemini-key
|
|
228
228
|
|
|
229
229
|
# Model Configuration
|
|
230
|
-
DEFAULT_MODEL=gpt-5-mini
|
|
230
|
+
DEFAULT_MODEL=gpt-5.4-mini
|
|
231
231
|
|
|
232
232
|
# Multi-Model Routing (Auto Mode)
|
|
233
233
|
DEFAULT_MODEL_MODE=auto # "auto" or specific model name
|
|
234
|
-
AUTO_CLASSIFIER_MODEL=gpt-5-nano # Model for complexity classification
|
|
235
|
-
PREFERRED_LIGHT_MODELS=gpt-5-nano,claude-haiku-4-5-20251001
|
|
236
|
-
PREFERRED_STANDARD_MODELS=gpt-5-mini
|
|
234
|
+
AUTO_CLASSIFIER_MODEL=gpt-5.4-nano # Model for complexity classification
|
|
235
|
+
PREFERRED_LIGHT_MODELS=gpt-5.4-nano,claude-haiku-4-5-20251001
|
|
236
|
+
PREFERRED_STANDARD_MODELS=gpt-5.4-mini
|
|
237
237
|
PREFERRED_ADVANCED_MODELS=gpt-5.2,claude-opus-4-6
|
|
238
238
|
|
|
239
239
|
# Session Storage (optional)
|
|
@@ -300,8 +300,8 @@ When `DEFAULT_MODEL_MODE=auto`, the system analyzes each query and routes it to
|
|
|
300
300
|
|
|
301
301
|
| Tier | Icon | Use Case | Example Models |
|
|
302
302
|
|------|------|----------|----------------|
|
|
303
|
-
| **Light** | 💨 | Simple queries, greetings, basic info | gpt-5-nano, claude-haiku-4-5 |
|
|
304
|
-
| **Standard** | ⚖️ | Typical questions, explanations | gpt-5-mini, claude-sonnet-4-6 |
|
|
303
|
+
| **Light** | 💨 | Simple queries, greetings, basic info | gpt-5.4-nano, claude-haiku-4-5 |
|
|
304
|
+
| **Standard** | ⚖️ | Typical questions, explanations | gpt-5.4-mini, claude-sonnet-4-6 |
|
|
305
305
|
| **Advanced** | 🧠 | Complex analysis, creative tasks | gpt-5.2, claude-opus-4-6 |
|
|
306
306
|
|
|
307
307
|
**Benefits:**
|
|
@@ -323,11 +323,11 @@ Users can also select a specific model from the UI dropdown:
|
|
|
323
323
|
DEFAULT_MODEL_MODE=auto
|
|
324
324
|
|
|
325
325
|
# Model used for complexity classification (should be fast and cheap)
|
|
326
|
-
AUTO_CLASSIFIER_MODEL=gpt-5-nano
|
|
326
|
+
AUTO_CLASSIFIER_MODEL=gpt-5.4-nano
|
|
327
327
|
|
|
328
328
|
# Preferred models per tier (comma-separated, in order of preference)
|
|
329
|
-
PREFERRED_LIGHT_MODELS=gpt-5-nano,claude-haiku-4-5-20251001,gemini-2.5-flash-lite
|
|
330
|
-
PREFERRED_STANDARD_MODELS=gpt-5-mini,gemini-2.5-flash
|
|
329
|
+
PREFERRED_LIGHT_MODELS=gpt-5.4-nano,claude-haiku-4-5-20251001,gemini-2.5-flash-lite
|
|
330
|
+
PREFERRED_STANDARD_MODELS=gpt-5.4-mini,gemini-2.5-flash
|
|
331
331
|
PREFERRED_ADVANCED_MODELS=gpt-5.2,claude-opus-4-6,gemini-2.5-pro
|
|
332
332
|
```
|
|
333
333
|
|
|
@@ -340,12 +340,12 @@ curl http://localhost:8000/api/models
|
|
|
340
340
|
# Response
|
|
341
341
|
{
|
|
342
342
|
"models_by_tier": {
|
|
343
|
-
"light": [{"id": "gpt-5-nano", "provider": "openai", "available": true}, ...],
|
|
343
|
+
"light": [{"id": "gpt-5.4-nano", "provider": "openai", "available": true}, ...],
|
|
344
344
|
"standard": [...],
|
|
345
345
|
"advanced": [...]
|
|
346
346
|
},
|
|
347
347
|
"default_mode": "auto",
|
|
348
|
-
"classifier_model": "gpt-5-nano"
|
|
348
|
+
"classifier_model": "gpt-5.4-nano"
|
|
349
349
|
}
|
|
350
350
|
```
|
|
351
351
|
|
|
@@ -374,7 +374,7 @@ class MyAgent(LlamaIndexAgent):
|
|
|
374
374
|
)
|
|
375
375
|
# Default model config (can be overridden per session)
|
|
376
376
|
self.default_temperature = 0.7
|
|
377
|
-
self.default_model = "gpt-5-mini"
|
|
377
|
+
self.default_model = "gpt-5.4-mini"
|
|
378
378
|
```
|
|
379
379
|
|
|
380
380
|
**Runtime Configuration:**
|
|
@@ -839,7 +839,7 @@ class MySkillsAgent(LlamaIndexAgent):
|
|
|
839
839
|
| Category | Skills |
|
|
840
840
|
|----------|--------|
|
|
841
841
|
| **Visualization** | chart, mermaid, table |
|
|
842
|
-
| **Document** | file,
|
|
842
|
+
| **Document** | file, unified_pdf, file_access, excel, drawio |
|
|
843
843
|
| **Web** | web_search |
|
|
844
844
|
| **Multimodal** | multimodal |
|
|
845
845
|
| **UI** | form, optionsblock, image_display |
|
|
@@ -848,9 +848,10 @@ class MySkillsAgent(LlamaIndexAgent):
|
|
|
848
848
|
|
|
849
849
|
1. Agent receives user request: "Create a bar chart"
|
|
850
850
|
2. Agent calls `list_skills()` → sees available skills
|
|
851
|
-
3. Agent calls `load_skill("chart")` → gets
|
|
852
|
-
4. Agent
|
|
853
|
-
5.
|
|
851
|
+
3. Agent calls `load_skill("chart")` → gets chart instructions
|
|
852
|
+
4. Agent constructs the shell command as described in the instructions
|
|
853
|
+
5. Agent executes via `shell_exec` → script generates the chart
|
|
854
|
+
6. Optionally calls `unload_skill("chart")` when done
|
|
854
855
|
|
|
855
856
|
**More info:** See [Creating Agents Guide](docs/CREATING_AGENTS.md#skills-integration) and [skills_demo_agent.py](examples/skills_demo_agent.py)
|
|
856
857
|
|
|
@@ -345,6 +345,11 @@ def create_basic_agent_server(
|
|
|
345
345
|
|
|
346
346
|
logger.info(f"[create_basic_agent_server] Starting server for {agent_class.__name__} on {host}:{port}")
|
|
347
347
|
logger.info(f"[create_basic_agent_server] Reload: {reload}")
|
|
348
|
+
|
|
349
|
+
# Ensure AGENT_HOST and AGENT_PORT are in the environment so that
|
|
350
|
+
# subprocesses (e.g. skill scripts via ShellTool) can reach this server.
|
|
351
|
+
os.environ["AGENT_HOST"] = host
|
|
352
|
+
os.environ["AGENT_PORT"] = str(port)
|
|
348
353
|
|
|
349
354
|
# When reload=True, uvicorn requires an import string, not the app object directly
|
|
350
355
|
if reload:
|
{agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/core/model_config.py
RENAMED
|
@@ -14,7 +14,7 @@ This module provides:
|
|
|
14
14
|
Environment Variables:
|
|
15
15
|
- OPENAI_API_KEY: OpenAI API key
|
|
16
16
|
- GEMINI_API_KEY: Google Gemini API key
|
|
17
|
-
- DEFAULT_MODEL: Default model to use (default: "gpt-5-mini")
|
|
17
|
+
- DEFAULT_MODEL: Default model to use (default: "gpt-5.4-mini")
|
|
18
18
|
- OPENAI_MODELS: Comma-separated list of OpenAI model names
|
|
19
19
|
- GEMINI_MODELS: Comma-separated list of Gemini model names
|
|
20
20
|
- FALLBACK_PROVIDER: Provider to use when model provider is unknown
|
|
@@ -27,7 +27,7 @@ Example:
|
|
|
27
27
|
from agent_framework.model_config import model_config
|
|
28
28
|
|
|
29
29
|
# Get provider for a model
|
|
30
|
-
provider = model_config.get_provider("gpt-5-mini")
|
|
30
|
+
provider = model_config.get_provider("gpt-5.4-mini")
|
|
31
31
|
|
|
32
32
|
# Get API key for a provider
|
|
33
33
|
api_key = model_config.get_api_key(provider)
|
|
@@ -383,7 +383,7 @@ class ModelConfigManager:
|
|
|
383
383
|
Get a flat list of all models with provider info and availability status.
|
|
384
384
|
|
|
385
385
|
Returns a list of dictionaries, each containing:
|
|
386
|
-
- id: The model identifier (e.g., "gpt-5-minio-mini")
|
|
386
|
+
- id: The model identifier (e.g., "gpt-5.4-minio-mini")
|
|
387
387
|
- provider: The provider name (e.g., "openai")
|
|
388
388
|
- available: Boolean indicating if the model's API key is configured
|
|
389
389
|
|
|
@@ -394,7 +394,7 @@ class ModelConfigManager:
|
|
|
394
394
|
```python
|
|
395
395
|
models = model_config.get_all_available_models()
|
|
396
396
|
# [
|
|
397
|
-
# {"id": "gpt-5-minio", "provider": "openai", "available": True},
|
|
397
|
+
# {"id": "gpt-5.4-minio", "provider": "openai", "available": True},
|
|
398
398
|
# {"id": "claude-3-opus", "provider": "anthropic", "available": False},
|
|
399
399
|
# ...
|
|
400
400
|
# ]
|
|
@@ -500,7 +500,7 @@ class ModelConfigManager:
|
|
|
500
500
|
```python
|
|
501
501
|
model_config.register_agent_config("my-agent", {
|
|
502
502
|
"system_prompt": "You are a helpful assistant.",
|
|
503
|
-
"model_name": "gpt-5-minio",
|
|
503
|
+
"model_name": "gpt-5.4-minio",
|
|
504
504
|
"model_config": {"temperature": 0.7, "max_tokens": 50000}
|
|
505
505
|
})
|
|
506
506
|
```
|
|
@@ -279,6 +279,16 @@ DEFAULT_TOOL_DISPLAY: dict[str, StepDisplayInfo] = {
|
|
|
279
279
|
category="file",
|
|
280
280
|
),
|
|
281
281
|
# ==========================================================================
|
|
282
|
+
# Shell & Script Execution Tools
|
|
283
|
+
# ==========================================================================
|
|
284
|
+
"shell_exec": StepDisplayInfo(
|
|
285
|
+
id="shell_exec",
|
|
286
|
+
friendly_name="🐚 Exécution du script",
|
|
287
|
+
description="Exécution d'un script ou d'une commande shell",
|
|
288
|
+
icon="🐚",
|
|
289
|
+
category="shell",
|
|
290
|
+
),
|
|
291
|
+
# ==========================================================================
|
|
282
292
|
# Code Execution Tools
|
|
283
293
|
# ==========================================================================
|
|
284
294
|
"execute_code": StepDisplayInfo(
|
|
@@ -77,7 +77,7 @@ def get_tracer() -> Any:
|
|
|
77
77
|
tracer = get_tracer()
|
|
78
78
|
if tracer:
|
|
79
79
|
with tracer.start_as_current_span("llm.chat") as span:
|
|
80
|
-
span.set_attribute("model", "gpt-5")
|
|
80
|
+
span.set_attribute("model", "gpt-5.4")
|
|
81
81
|
```
|
|
82
82
|
"""
|
|
83
83
|
global _tracer
|
|
@@ -106,7 +106,7 @@ def get_meter() -> Any:
|
|
|
106
106
|
meter = get_meter()
|
|
107
107
|
if meter:
|
|
108
108
|
counter = meter.create_counter("llm.tokens.total")
|
|
109
|
-
counter.add(100, {"model": "gpt-5"})
|
|
109
|
+
counter.add(100, {"model": "gpt-5.4"})
|
|
110
110
|
```
|
|
111
111
|
"""
|
|
112
112
|
global _meter
|
|
@@ -147,7 +147,7 @@ class OTELInstrumentor:
|
|
|
147
147
|
|
|
148
148
|
with instrumentor.trace_llm_call(
|
|
149
149
|
operation_name="llm.chat",
|
|
150
|
-
model_name="gpt-5-mini",
|
|
150
|
+
model_name="gpt-5.4-mini",
|
|
151
151
|
session_id="session-123"
|
|
152
152
|
) as span:
|
|
153
153
|
# Perform LLM call
|
|
@@ -56,7 +56,7 @@ class TokenCounter:
|
|
|
56
56
|
|
|
57
57
|
Example:
|
|
58
58
|
```python
|
|
59
|
-
counter = TokenCounter(model_name="gpt-5-mini")
|
|
59
|
+
counter = TokenCounter(model_name="gpt-5.4-mini")
|
|
60
60
|
result = counter.count_tokens("Hello, world!")
|
|
61
61
|
print(f"Tokens: {result.count}, Encoding: {result.encoding_name}")
|
|
62
62
|
```
|
|
@@ -215,7 +215,7 @@ class TokenCounter:
|
|
|
215
215
|
|
|
216
216
|
Example:
|
|
217
217
|
```python
|
|
218
|
-
counter = TokenCounter(model_name="gpt-5-mini")
|
|
218
|
+
counter = TokenCounter(model_name="gpt-5.4-mini")
|
|
219
219
|
result = counter.count_tokens("Hello, world!")
|
|
220
220
|
print(f"Token count: {result.count}")
|
|
221
221
|
```
|
|
@@ -245,7 +245,7 @@ class TokenCounter:
|
|
|
245
245
|
|
|
246
246
|
Example:
|
|
247
247
|
```python
|
|
248
|
-
counter = TokenCounter(model_name="gpt-5-mini")
|
|
248
|
+
counter = TokenCounter(model_name="gpt-5.4-mini")
|
|
249
249
|
messages = [
|
|
250
250
|
{"role": "system", "content": "You are a helpful assistant."},
|
|
251
251
|
{"role": "user", "content": "Hello!"}
|
{agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/agent_mixin.py
RENAMED
|
@@ -127,13 +127,16 @@ class SkillsMixin:
|
|
|
127
127
|
self._skill_registry.unload(name)
|
|
128
128
|
logger.info(f"Unloaded skill '{name}' for agent '{getattr(self, 'agent_id', 'unknown')}'")
|
|
129
129
|
|
|
130
|
-
def register_builtin_skills(self, source: str = "
|
|
130
|
+
def register_builtin_skills(self, source: str = "markdown") -> None:
|
|
131
131
|
"""Register all built-in skills with this agent.
|
|
132
132
|
|
|
133
|
+
After registering builtins, also loads any custom skills found in
|
|
134
|
+
the ``CUSTOM_SKILLS_DIR`` environment variable (default ``./custom_skills``).
|
|
135
|
+
|
|
133
136
|
Args:
|
|
134
137
|
source: Loading strategy passed to ``get_all_builtin_skills``.
|
|
135
|
-
Use ``"
|
|
136
|
-
``"
|
|
138
|
+
Use ``"markdown"`` (default) to load from SKILL.md files or
|
|
139
|
+
``"python"`` for legacy Python factory functions.
|
|
137
140
|
Skills already registered are skipped.
|
|
138
141
|
"""
|
|
139
142
|
from .builtin import get_all_builtin_skills
|
|
@@ -158,6 +161,62 @@ class SkillsMixin:
|
|
|
158
161
|
f"for agent '{getattr(self, 'agent_id', 'unknown')}'"
|
|
159
162
|
)
|
|
160
163
|
|
|
164
|
+
self._register_custom_skills()
|
|
165
|
+
|
|
166
|
+
def _register_custom_skills(self) -> None:
|
|
167
|
+
"""Load custom skills from CUSTOM_SKILLS_DIR into this agent's registry.
|
|
168
|
+
|
|
169
|
+
Each subdirectory containing a SKILL.md is loaded, has native tools
|
|
170
|
+
attached, and is registered with ``source="custom"``. Failures are
|
|
171
|
+
logged as warnings without blocking the remaining skills.
|
|
172
|
+
"""
|
|
173
|
+
import os
|
|
174
|
+
import shutil
|
|
175
|
+
|
|
176
|
+
from .markdown_loader import MarkdownSkillLoader
|
|
177
|
+
from ..tools.shell_tool import ShellTool
|
|
178
|
+
from ..tools.web_fetch_tool import WebFetchTool
|
|
179
|
+
|
|
180
|
+
custom_dir = Path(os.getenv("CUSTOM_SKILLS_DIR", "./custom_skills"))
|
|
181
|
+
if not custom_dir.is_dir():
|
|
182
|
+
return
|
|
183
|
+
|
|
184
|
+
loader = MarkdownSkillLoader()
|
|
185
|
+
count = 0
|
|
186
|
+
|
|
187
|
+
for child in sorted(custom_dir.iterdir()):
|
|
188
|
+
if not child.is_dir():
|
|
189
|
+
continue
|
|
190
|
+
skill_md = child / "SKILL.md"
|
|
191
|
+
if not skill_md.exists():
|
|
192
|
+
continue
|
|
193
|
+
try:
|
|
194
|
+
skill = loader.load_from_file(skill_md)
|
|
195
|
+
if self._skill_registry.get(skill.metadata.name) is not None:
|
|
196
|
+
continue
|
|
197
|
+
existing_types = {type(t) for t in skill.tools}
|
|
198
|
+
if ShellTool not in existing_types:
|
|
199
|
+
skill.tools.append(ShellTool(default_timeout=60))
|
|
200
|
+
if WebFetchTool not in existing_types:
|
|
201
|
+
skill.tools.append(WebFetchTool())
|
|
202
|
+
for binary in skill.metadata.requires_bins:
|
|
203
|
+
if shutil.which(binary) is None:
|
|
204
|
+
logger.warning(
|
|
205
|
+
"Custom skill '%s' requires binary '%s' not found in PATH",
|
|
206
|
+
skill.metadata.name,
|
|
207
|
+
binary,
|
|
208
|
+
)
|
|
209
|
+
self._skill_registry.register(skill, source="custom")
|
|
210
|
+
count += 1
|
|
211
|
+
except Exception as exc:
|
|
212
|
+
logger.warning("Failed to load custom skill from %s: %s", child, exc)
|
|
213
|
+
|
|
214
|
+
if count > 0:
|
|
215
|
+
logger.info(
|
|
216
|
+
f"Registered {count} custom skill(s) "
|
|
217
|
+
f"for agent '{getattr(self, 'agent_id', 'unknown')}'"
|
|
218
|
+
)
|
|
219
|
+
|
|
161
220
|
def get_skill_tools(self) -> list[Callable[..., str]]:
|
|
162
221
|
"""
|
|
163
222
|
Get skill management tools for the agent.
|
{agent_framework_lib-0.6.3.post3 → agent_framework_lib-0.7.0}/agent_framework/skills/base.py
RENAMED
|
@@ -220,13 +220,15 @@ class SkillRegistry:
|
|
|
220
220
|
self._skills: dict[str, Skill] = {}
|
|
221
221
|
self._loaded: set[str] = set()
|
|
222
222
|
self._loaded_contexts: dict[str, LoadedSkillContext] = {}
|
|
223
|
+
self._sources: dict[str, str] = {}
|
|
223
224
|
|
|
224
|
-
def register(self, skill: Skill) -> None:
|
|
225
|
+
def register(self, skill: Skill, source: str = "builtin") -> None:
|
|
225
226
|
"""
|
|
226
227
|
Register a skill in the registry.
|
|
227
228
|
|
|
228
229
|
Args:
|
|
229
230
|
skill: The skill to register
|
|
231
|
+
source: Origin of the skill (e.g. "builtin" or "custom").
|
|
230
232
|
|
|
231
233
|
Raises:
|
|
232
234
|
ValueError: If the skill is invalid
|
|
@@ -234,6 +236,7 @@ class SkillRegistry:
|
|
|
234
236
|
if not skill.validate_skill():
|
|
235
237
|
raise ValueError(f"Invalid skill: {skill.metadata.name}")
|
|
236
238
|
self._skills[skill.metadata.name] = skill
|
|
239
|
+
self._sources[skill.metadata.name] = source
|
|
237
240
|
|
|
238
241
|
def unregister(self, name: str) -> None:
|
|
239
242
|
"""
|
|
@@ -248,6 +251,18 @@ class SkillRegistry:
|
|
|
248
251
|
self.unload(name)
|
|
249
252
|
if name in self._skills:
|
|
250
253
|
del self._skills[name]
|
|
254
|
+
self._sources.pop(name, None)
|
|
255
|
+
|
|
256
|
+
def get_source(self, name: str) -> str | None:
|
|
257
|
+
"""Return the source for a registered skill.
|
|
258
|
+
|
|
259
|
+
Args:
|
|
260
|
+
name: Name of the skill
|
|
261
|
+
|
|
262
|
+
Returns:
|
|
263
|
+
The source string (e.g. "builtin", "custom") or None if not found.
|
|
264
|
+
"""
|
|
265
|
+
return self._sources.get(name)
|
|
251
266
|
|
|
252
267
|
def get(self, name: str) -> Skill | None:
|
|
253
268
|
"""
|
|
@@ -366,9 +381,25 @@ class SkillRegistry:
|
|
|
366
381
|
loading_chain.remove(name)
|
|
367
382
|
|
|
368
383
|
# Create loaded context
|
|
384
|
+
instructions = skill.get_instructions()
|
|
385
|
+
|
|
386
|
+
# Auto-inject execution instruction when entrypoint is defined
|
|
387
|
+
entrypoint = skill.config.get("entrypoint")
|
|
388
|
+
if entrypoint:
|
|
389
|
+
skill_dir = skill.config.get("skill_dir", "")
|
|
390
|
+
resolved_entrypoint = entrypoint.replace("{{SKILL_DIR}}", skill_dir)
|
|
391
|
+
# Prefix with cd to ensure correct working directory
|
|
392
|
+
full_command = f"cd \"{skill_dir}\" && {resolved_entrypoint}"
|
|
393
|
+
instructions += (
|
|
394
|
+
"\n\n---\n"
|
|
395
|
+
"## Execution\n\n"
|
|
396
|
+
"To run this skill with the proper path, execute:\n\n"
|
|
397
|
+
f"```bash\n{full_command}\n```\n"
|
|
398
|
+
)
|
|
399
|
+
|
|
369
400
|
context = LoadedSkillContext(
|
|
370
401
|
skill=skill,
|
|
371
|
-
instructions=
|
|
402
|
+
instructions=instructions,
|
|
372
403
|
tools=skill.get_tools(),
|
|
373
404
|
dependencies_loaded=dependencies_loaded,
|
|
374
405
|
)
|
|
@@ -98,28 +98,44 @@ def _get_builtin_skills_from_python() -> list[Skill]:
|
|
|
98
98
|
|
|
99
99
|
|
|
100
100
|
def _get_builtin_skills_from_markdown() -> list[Skill]:
|
|
101
|
-
"""Load built-in skills from SKILL.md files."""
|
|
101
|
+
"""Load built-in skills from SKILL.md files with ShellTool and WebFetchTool attached."""
|
|
102
102
|
from ..markdown_loader import MarkdownSkillLoader
|
|
103
|
-
|
|
103
|
+
from ...tools.shell_tool import ShellTool
|
|
104
|
+
from ...tools.web_fetch_tool import WebFetchTool
|
|
105
|
+
|
|
106
|
+
skills = MarkdownSkillLoader().load_from_dir(_SKILLS_MD_DIR)
|
|
107
|
+
for skill in skills:
|
|
108
|
+
existing_types = {type(t) for t in skill.tools}
|
|
109
|
+
if ShellTool not in existing_types:
|
|
110
|
+
skill.tools.append(ShellTool(default_timeout=60))
|
|
111
|
+
if WebFetchTool not in existing_types:
|
|
112
|
+
skill.tools.append(WebFetchTool())
|
|
113
|
+
return skills
|
|
104
114
|
|
|
105
115
|
|
|
106
116
|
def get_all_builtin_skills(
|
|
107
|
-
source: Literal["python", "markdown"] = "
|
|
117
|
+
source: Literal["python", "markdown"] = "markdown",
|
|
108
118
|
) -> list[Skill]:
|
|
109
119
|
"""Get all built-in skills.
|
|
110
120
|
|
|
111
121
|
Args:
|
|
112
122
|
source: Loading strategy.
|
|
113
|
-
- ``"
|
|
114
|
-
- ``"
|
|
115
|
-
This will become the default once the migration is complete.
|
|
123
|
+
- ``"markdown"`` (default): use SKILL.md files from the ``skills/`` directory.
|
|
124
|
+
- ``"python"``: deprecated, use Python factory functions.
|
|
116
125
|
|
|
117
126
|
Returns:
|
|
118
127
|
List of Skill instances for all built-in skills.
|
|
119
128
|
"""
|
|
120
|
-
if source == "
|
|
121
|
-
|
|
122
|
-
|
|
129
|
+
if source == "python":
|
|
130
|
+
import warnings
|
|
131
|
+
|
|
132
|
+
warnings.warn(
|
|
133
|
+
"source='python' is deprecated. Use source='markdown' (now default).",
|
|
134
|
+
DeprecationWarning,
|
|
135
|
+
stacklevel=2,
|
|
136
|
+
)
|
|
137
|
+
return _get_builtin_skills_from_python()
|
|
138
|
+
return _get_builtin_skills_from_markdown()
|
|
123
139
|
|
|
124
140
|
|
|
125
141
|
__all__ = [
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Shared scripts for builtin skills."""
|