agentbyte 0.24.2__tar.gz → 0.25.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.
- {agentbyte-0.24.2 → agentbyte-0.25.0}/CHANGELOG.md +19 -1
- {agentbyte-0.24.2 → agentbyte-0.25.0}/PKG-INFO +5 -2
- {agentbyte-0.24.2 → agentbyte-0.25.0}/README.md +1 -1
- {agentbyte-0.24.2 → agentbyte-0.25.0}/pyproject.toml +8 -0
- agentbyte-0.25.0/src/agentbyte/__about__.py +2 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/context_providers/skill_tools.py +24 -5
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/context_providers/skills.py +17 -4
- agentbyte-0.25.0/src/agentbyte/optim/__init__.py +66 -0
- agentbyte-0.25.0/src/agentbyte/optim/base.py +405 -0
- agentbyte-0.25.0/src/agentbyte/optim/config.py +124 -0
- agentbyte-0.25.0/src/agentbyte/optim/gepa.py +397 -0
- agentbyte-0.25.0/src/agentbyte/optim/mipro.py +164 -0
- agentbyte-0.25.0/src/agentbyte/optim/pareto.py +72 -0
- agentbyte-0.25.0/src/agentbyte/optim/reflective.py +169 -0
- agentbyte-0.25.0/src/agentbyte/optim/spec.py +331 -0
- agentbyte-0.25.0/src/agentbyte/optim/trace.py +171 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/skills/base.py +14 -3
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/skills/sources.py +47 -23
- agentbyte-0.25.0/src/agentbyte/skills/validation.py +42 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/context_providers/test_skill_tools.py +21 -3
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/context_providers/test_skills_provider.py +71 -0
- agentbyte-0.25.0/tests/optim/test_base.py +256 -0
- agentbyte-0.25.0/tests/optim/test_base_integration.py +79 -0
- agentbyte-0.25.0/tests/optim/test_config.py +241 -0
- agentbyte-0.25.0/tests/optim/test_gepa.py +220 -0
- agentbyte-0.25.0/tests/optim/test_mipro.py +120 -0
- agentbyte-0.25.0/tests/optim/test_pareto.py +112 -0
- agentbyte-0.25.0/tests/optim/test_reflective.py +160 -0
- agentbyte-0.25.0/tests/optim/test_spec.py +374 -0
- agentbyte-0.25.0/tests/optim/test_trace.py +176 -0
- agentbyte-0.25.0/tests/skills/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/skills/test_base.py +44 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/skills/test_sources.py +90 -0
- agentbyte-0.24.2/src/agentbyte/__about__.py +0 -2
- {agentbyte-0.24.2 → agentbyte-0.25.0}/.gitignore +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/LICENSE +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/agents/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/agents/agent.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/agents/agent_as_tool.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/agents/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/agents/embedding_agent.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/agents/types.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/cancellation_token.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/catalog.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/cli/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/cli/main.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/component.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/context.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/context_providers/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/context_providers/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/config.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/importer.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/json.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/loader.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/publish.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/publish_config.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/publishers.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/sources.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/sqlite.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/sqlite_db.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/write_config.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/dataset/writers.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/entity.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/checks/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/checks/decorator.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/checks/keyword.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/checks/local.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/checks/tool.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/checks/types.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/comparison.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/eval_dataset.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/judges/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/judges/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/judges/composite.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/judges/llm.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/judges/pairwise.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/judges/reference.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/pairwise.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/report.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/runner.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/splitting.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/targets/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/targets/agent.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/targets/model.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/targets/multi_turn.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/targets/orchestrator.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/eval/types.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/_retry_observability.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/auth.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/azure/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/azure/auth.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/azure/chat.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/azure/embedding.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/azure/settings.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/azure_openai.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/azure_openai_embedding.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/embeddings_base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/openai/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/openai/chat.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/openai/embedding.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/openai/settings.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/openai_embedding.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/pricing.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/retry_policy.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/settings.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/llm/types.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/logger.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/memory/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/memory/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/messages.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/middleware/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/middleware/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/middleware/otel.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/middleware/retry.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/middleware/sql_usage.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/middleware/usage_logger.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/notebook.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/orchestration/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/orchestration/ai.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/orchestration/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/orchestration/handoff.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/orchestration/plan.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/orchestration/policies.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/orchestration/round_robin.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/agents.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/clients.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/instruction_registry.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/instructions/orchestrator.yaml +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/instructions/query_rewriter.yaml +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/instructions/researcher.yaml +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/instructions/reviewer.yaml +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/instructions/writer.yaml +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/orchestration.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/skills/contracts-analyst/SKILL.md +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/skills/hr-analyst/SKILL.md +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/skills/hr-analyst/resources/departments.md +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/skills/hr-analyst/resources/employees.md +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/skills/hr-analyst/resources/payroll.md +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/streaming.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/presets/workflow.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/session_store.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/skills/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/skills/resources.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/skills/scripts.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/cancellation.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/composite.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/consecutive_agent.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/external.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/function_call.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/handoff.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/max_message.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/predicate.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/source.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/text_mention.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/timeout.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/termination/token_usage.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/tools/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/tools/base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/tools/coding_tools.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/tools/core_tools.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/tools/decorator.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/tools/memory_tool.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/tools/research_tools.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/types.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/discovery.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/execution.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/models.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/registry.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/server.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/session_store.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/sessions.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/ui/assets/index-BF3DwXaF.js +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/ui/assets/index-ar5tOeqt.css +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/ui/index.html +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/webui/ui/vite.svg +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/agent.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/core/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/core/_structure_hash.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/core/checkpoint.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/core/models.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/core/runner.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/core/workflow.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/defaults.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/loader.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/schema.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/schema_utils.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/steps/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/steps/agentbyte_agent.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/steps/echo.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/steps/function.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/steps/http.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/steps/step.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/steps/subworkflow.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/steps/transform.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/src/agentbyte/workflow/visualizer.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_agent_as_tool.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_agent_basic.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_agent_context_providers.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_agent_event_types.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_agent_memory_integration.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_agent_middleware_integration.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_agent_response_accessors.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_agent_retry_middleware.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_agent_stream_events.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_embedding_agent.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/agents/test_tool_approval.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/cli/test_registry_check.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/context_providers/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/dataset/test_loader.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/dataset/test_multi_table.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/dataset/test_publish.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/dataset/test_sqlite_db.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/eval/test_eval_dataset.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/eval/test_multi_turn.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/eval/test_pairwise.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/eval/test_phase1_runner_and_targets.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/eval/test_phase2_checks_and_reports.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/eval/test_splitting.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/eval/test_types_and_judges.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/llm/test_azure_client.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/llm/test_azure_embedding_client.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/llm/test_llm_types.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/llm/test_openai_client.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/llm/test_openai_embedding_client.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/llm/test_pricing.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/llm/test_retry_observability.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/llm/test_retry_policy_api.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/memory/test_memory.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/middleware/test_middleware_chain.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/middleware/test_otel.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/middleware/test_retry_middleware.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/middleware/test_sql_usage.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/middleware/test_usage_logger.py +0 -0
- {agentbyte-0.24.2/tests/skills → agentbyte-0.25.0/tests/optim}/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/orchestration/test_ai_orchestrator.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/orchestration/test_base_orchestrator.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/orchestration/test_handoff_orchestrator.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/orchestration/test_plan_orchestrator.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/orchestration/test_round_robin.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/presets/test_agents.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/presets/test_clients.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/presets/test_instruction_registry.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/presets/test_orchestration.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/presets/test_streaming.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/presets/test_workflow.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/skills/test_resources.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/skills/test_scripts.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_base.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_cancellation.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_composite.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_consecutive_agent.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_external.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_function_call.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_handoff.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_max_message.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_predicate.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_source.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_text_mention.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_timeout.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/termination/test_token_usage.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/test_cancellation_token.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/test_context.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/test_logger.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/test_messages.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/test_package_api.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/test_session_store.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/test_types.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/tools/test_coding_tools.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/tools/test_memory_tool.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/tools/test_research_tools.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/tools/test_tools.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/webui/__init__.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/webui/helpers.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/webui/test_execution.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/webui/test_package_api.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/webui/test_registry.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/webui/test_server.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/webui/test_sessions.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/workflow/test_checkpoint.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/workflow/test_subworkflow_step.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/workflow/test_workflow_agent.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/workflow/test_workflow_class.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/workflow/test_workflow_models.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/workflow/test_workflow_runner.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/workflow/test_workflow_schema.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/workflow/test_workflow_steps.py +0 -0
- {agentbyte-0.24.2 → agentbyte-0.25.0}/tests/workflow/test_workflow_visualizer.py +0 -0
|
@@ -4,7 +4,25 @@ All notable changes to Agentbyte are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format follows Keep a Changelog principles and semantic versioning.
|
|
6
6
|
|
|
7
|
-
## [
|
|
7
|
+
## [0.25.0] - 2026-09-01
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- New `agentbyte.optim` subpackage: an autotune harness for searching an agent's instructions, skills, and tool selection against an `agentbyte.eval` dataset. Includes `AgentConfig`/`OptimizationSpec` with six tunables, `BaseOptimizer`/`CostLog`/`OptimizationTrace`, `ReflectiveOptimizer`, `ReflectiveParetoOptimizer`, `MIPROOptimizer`, and an optional GEPA bridge (`optimize_with_gepa`) behind a new `agentbyte[optim]` extra.
|
|
12
|
+
- Structured skill discovery triggers: `Skill.triggers` (normalized, deduplicated, capped at 20 entries of up to 100 characters each) can now be declared on `InlineSkill`, `FileSkill` (via `SKILL.md` YAML frontmatter), and `ClassSkill`, and are rendered as nested `<triggers>` elements in the provider's skill advertisement.
|
|
13
|
+
- `AgentSkillConfig` in `agentbyte.optim` gained a `triggers` field and a new `SkillTriggersTunable`, so trigger phrases can be searched alongside instructions and descriptions.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **Breaking:** `AgentConfig.skills` now requires structured `AgentSkillConfig` values (`description` + `instructions`, both non-empty) instead of plain instruction strings; legacy string values are rejected.
|
|
18
|
+
- Skill providers now register only the tools (`load_skill`, `read_skill_resource`, `run_skill_script`) actually needed by their resolved skills, instead of always registering all three.
|
|
19
|
+
- Duplicate skill/resource/script names across providers and file roots now resolve deterministically via case-insensitive, first-declared-wins precedence.
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
|
|
23
|
+
- `AgentConfig.model` is now honored by `to_agent()` — previously the field was accepted but silently ignored, always reusing the passed-in `model_client` unchanged. The override now round-trips through the client's `_to_config()`/`_from_config()` methods.
|
|
24
|
+
- `FileSkillsSource` skill-directory discovery now sorts directory entries before recursing, making duplicate-name resolution deterministic across filesystems/platforms instead of depending on OS-level `iterdir()` ordering.
|
|
25
|
+
- Missing skill/resource/script lookups now return actionable errors listing the available names instead of a bare "not found".
|
|
8
26
|
|
|
9
27
|
## [0.24.2] - 2026-08-31
|
|
10
28
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: agentbyte
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.25.0
|
|
4
4
|
Summary: A toolkit for designing multiagent systems
|
|
5
5
|
Author-email: MrDataPsycho <mr.data.psycho@gmail.com>
|
|
6
6
|
License-Expression: LicenseRef-Proprietary
|
|
@@ -18,6 +18,7 @@ Requires-Dist: asyncpg>=0.31.0; extra == 'all'
|
|
|
18
18
|
Requires-Dist: azure-identity>=1.25.1; extra == 'all'
|
|
19
19
|
Requires-Dist: beautifulsoup4>=4.12; extra == 'all'
|
|
20
20
|
Requires-Dist: fastapi>=0.135.2; extra == 'all'
|
|
21
|
+
Requires-Dist: gepa>=0.1; extra == 'all'
|
|
21
22
|
Requires-Dist: graphviz>=0.21; extra == 'all'
|
|
22
23
|
Requires-Dist: html2text>=2024.2; extra == 'all'
|
|
23
24
|
Requires-Dist: openai>=1.107.1; extra == 'all'
|
|
@@ -46,6 +47,8 @@ Requires-Dist: pymupdf-layout>=1.26.6; extra == 'dev'
|
|
|
46
47
|
Requires-Dist: pymupdf4llm>=0.2.9; extra == 'dev'
|
|
47
48
|
Provides-Extra: openai
|
|
48
49
|
Requires-Dist: openai>=1.107.1; extra == 'openai'
|
|
50
|
+
Provides-Extra: optim
|
|
51
|
+
Requires-Dist: gepa>=0.1; extra == 'optim'
|
|
49
52
|
Provides-Extra: otel
|
|
50
53
|
Requires-Dist: opentelemetry-api>=1.39.1; extra == 'otel'
|
|
51
54
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.39.1; extra == 'otel'
|
|
@@ -83,7 +86,7 @@ Description-Content-Type: text/markdown
|
|
|
83
86
|
|
|
84
87
|
Agentbyte is an observability-first agentic AI framework for building and studying multiagent systems with a learning-first, implementation-oriented workflow.
|
|
85
88
|
|
|
86
|
-
Current release: **0.
|
|
89
|
+
Current release: **0.25.0**
|
|
87
90
|
|
|
88
91
|
## Building an Agent
|
|
89
92
|
|
|
@@ -47,6 +47,9 @@ sql = [
|
|
|
47
47
|
"asyncpg>=0.31.0",
|
|
48
48
|
"aiosqlite>=0.22.1",
|
|
49
49
|
]
|
|
50
|
+
optim = [
|
|
51
|
+
"gepa>=0.1",
|
|
52
|
+
]
|
|
50
53
|
viz = [
|
|
51
54
|
"graphviz>=0.21",
|
|
52
55
|
]
|
|
@@ -97,6 +100,7 @@ all = [
|
|
|
97
100
|
"html2text>=2024.2",
|
|
98
101
|
"arxiv>=2.1",
|
|
99
102
|
"youtube-transcript-api>=0.6",
|
|
103
|
+
"gepa>=0.1",
|
|
100
104
|
]
|
|
101
105
|
|
|
102
106
|
|
|
@@ -156,6 +160,9 @@ sql = [
|
|
|
156
160
|
"asyncpg>=0.31.0",
|
|
157
161
|
"aiosqlite>=0.22.1",
|
|
158
162
|
]
|
|
163
|
+
optim = [
|
|
164
|
+
"gepa>=0.1",
|
|
165
|
+
]
|
|
159
166
|
test = [
|
|
160
167
|
"pytest>=9.0.1",
|
|
161
168
|
"pytest-asyncio>=1.3.0",
|
|
@@ -201,6 +208,7 @@ all = [
|
|
|
201
208
|
"html2text>=2024.2",
|
|
202
209
|
"arxiv>=2.1",
|
|
203
210
|
"youtube-transcript-api>=0.6",
|
|
211
|
+
"gepa>=0.1",
|
|
204
212
|
]
|
|
205
213
|
|
|
206
214
|
[tool.pytest.ini_options]
|
|
@@ -19,6 +19,14 @@ def _find_skill(skills: Sequence[Skill], name: str) -> Skill | None:
|
|
|
19
19
|
return None
|
|
20
20
|
|
|
21
21
|
|
|
22
|
+
def _available_names(kind: str, names: Sequence[str]) -> str:
|
|
23
|
+
unique_names = {name.lower(): name for name in reversed(names)}
|
|
24
|
+
available = sorted(unique_names.values(), key=str.lower)
|
|
25
|
+
if not available:
|
|
26
|
+
return f"No {kind} are available."
|
|
27
|
+
return f"Available {kind}: {', '.join(available)}."
|
|
28
|
+
|
|
29
|
+
|
|
22
30
|
def _error(message: str) -> ToolResult:
|
|
23
31
|
return ToolResult(success=False, result=message, error=message, metadata={})
|
|
24
32
|
|
|
@@ -57,7 +65,8 @@ class LoadSkillTool(BaseTool):
|
|
|
57
65
|
return _error("Error: Skill name cannot be empty.")
|
|
58
66
|
skill = _find_skill(self._skills, skill_name)
|
|
59
67
|
if skill is None:
|
|
60
|
-
|
|
68
|
+
available = _available_names("skills", [skill.name for skill in self._skills])
|
|
69
|
+
return _error(f"Error: Skill '{skill_name}' not found. {available}")
|
|
61
70
|
logger.info("Loading skill: %s", skill_name)
|
|
62
71
|
return _ok(skill.content)
|
|
63
72
|
|
|
@@ -104,7 +113,8 @@ class ReadSkillResourceTool(BaseTool):
|
|
|
104
113
|
|
|
105
114
|
skill = _find_skill(self._skills, skill_name)
|
|
106
115
|
if skill is None:
|
|
107
|
-
|
|
116
|
+
available = _available_names("skills", [skill.name for skill in self._skills])
|
|
117
|
+
return _error(f"Error: Skill '{skill_name}' not found. {available}")
|
|
108
118
|
|
|
109
119
|
resource_name_lower = resource_name.lower()
|
|
110
120
|
resource = next(
|
|
@@ -112,8 +122,12 @@ class ReadSkillResourceTool(BaseTool):
|
|
|
112
122
|
None,
|
|
113
123
|
)
|
|
114
124
|
if resource is None:
|
|
125
|
+
available = _available_names(
|
|
126
|
+
"resources", [resource.name for resource in skill.resources]
|
|
127
|
+
)
|
|
115
128
|
return _error(
|
|
116
|
-
f"Error: Resource '{resource_name}' not found in skill '{skill_name}'."
|
|
129
|
+
f"Error: Resource '{resource_name}' not found in skill '{skill_name}'. "
|
|
130
|
+
f"{available}"
|
|
117
131
|
)
|
|
118
132
|
|
|
119
133
|
try:
|
|
@@ -183,15 +197,20 @@ class RunSkillScriptTool(BaseTool):
|
|
|
183
197
|
|
|
184
198
|
skill = _find_skill(self._skills, skill_name)
|
|
185
199
|
if skill is None:
|
|
186
|
-
|
|
200
|
+
available = _available_names("skills", [skill.name for skill in self._skills])
|
|
201
|
+
return _error(f"Error: Skill '{skill_name}' not found. {available}")
|
|
187
202
|
|
|
188
203
|
script = next(
|
|
189
204
|
(s for s in skill.scripts if s.name.lower() == script_name.lower()),
|
|
190
205
|
None,
|
|
191
206
|
)
|
|
192
207
|
if script is None:
|
|
208
|
+
available = _available_names(
|
|
209
|
+
"scripts", [script.name for script in skill.scripts]
|
|
210
|
+
)
|
|
193
211
|
return _error(
|
|
194
|
-
f"Error: Script '{script_name}' not found in skill '{skill_name}'."
|
|
212
|
+
f"Error: Script '{script_name}' not found in skill '{skill_name}'. "
|
|
213
|
+
f"{available}"
|
|
195
214
|
)
|
|
196
215
|
|
|
197
216
|
try:
|
|
@@ -12,7 +12,12 @@ from agentbyte.context_providers.skill_tools import (
|
|
|
12
12
|
)
|
|
13
13
|
from agentbyte.skills.base import Skill
|
|
14
14
|
from agentbyte.skills.scripts import SkillScriptRunner
|
|
15
|
-
from agentbyte.skills.sources import
|
|
15
|
+
from agentbyte.skills.sources import (
|
|
16
|
+
DeduplicatingSkillsSource,
|
|
17
|
+
FileSkillsSource,
|
|
18
|
+
InMemorySkillsSource,
|
|
19
|
+
SkillsSource,
|
|
20
|
+
)
|
|
16
21
|
from agentbyte.tools import BaseTool
|
|
17
22
|
|
|
18
23
|
_DEFAULT_TEMPLATE = """\
|
|
@@ -47,6 +52,11 @@ def _build_advertisement(skills: Sequence[Skill]) -> str:
|
|
|
47
52
|
lines.append(" <skill>")
|
|
48
53
|
lines.append(f" <name>{xml_escape(skill.name)}</name>")
|
|
49
54
|
lines.append(f" <description>{xml_escape(skill.description)}</description>")
|
|
55
|
+
if skill.triggers:
|
|
56
|
+
lines.append(" <triggers>")
|
|
57
|
+
for trigger in skill.triggers:
|
|
58
|
+
lines.append(f" <trigger>{xml_escape(trigger)}</trigger>")
|
|
59
|
+
lines.append(" </triggers>")
|
|
50
60
|
lines.append(" </skill>")
|
|
51
61
|
return "\n".join(lines)
|
|
52
62
|
|
|
@@ -80,11 +90,12 @@ class SkillsProvider(ContextProvider):
|
|
|
80
90
|
disable_caching: bool = False,
|
|
81
91
|
) -> None:
|
|
82
92
|
if isinstance(source, Skill):
|
|
83
|
-
|
|
93
|
+
skill_source: SkillsSource = InMemorySkillsSource([source])
|
|
84
94
|
elif isinstance(source, list):
|
|
85
|
-
|
|
95
|
+
skill_source = InMemorySkillsSource(source)
|
|
86
96
|
else:
|
|
87
|
-
|
|
97
|
+
skill_source = source
|
|
98
|
+
self._source = DeduplicatingSkillsSource(skill_source)
|
|
88
99
|
self._instruction_template = instruction_template
|
|
89
100
|
self._require_script_approval = require_script_approval
|
|
90
101
|
self._disable_caching = disable_caching
|
|
@@ -132,7 +143,9 @@ class SkillsProvider(ContextProvider):
|
|
|
132
143
|
tools: list[BaseTool] = []
|
|
133
144
|
if skills:
|
|
134
145
|
tools.append(LoadSkillTool(skills))
|
|
146
|
+
if has_resources:
|
|
135
147
|
tools.append(ReadSkillResourceTool(skills))
|
|
148
|
+
if has_scripts:
|
|
136
149
|
tools.append(
|
|
137
150
|
RunSkillScriptTool(skills, require_approval=self._require_script_approval)
|
|
138
151
|
)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""Agent optimization (autotune) for agentbyte.
|
|
2
|
+
|
|
3
|
+
See docs/specs/0038-agent-optimization-autotune for the full design.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from .base import BaseOptimizer, Candidate, CostLog, OptimizationResult, task_key
|
|
7
|
+
from .config import AgentConfig, AgentSkillConfig
|
|
8
|
+
from .gepa import GEPA_AVAILABLE, AgentbyteGepaAdapter, GepaRunResult, optimize_with_gepa
|
|
9
|
+
from .mipro import TIPS, MIPROOptimizer
|
|
10
|
+
from .pareto import ReflectiveParetoOptimizer, pareto_frontier
|
|
11
|
+
from .reflective import EditOut, ReflectionOut, ReflectiveOptimizer
|
|
12
|
+
from .spec import (
|
|
13
|
+
CatalogEntry,
|
|
14
|
+
Component,
|
|
15
|
+
Edit,
|
|
16
|
+
InstructionTunable,
|
|
17
|
+
Operation,
|
|
18
|
+
OptimizationSpec,
|
|
19
|
+
ProposalMode,
|
|
20
|
+
SkillDescriptionTunable,
|
|
21
|
+
SkillTunable,
|
|
22
|
+
SkillTriggersTunable,
|
|
23
|
+
ToolDescriptionTunable,
|
|
24
|
+
ToolSelectionTunable,
|
|
25
|
+
Tunable,
|
|
26
|
+
)
|
|
27
|
+
from .trace import OptimizationTrace, load_trace, serialize_messages, task_record, usage_dict
|
|
28
|
+
|
|
29
|
+
__all__ = [
|
|
30
|
+
"AgentConfig",
|
|
31
|
+
"AgentSkillConfig",
|
|
32
|
+
"Operation",
|
|
33
|
+
"ProposalMode",
|
|
34
|
+
"CatalogEntry",
|
|
35
|
+
"Component",
|
|
36
|
+
"Edit",
|
|
37
|
+
"Tunable",
|
|
38
|
+
"InstructionTunable",
|
|
39
|
+
"SkillTunable",
|
|
40
|
+
"SkillDescriptionTunable",
|
|
41
|
+
"SkillTriggersTunable",
|
|
42
|
+
"ToolDescriptionTunable",
|
|
43
|
+
"ToolSelectionTunable",
|
|
44
|
+
"OptimizationSpec",
|
|
45
|
+
"OptimizationTrace",
|
|
46
|
+
"load_trace",
|
|
47
|
+
"task_record",
|
|
48
|
+
"usage_dict",
|
|
49
|
+
"serialize_messages",
|
|
50
|
+
"CostLog",
|
|
51
|
+
"Candidate",
|
|
52
|
+
"OptimizationResult",
|
|
53
|
+
"BaseOptimizer",
|
|
54
|
+
"task_key",
|
|
55
|
+
"ReflectiveOptimizer",
|
|
56
|
+
"EditOut",
|
|
57
|
+
"ReflectionOut",
|
|
58
|
+
"ReflectiveParetoOptimizer",
|
|
59
|
+
"pareto_frontier",
|
|
60
|
+
"MIPROOptimizer",
|
|
61
|
+
"TIPS",
|
|
62
|
+
"GEPA_AVAILABLE",
|
|
63
|
+
"AgentbyteGepaAdapter",
|
|
64
|
+
"GepaRunResult",
|
|
65
|
+
"optimize_with_gepa",
|
|
66
|
+
]
|