agent-framework-lib 0.8.2.post2__tar.gz → 0.8.3__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.8.2.post2 → agent_framework_lib-0.8.3}/MANIFEST.in +3 -0
- {agent_framework_lib-0.8.2.post2/agent_framework_lib.egg-info → agent_framework_lib-0.8.3}/PKG-INFO +1 -1
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/__init__.py +2 -2
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/base_agent.py +84 -6
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/__init__.py +42 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/agent_mixin.py +56 -5
- agent_framework_lib-0.8.3/agent_framework/memory/implicit_feedback.py +491 -0
- agent_framework_lib-0.8.3/agent_framework/memory/response_lessons.py +224 -0
- agent_framework_lib-0.8.3/agent_framework/memory/work_patterns.py +776 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/notifications/__init__.py +2 -0
- agent_framework_lib-0.8.3/agent_framework/notifications/webhook_notifier.py +116 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/scripts/create_and_register.py +9 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/chart/chart_to_image.py +105 -7
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/mermaid/mermaid_to_image.py +121 -6
- agent_framework_lib-0.8.3/agent_framework/skills/builtin/skills/powerpoint/SKILL.md +1112 -0
- agent_framework_lib-0.8.3/agent_framework/skills/builtin/skills/powerpoint/create_powerpoint.py +2583 -0
- agent_framework_lib-0.8.3/agent_framework/skills/builtin/skills/powerpoint/templates/Big Data Infographics.pptx +0 -0
- agent_framework_lib-0.8.3/agent_framework/skills/builtin/skills/powerpoint/templates/Executive Design Pitch Deck.pptx +0 -0
- agent_framework_lib-0.8.3/agent_framework/skills/builtin/skills/powerpoint/templates/Management Consulting Toolkit.pptx +0 -0
- agent_framework_lib-0.8.3/agent_framework/skills/builtin/skills/powerpoint/templates/__init__.py +24 -0
- agent_framework_lib-0.8.3/agent_framework/skills/builtin/skills/powerpoint/templates/generate_templates.py +26 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/skill_creator/SKILL.md +197 -82
- agent_framework_lib-0.8.3/agent_framework/skills/builtin/skills/skill_creator/skill_api.py +316 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/table/table_to_image.py +12 -1
- agent_framework_lib-0.8.3/agent_framework/tools/shell_tool.py +368 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3/agent_framework/web}/docs/CUSTOM_SKILLS_GUIDE.md +121 -3
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/helper_agent.py +454 -23
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/server.py +94 -237
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/router.py +5 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/session.py +18 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3/agent_framework_lib.egg-info}/PKG-INFO +1 -1
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework_lib.egg-info/SOURCES.txt +11 -0
- {agent_framework_lib-0.8.2.post2/agent_framework/web → agent_framework_lib-0.8.3}/docs/CUSTOM_SKILLS_GUIDE.md +121 -3
- agent_framework_lib-0.8.3/examples/test_work_patterns_live.py +145 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/pyproject.toml +1 -1
- agent_framework_lib-0.8.2.post2/agent_framework/skills/builtin/skills/powerpoint/SKILL.md +0 -426
- agent_framework_lib-0.8.2.post2/agent_framework/skills/builtin/skills/powerpoint/create_powerpoint.py +0 -396
- agent_framework_lib-0.8.2.post2/agent_framework/tools/shell_tool.py +0 -183
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/ARCHITECTURE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/LICENSE +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/README.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/base.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/endpoints/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/endpoints/a2a_router.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/endpoints/agent_card_builder.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/endpoints/agent_card_skill_builder.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/endpoints/jsonrpc_dispatcher.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/endpoints/models_jsonrpc.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/endpoints/sse_wrapper.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/endpoints/translation_layer.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/models.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/providers/elasticsearch_provider.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/a2a/providers/postgres_provider.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/capabilities/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/capabilities/resolver.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/activity_formatter.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/agent_interface.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/agent_provider.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/context_budget.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/context_summarizer.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/elasticsearch_config_provider.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/implementation_validator.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/knowledge_state.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/loop_detector.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/model_clients.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/model_config.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/model_router.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/models.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/provider_calibration.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/scratchpad_compressor.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/state_manager.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/step_display_config.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/streaming_parts_accumulator.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/implementations/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/implementations/budget_aware_agent.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/implementations/llamaindex_agent.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/implementations/llamaindex_memory_adapter.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/implementations/microsoft_agent.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/base.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/config.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/manager.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/personalization.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/providers/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/providers/graphiti_provider.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/providers/memori_provider.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/tools.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/api_timing_tracker.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/elasticsearch_circuit_breaker.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/elasticsearch_logging.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/error_handling.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/error_logging.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/llm_auto_instrumentor.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/llm_metrics.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/llm_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/llm_metrics_extractor.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/metrics_aggregator.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/metrics_config.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/observability_manager.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/otel_instrumentor.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/otel_logging_handler.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/otel_metrics_recorder.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/otel_setup.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/performance_monitor.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/progress_tracker.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/resource_manager.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/resource_metrics_collector.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/streaming_latency_tracer.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/timing_tracker.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/token_counter.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/monitoring/tracing_context.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/notifications/hub.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/processing/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/processing/ai_content_management.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/processing/markdown_converter.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/processing/multimodal_integration.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/processing/rich_content_validation.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/py.typed +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/session/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/session/elasticsearch_session_storage.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/session/session_storage.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/agent_mixin.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/base.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/scripts/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/scripts/register_to_storage.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/chart/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/code_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/code_format/format_python.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/csv/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/csv/create_csv.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/csv/read_csv.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/csv/transform_csv.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/data_format/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/data_format/json_to_yaml.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/data_format/yaml_to_json.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/drawio/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/drawio/create_drawio.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/email_template/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/excel/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/excel/create_excel.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/file/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/file/create_file.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/file/list_files.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/file/read_file.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/file_access/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/file_access/download_to_local.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/file_access/get_file_path.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/form/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/image_display/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/image_gen/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/image_gen/create_image.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/image_gen/generate_image.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/mermaid/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/multimodal/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/optionsblock/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/table/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/unified_pdf/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/unified_pdf/create_pdf.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/web_news_search/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/web_news_search/web_news_search.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/word/SKILL.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/builtin/skills/word/create_word.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/custom_skill_manager.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/discovery_prompt.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/markdown_loader.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/skills/tools.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/storage/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/storage/file_storages.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/storage/file_system_management.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/storage/storage_optimizer.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/subagents/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/subagents/executor.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/subagents/message_injector.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/subagents/message_queue.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/subagents/retrigger.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/subagents/spawn_tool.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/tools/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/tools/activity_callback.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/tools/adaptive_pdf_css.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/tools/base.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/tools/html_content_analyzer.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/tools/multimodal_tools.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/tools/pdf_image_scaler.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/tools/sizing_config.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/tools/web_fetch_tool.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/tools/web_search_tool.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/utils/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/utils/path_utils.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/utils/post_install.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/utils/session_title_generator.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/utils/source_detector.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/utils/special_blocks.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/admin_auth.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/admin_models.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/admin_router.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/admin_services.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/api_timing_middleware.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/Dockerfile +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/GETTING_STARTED.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/GITNEXUS_USER_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/README.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/api-reference.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/configuration.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/docker-compose.yml +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/examples/agent_example_multi_skills.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/examples/agent_with_file_storage.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/examples/agent_with_mcp.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/examples/agent_with_memory.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/examples/agent_with_memory_graphiti.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/examples/agent_with_memory_hybrid.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/examples/agent_with_memory_simple.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/examples/custom_framework_agent.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/examples/simple_agent.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/examples/skills_demo_agent.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/documentation_generator.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/gitnexus_client.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/helper_ui.html +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/modern_ui.html +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/observability/kibana-llm-dashboard-setup.json +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/observability/kibana-resource-metrics-dashboard.json +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/otel_tracing_middleware.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/skills_router.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/web/test_app.html +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/__init__.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/artefacts.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/client.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/config.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/context.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/cursor.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/memory.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/models.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/poller.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/preferences.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/workspace/subscription.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework_lib.egg-info/dependency_links.txt +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework_lib.egg-info/entry_points.txt +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework_lib.egg-info/requires.txt +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework_lib.egg-info/top_level.txt +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/A2A_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/ACTIVITY_OUTPUT_PART.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/ARCHITECTURE_DIAGRAM.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/BUILTIN_SKILLS_REFERENCE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/CONCURRENCE_VS_PARALLELISME_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/CREATING_AGENTS.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/DOCKER_SETUP.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/ELASTICSEARCH_DATA_STRUCTURES.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/FILE_DOWNLOAD_LINKS.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/FILE_STORAGE_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/GETTING_STARTED.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/GITNEXUS_USER_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/HISTORY_MESSAGE_FORMAT.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/IMPLEMENTATION_GUIDE_NEW_AGENT.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/MEMORY_INSTALLATION.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/MODIFICATIONS_CONCURRENCE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/MULTIMODAL_TOOLS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/OBSERVABILITY_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/PYPI_PUBLISHING.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/QA_STREAMING_LATENCY.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/SCREENSHOTS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/SPEC_CROSS_MODEL_HISTORY_CONVERSION.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/SSE_NOTIFICATIONS_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/STREAMING_EVENTS_FRONTEND.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/TOOLS_AND_MCP_GUIDE.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/WORKSPACE_INTEGRATION.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/api-reference.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/configuration.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/framework_audit_remarques.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/index.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/docs/installation-guide.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/README.md +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_context_budget_test.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_example_multi_skills.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_exemple_test.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_training_with_apo.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_with_custom_tools_file_storage.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_with_file_storage.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_with_mcp.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_with_memory_graphiti.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_with_memory_hybrid.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_with_memory_simple.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/agent_with_personalization.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/biagenttest.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/custom_framework_agent.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/dependencies/docker-compose.yaml +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/pyproject.toml +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/simple_agent.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/skills_demo_agent.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/examples/workspace_test_agent.py +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/setup.cfg +0 -0
- {agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/setup.py +0 -0
|
@@ -11,6 +11,9 @@ include docs/*.md
|
|
|
11
11
|
# Include type information
|
|
12
12
|
include agent_framework/py.typed
|
|
13
13
|
|
|
14
|
+
# Include PowerPoint templates embedded with the powerpoint skill
|
|
15
|
+
recursive-include agent_framework/skills/builtin/skills/powerpoint/templates *.pptx
|
|
16
|
+
|
|
14
17
|
# Include HTML templates and static files from the main package
|
|
15
18
|
include agent_framework/test_app.html
|
|
16
19
|
include agent_framework/*.html
|
{agent_framework_lib-0.8.2.post2/agent_framework_lib.egg-info → agent_framework_lib-0.8.3}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-framework-lib
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.3
|
|
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>
|
|
@@ -32,7 +32,7 @@ Example Usage:
|
|
|
32
32
|
create_basic_agent_server(MyAgent, port=8000)
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
Version: 0.8.
|
|
35
|
+
Version: 0.8.3
|
|
36
36
|
Author: Cinco AI Team
|
|
37
37
|
License: MIT
|
|
38
38
|
"""
|
|
@@ -88,7 +88,7 @@ def _auto_setup_dependencies() -> None:
|
|
|
88
88
|
# Track if auto-setup has been done
|
|
89
89
|
_AUTO_SETUP_DONE = False
|
|
90
90
|
|
|
91
|
-
__version__ = "0.8.
|
|
91
|
+
__version__ = "0.8.3"
|
|
92
92
|
__author__ = "Cinco AI Team"
|
|
93
93
|
__license__ = "MIT"
|
|
94
94
|
__email__ = "sebastian@cinco.ai"
|
{agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/core/base_agent.py
RENAMED
|
@@ -596,7 +596,16 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
596
596
|
try:
|
|
597
597
|
from ..tools.shell_tool import ShellTool
|
|
598
598
|
|
|
599
|
-
|
|
599
|
+
shell_tool = ShellTool(default_timeout=120)
|
|
600
|
+
# Inject session context so that AGENT_USER_ID / AGENT_SESSION_ID are
|
|
601
|
+
# propagated to subprocesses (register_to_storage / create_and_register).
|
|
602
|
+
# Without this, generated files are uploaded without session_id and
|
|
603
|
+
# never appear in the session's file list.
|
|
604
|
+
shell_tool.set_context(
|
|
605
|
+
user_id=getattr(self, "_current_user_id", None),
|
|
606
|
+
session_id=getattr(self, "_current_session_id", None),
|
|
607
|
+
)
|
|
608
|
+
tools.append(shell_tool.get_tool_function())
|
|
600
609
|
except Exception as e:
|
|
601
610
|
logger.warning(f"Could not create ShellTool: {e}")
|
|
602
611
|
|
|
@@ -666,17 +675,38 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
666
675
|
except Exception as e:
|
|
667
676
|
logger.warning(f"Failed to add memory tools: {e}")
|
|
668
677
|
|
|
678
|
+
# Deduplicate tools by name (Anthropic rejects duplicate tool names)
|
|
679
|
+
seen_names: set[str] = set()
|
|
680
|
+
unique_tools: list = []
|
|
681
|
+
for tool in tools:
|
|
682
|
+
meta = getattr(tool, "metadata", None)
|
|
683
|
+
if meta and hasattr(meta, "name"):
|
|
684
|
+
name = meta.name
|
|
685
|
+
else:
|
|
686
|
+
name = getattr(tool, "__name__", None) or getattr(tool, "name", None) or str(id(tool))
|
|
687
|
+
if name not in seen_names:
|
|
688
|
+
seen_names.add(name)
|
|
689
|
+
unique_tools.append(tool)
|
|
690
|
+
else:
|
|
691
|
+
logger.debug(f"⚠️ Skipping duplicate tool '{name}' for agent {self.agent_id}")
|
|
692
|
+
|
|
693
|
+
if len(unique_tools) < len(tools):
|
|
694
|
+
logger.info(
|
|
695
|
+
f"🔄 Deduplicated tools for agent {self.agent_id}: "
|
|
696
|
+
f"{len(tools)} → {len(unique_tools)}"
|
|
697
|
+
)
|
|
698
|
+
|
|
669
699
|
# 5. Add subagent spawn tool if configured
|
|
670
700
|
try:
|
|
671
701
|
spawn_tool = self._create_subagent_spawn_tool()
|
|
672
702
|
if spawn_tool is not None:
|
|
673
|
-
|
|
703
|
+
unique_tools = unique_tools + [spawn_tool.get_tool_function()]
|
|
674
704
|
logger.info(f"🤖 Added SubagentSpawnTool to agent {self.agent_id}")
|
|
675
705
|
except Exception as e:
|
|
676
706
|
logger.warning(f"Failed to create SubagentSpawnTool: {e}")
|
|
677
707
|
|
|
678
|
-
logger.debug(f"📊 Total tools for agent {self.agent_id}: {len(
|
|
679
|
-
return
|
|
708
|
+
logger.debug(f"📊 Total tools for agent {self.agent_id}: {len(unique_tools)}")
|
|
709
|
+
return unique_tools
|
|
680
710
|
|
|
681
711
|
async def _async_ensure_agent_built(self):
|
|
682
712
|
"""Ensure agent is built (asynchronous)."""
|
|
@@ -794,6 +824,48 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
794
824
|
fact_lines = "\n".join(f"- {f.content}" for f in facts if f.content)
|
|
795
825
|
preference_block = f"[User Preferences]\n{fact_lines}"
|
|
796
826
|
|
|
827
|
+
# --- Work Pattern directives ---
|
|
828
|
+
work_profile_block = ""
|
|
829
|
+
try:
|
|
830
|
+
from ..memory.work_patterns import WorkPatternAnalyzer
|
|
831
|
+
wp_analyzer = WorkPatternAnalyzer(provider)
|
|
832
|
+
work_profile = await wp_analyzer.build_profile(
|
|
833
|
+
user_id=user_id,
|
|
834
|
+
agent_id=self.agent_id,
|
|
835
|
+
min_entries=3,
|
|
836
|
+
)
|
|
837
|
+
if work_profile.total_interactions >= 3:
|
|
838
|
+
directives = wp_analyzer.build_agent_directives(work_profile)
|
|
839
|
+
if directives:
|
|
840
|
+
work_profile_block = (
|
|
841
|
+
"\n\n[Directives de travail]\n"
|
|
842
|
+
f"{directives}"
|
|
843
|
+
)
|
|
844
|
+
logger.info(
|
|
845
|
+
"Work pattern directives injected for user=%s: %d interactions",
|
|
846
|
+
user_id, work_profile.total_interactions,
|
|
847
|
+
)
|
|
848
|
+
except Exception as e:
|
|
849
|
+
logger.debug("Work pattern injection skipped: %s", e)
|
|
850
|
+
|
|
851
|
+
# --- Response Lessons (the key part) ---
|
|
852
|
+
lessons_block = ""
|
|
853
|
+
try:
|
|
854
|
+
from ..memory.response_lessons import recall_lessons, format_lessons_for_prompt
|
|
855
|
+
lessons = await recall_lessons(provider, user_id, self.agent_id, limit=10)
|
|
856
|
+
if lessons:
|
|
857
|
+
formatted = format_lessons_for_prompt(lessons)
|
|
858
|
+
if formatted:
|
|
859
|
+
lessons_block = f"\n\n[Leçons apprises — compléments à inclure automatiquement]\n{formatted}"
|
|
860
|
+
logger.info(
|
|
861
|
+
"Response lessons injected for user=%s: %d lessons",
|
|
862
|
+
user_id, len(lessons),
|
|
863
|
+
)
|
|
864
|
+
except Exception as e:
|
|
865
|
+
logger.debug("Response lessons injection skipped: %s", e)
|
|
866
|
+
|
|
867
|
+
preference_block = f"[User Preferences]\n{fact_lines}{work_profile_block}{lessons_block}"
|
|
868
|
+
|
|
797
869
|
prompt = self._session_system_prompt or ""
|
|
798
870
|
if "{{native_user_preferences}}" in prompt:
|
|
799
871
|
self._session_system_prompt = prompt.replace(
|
|
@@ -1038,7 +1110,10 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
1038
1110
|
)
|
|
1039
1111
|
|
|
1040
1112
|
if success:
|
|
1041
|
-
logger.
|
|
1113
|
+
logger.info(
|
|
1114
|
+
"[MEMORY_STORE] Auto-stored interaction for user=%s "
|
|
1115
|
+
"(response_len=%d)", user_id, len(response_text)
|
|
1116
|
+
)
|
|
1042
1117
|
else:
|
|
1043
1118
|
logger.warning(f"Failed to auto-store interaction for user {user_id}")
|
|
1044
1119
|
except Exception as e:
|
|
@@ -1430,7 +1505,10 @@ class BaseAgent(SkillsMixin, MemoryMixin, AgentInterface):
|
|
|
1430
1505
|
)
|
|
1431
1506
|
|
|
1432
1507
|
if success:
|
|
1433
|
-
logger.
|
|
1508
|
+
logger.info(
|
|
1509
|
+
"[MEMORY_STORE] Auto-stored streaming interaction for user=%s "
|
|
1510
|
+
"(response_len=%d)", user_id, len(final_text)
|
|
1511
|
+
)
|
|
1434
1512
|
else:
|
|
1435
1513
|
logger.warning(
|
|
1436
1514
|
f"Failed to auto-store streaming interaction for user {user_id}"
|
{agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/__init__.py
RENAMED
|
@@ -88,6 +88,29 @@ from .tools import (
|
|
|
88
88
|
get_memory_tools_descriptions,
|
|
89
89
|
)
|
|
90
90
|
|
|
91
|
+
# Work Pattern Intelligence
|
|
92
|
+
from .work_patterns import (
|
|
93
|
+
RequestIntent,
|
|
94
|
+
RequestComplexity,
|
|
95
|
+
WorkPatternEntry,
|
|
96
|
+
WorkProfile,
|
|
97
|
+
WorkPatternTracker,
|
|
98
|
+
WorkPatternAnalyzer,
|
|
99
|
+
classify_intent,
|
|
100
|
+
classify_complexity,
|
|
101
|
+
detect_domains,
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
# Implicit Feedback
|
|
105
|
+
from .implicit_feedback import (
|
|
106
|
+
FeedbackSignal,
|
|
107
|
+
FeedbackEntry,
|
|
108
|
+
ImplicitFeedbackTracker,
|
|
109
|
+
FeedbackProfile,
|
|
110
|
+
FeedbackProfileBuilder,
|
|
111
|
+
analyze_feedback,
|
|
112
|
+
)
|
|
113
|
+
|
|
91
114
|
|
|
92
115
|
__all__ = [
|
|
93
116
|
# Configuration
|
|
@@ -114,6 +137,25 @@ __all__ = [
|
|
|
114
137
|
# Providers
|
|
115
138
|
"MemoriProvider",
|
|
116
139
|
"GraphitiProvider",
|
|
140
|
+
|
|
141
|
+
# Work Pattern Intelligence
|
|
142
|
+
"RequestIntent",
|
|
143
|
+
"RequestComplexity",
|
|
144
|
+
"WorkPatternEntry",
|
|
145
|
+
"WorkProfile",
|
|
146
|
+
"WorkPatternTracker",
|
|
147
|
+
"WorkPatternAnalyzer",
|
|
148
|
+
"classify_intent",
|
|
149
|
+
"classify_complexity",
|
|
150
|
+
"detect_domains",
|
|
151
|
+
|
|
152
|
+
# Implicit Feedback
|
|
153
|
+
"FeedbackSignal",
|
|
154
|
+
"FeedbackEntry",
|
|
155
|
+
"ImplicitFeedbackTracker",
|
|
156
|
+
"FeedbackProfile",
|
|
157
|
+
"FeedbackProfileBuilder",
|
|
158
|
+
"analyze_feedback",
|
|
117
159
|
]
|
|
118
160
|
|
|
119
161
|
__version__ = "0.3.5.1"
|
{agent_framework_lib-0.8.2.post2 → agent_framework_lib-0.8.3}/agent_framework/memory/agent_mixin.py
RENAMED
|
@@ -239,9 +239,9 @@ class MemoryMixin:
|
|
|
239
239
|
) -> bool:
|
|
240
240
|
"""
|
|
241
241
|
Store an interaction for memory extraction.
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
242
|
+
|
|
243
|
+
Also tracks work patterns and implicit feedback automatically.
|
|
244
|
+
|
|
245
245
|
Args:
|
|
246
246
|
user_id: User identifier
|
|
247
247
|
session_id: Session identifier
|
|
@@ -258,11 +258,13 @@ class MemoryMixin:
|
|
|
258
258
|
if not self._memory_manager:
|
|
259
259
|
return False
|
|
260
260
|
|
|
261
|
+
agent_id = getattr(self, 'agent_id', 'agent')
|
|
262
|
+
|
|
261
263
|
try:
|
|
262
|
-
|
|
264
|
+
result = await self._memory_manager.store_interaction(
|
|
263
265
|
user_id=user_id,
|
|
264
266
|
session_id=session_id,
|
|
265
|
-
agent_id=
|
|
267
|
+
agent_id=agent_id,
|
|
266
268
|
user_message=user_message,
|
|
267
269
|
agent_response=agent_response,
|
|
268
270
|
metadata=metadata,
|
|
@@ -271,6 +273,55 @@ class MemoryMixin:
|
|
|
271
273
|
logger.error(f"Error storing memory interaction: {e}")
|
|
272
274
|
return False
|
|
273
275
|
|
|
276
|
+
# Track work pattern + implicit feedback in background (never blocks)
|
|
277
|
+
provider = self._memory_manager.primary
|
|
278
|
+
if provider:
|
|
279
|
+
# Work pattern tracking
|
|
280
|
+
try:
|
|
281
|
+
from .work_patterns import WorkPatternTracker
|
|
282
|
+
tracker = WorkPatternTracker(provider)
|
|
283
|
+
entry = await tracker.track(
|
|
284
|
+
user_id=user_id,
|
|
285
|
+
message=user_message,
|
|
286
|
+
agent_id=agent_id,
|
|
287
|
+
session_id=session_id,
|
|
288
|
+
)
|
|
289
|
+
logger.info(
|
|
290
|
+
"[WORK_PATTERN] user=%s intent=%s complexity=%s domains=%s",
|
|
291
|
+
user_id, entry.intent.value, entry.complexity.value,
|
|
292
|
+
",".join(entry.domains) or "none",
|
|
293
|
+
)
|
|
294
|
+
except Exception as e:
|
|
295
|
+
logger.debug(f"Work pattern tracking skipped: {e}")
|
|
296
|
+
|
|
297
|
+
# Implicit feedback: analyze user message against previous response
|
|
298
|
+
try:
|
|
299
|
+
from .implicit_feedback import ImplicitFeedbackTracker
|
|
300
|
+
if not hasattr(self, '_feedback_tracker'):
|
|
301
|
+
self._feedback_tracker = ImplicitFeedbackTracker(provider)
|
|
302
|
+
|
|
303
|
+
# Analyze current user message against last agent response
|
|
304
|
+
fb_entry = await self._feedback_tracker.analyze_and_store(
|
|
305
|
+
user_id=user_id,
|
|
306
|
+
user_message=user_message,
|
|
307
|
+
agent_id=agent_id,
|
|
308
|
+
session_id=session_id,
|
|
309
|
+
)
|
|
310
|
+
if fb_entry:
|
|
311
|
+
logger.info(
|
|
312
|
+
"[IMPLICIT_FEEDBACK] user=%s signal=%s confidence=%.2f "
|
|
313
|
+
"correction_type=%s topic_changed=%s",
|
|
314
|
+
user_id, fb_entry.signal.value, fb_entry.confidence,
|
|
315
|
+
fb_entry.correction_type or "n/a", fb_entry.topic_changed,
|
|
316
|
+
)
|
|
317
|
+
|
|
318
|
+
# Record this agent response for next iteration
|
|
319
|
+
self._feedback_tracker.record_agent_response(user_id, agent_response)
|
|
320
|
+
except Exception as e:
|
|
321
|
+
logger.debug(f"Implicit feedback tracking skipped: {e}")
|
|
322
|
+
|
|
323
|
+
return result
|
|
324
|
+
|
|
274
325
|
async def clear_user_memory(self, user_id: str) -> bool:
|
|
275
326
|
"""
|
|
276
327
|
Clear all memories for a user.
|