autobots-devtools-shared-lib 0.10.0__tar.gz → 0.10.0b1__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.
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/PKG-INFO +6 -4
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/pyproject.toml +6 -4
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/__init__.py +8 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/agents/agent_config_utils.py +30 -1
- autobots_devtools_shared_lib-0.10.0b1/src/autobots_devtools_shared_lib/dynagent/agents/base_deepagent.py +91 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/agents/invocation_utils.py +139 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/config/dynagent_settings.py +6 -0
- autobots_devtools_shared_lib-0.10.0b1/src/autobots_devtools_shared_lib/dynagent/models/deep_state.py +18 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/README.md +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/config/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/config/jenkins_config.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/config/jenkins_constants.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/config/jenkins_loader.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/observability/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/observability/logging_utils.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/observability/otel_fastapi.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/observability/trace_metadata.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/observability/trace_propagation.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/observability/tracing.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/fileserver/README.md +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/fileserver/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/fileserver/app.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/fileserver/config.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/fileserver/models.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/noderedmanagerserver/README.md +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/noderedmanagerserver/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/noderedmanagerserver/__main__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/noderedmanagerserver/app.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/noderedmanagerserver/config.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/noderedmanagerserver/exceptions.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/servers/noderedmanagerserver/models.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/services/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/services/context/README.md +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/services/context/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/services/context/cache_backed.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/services/context/db_repository.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/services/context/factory.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/services/context/in_memory.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/services/context/redis_store.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/services/context/store.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/tools/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/tools/context_tools.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/tools/format_tools.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/tools/fserver_client_tools.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/tools/jenkins_builtin_tools.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/tools/jenkins_pipeline_tools.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/tools/noderedmanager_client_tools.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/utils/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/utils/context_utils.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/utils/format_utils.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/utils/fserver_client_utils.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/utils/jenkins_builtin_utils.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/utils/jenkins_http_utils.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/utils/jenkins_pipeline_utils.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/common/utils/noderedmanager_client_utils.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/agents/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/agents/agent_meta.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/agents/base_agent.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/agents/batch.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/agents/middleware.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/config/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/llm/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/llm/llm.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/models/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/models/state.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/services/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/services/structured_converter.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/tools/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/tools/state_tools.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/tools/tool_registry.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/ui/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/ui/default_ui.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/ui/ui_utils.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/utils/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/dynagent/utils/schema_directive_resolver.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/assertions/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/assertions/deterministic.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/assertions/golden.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/assertions/llm_judge.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/assertions/registry.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/assertions/written_file.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/core/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/core/cost_tracker.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/core/loader.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/core/runner.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/core/workspace.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/models/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/models/eval_case.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/models/result.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/pytest_plugin/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/pytest_plugin/fixtures.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/pytest_plugin/plugin.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/pytest_plugin/reporting.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/scoring/__init__.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/eval/scoring/langfuse_scorer.py +0 -0
- {autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/src/autobots_devtools_shared_lib/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: autobots-devtools-shared-lib
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.0b1
|
|
4
4
|
Summary: Shared library functions to be used for all autobots projects
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: Pralhad
|
|
@@ -12,11 +12,13 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.13
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.14
|
|
14
14
|
Requires-Dist: chainlit (>=2.9.6)
|
|
15
|
+
Requires-Dist: deepagents (==0.6.12)
|
|
15
16
|
Requires-Dist: fastapi (>=0.115.0)
|
|
16
17
|
Requires-Dist: jsonschema (>=4.26.0)
|
|
17
|
-
Requires-Dist: langchain (>=1.0.0)
|
|
18
|
-
Requires-Dist: langchain-anthropic (>=1.4.0)
|
|
19
|
-
Requires-Dist: langchain-
|
|
18
|
+
Requires-Dist: langchain (>=1.3.11,<2.0.0)
|
|
19
|
+
Requires-Dist: langchain-anthropic (>=1.4.7,<2.0.0)
|
|
20
|
+
Requires-Dist: langchain-core (>=1.4.8,<2.0.0)
|
|
21
|
+
Requires-Dist: langchain-google-genai (>=4.2.5,<5.0.0)
|
|
20
22
|
Requires-Dist: langfuse (>=3.12.1)
|
|
21
23
|
Requires-Dist: openevals (>=0.1.0)
|
|
22
24
|
Requires-Dist: opentelemetry-api (>=1.30.0,<2.0.0)
|
{autobots_devtools_shared_lib-0.10.0 → autobots_devtools_shared_lib-0.10.0b1}/pyproject.toml
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "autobots-devtools-shared-lib"
|
|
3
|
-
version = "0.10.
|
|
3
|
+
version = "0.10.0b1"
|
|
4
4
|
description = "Shared library functions to be used for all autobots projects"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -12,9 +12,11 @@ dependencies = [
|
|
|
12
12
|
"chainlit>=2.9.6",
|
|
13
13
|
"referencing>=0.37.0",
|
|
14
14
|
"jsonschema>=4.26.0",
|
|
15
|
-
"langchain>=1.0.0",
|
|
16
|
-
"langchain-
|
|
17
|
-
"langchain-
|
|
15
|
+
"langchain>=1.3.11,<2.0.0",
|
|
16
|
+
"langchain-core>=1.4.8,<2.0.0",
|
|
17
|
+
"langchain-anthropic>=1.4.7,<2.0.0",
|
|
18
|
+
"langchain-google-genai>=4.2.5,<5.0.0",
|
|
19
|
+
"deepagents==0.6.12",
|
|
18
20
|
"langfuse>=3.12.1",
|
|
19
21
|
"pydantic-settings>=2.10.1",
|
|
20
22
|
"python-dotenv>=1.1.1",
|
|
@@ -10,6 +10,7 @@ from autobots_devtools_shared_lib.common.utils.format_utils import output_format
|
|
|
10
10
|
from autobots_devtools_shared_lib.dynagent.agents.agent_config_utils import get_batch_enabled_agents
|
|
11
11
|
from autobots_devtools_shared_lib.dynagent.agents.agent_meta import AgentMeta
|
|
12
12
|
from autobots_devtools_shared_lib.dynagent.agents.base_agent import create_base_agent
|
|
13
|
+
from autobots_devtools_shared_lib.dynagent.agents.base_deepagent import create_base_deepagent
|
|
13
14
|
from autobots_devtools_shared_lib.dynagent.agents.batch import (
|
|
14
15
|
BatchResult,
|
|
15
16
|
RecordResult,
|
|
@@ -17,7 +18,9 @@ from autobots_devtools_shared_lib.dynagent.agents.batch import (
|
|
|
17
18
|
)
|
|
18
19
|
from autobots_devtools_shared_lib.dynagent.agents.invocation_utils import (
|
|
19
20
|
ainvoke_agent,
|
|
21
|
+
ainvoke_deepagent,
|
|
20
22
|
invoke_agent,
|
|
23
|
+
invoke_deepagent,
|
|
21
24
|
)
|
|
22
25
|
from autobots_devtools_shared_lib.dynagent.config.dynagent_settings import (
|
|
23
26
|
DynagentSettings,
|
|
@@ -26,22 +29,27 @@ from autobots_devtools_shared_lib.dynagent.config.dynagent_settings import (
|
|
|
26
29
|
set_dynagent_settings,
|
|
27
30
|
)
|
|
28
31
|
from autobots_devtools_shared_lib.dynagent.llm.llm import lm
|
|
32
|
+
from autobots_devtools_shared_lib.dynagent.models.deep_state import DynaDeepAgent
|
|
29
33
|
from autobots_devtools_shared_lib.dynagent.models.state import Dynagent
|
|
30
34
|
from autobots_devtools_shared_lib.dynagent.tools.tool_registry import register_usecase_tools
|
|
31
35
|
|
|
32
36
|
__all__ = [
|
|
33
37
|
"AgentMeta",
|
|
34
38
|
"BatchResult",
|
|
39
|
+
"DynaDeepAgent",
|
|
35
40
|
"Dynagent",
|
|
36
41
|
"DynagentSettings",
|
|
37
42
|
"LLMProvider",
|
|
38
43
|
"RecordResult",
|
|
39
44
|
"ainvoke_agent",
|
|
45
|
+
"ainvoke_deepagent",
|
|
40
46
|
"batch_invoker",
|
|
41
47
|
"create_base_agent",
|
|
48
|
+
"create_base_deepagent",
|
|
42
49
|
"get_batch_enabled_agents",
|
|
43
50
|
"get_dynagent_settings",
|
|
44
51
|
"invoke_agent",
|
|
52
|
+
"invoke_deepagent",
|
|
45
53
|
"lm",
|
|
46
54
|
"make_context_tools",
|
|
47
55
|
"output_format_converter",
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
# ABOUTME: Reads agents.yaml and provides typed accessors for prompts, tools, schemas.
|
|
3
3
|
|
|
4
4
|
import json
|
|
5
|
+
import os
|
|
6
|
+
import re
|
|
5
7
|
from dataclasses import dataclass, field
|
|
6
8
|
from pathlib import Path
|
|
7
9
|
from typing import Any
|
|
@@ -27,11 +29,37 @@ __all__ = [
|
|
|
27
29
|
"get_resolved_input_schema_map",
|
|
28
30
|
"get_resolved_output_schema_map",
|
|
29
31
|
"get_tool_map",
|
|
32
|
+
"interpolate_env",
|
|
30
33
|
"load_agents_config",
|
|
31
34
|
"load_prompt",
|
|
32
35
|
"load_schema",
|
|
33
36
|
]
|
|
34
37
|
|
|
38
|
+
_ENV_VAR_PATTERN = re.compile(r"\$\{(\w+)\}")
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def interpolate_env(value: Any) -> Any:
|
|
42
|
+
"""Recursively expand ${VAR} from os.environ in config values.
|
|
43
|
+
|
|
44
|
+
Fails fast on undefined variables so misconfigured domains surface at
|
|
45
|
+
startup instead of at first tool call.
|
|
46
|
+
"""
|
|
47
|
+
if isinstance(value, str):
|
|
48
|
+
|
|
49
|
+
def _sub(match: re.Match[str]) -> str:
|
|
50
|
+
var = match.group(1)
|
|
51
|
+
if var not in os.environ:
|
|
52
|
+
msg = f"Config references undefined environment variable '${{{var}}}'"
|
|
53
|
+
raise ValueError(msg)
|
|
54
|
+
return os.environ[var]
|
|
55
|
+
|
|
56
|
+
return _ENV_VAR_PATTERN.sub(_sub, value)
|
|
57
|
+
if isinstance(value, dict):
|
|
58
|
+
return {key: interpolate_env(item) for key, item in value.items()}
|
|
59
|
+
if isinstance(value, list):
|
|
60
|
+
return [interpolate_env(item) for item in value]
|
|
61
|
+
return value
|
|
62
|
+
|
|
35
63
|
|
|
36
64
|
@dataclass
|
|
37
65
|
class AgentConfig:
|
|
@@ -128,10 +156,11 @@ def load_agents_config() -> dict[str, AgentConfig]:
|
|
|
128
156
|
if _GLOBAL_AGENT_CONFIG:
|
|
129
157
|
return _GLOBAL_AGENT_CONFIG
|
|
130
158
|
config_dir = get_config_dir()
|
|
131
|
-
config_path = Path(config_dir) /
|
|
159
|
+
config_path = Path(config_dir) / get_dynagent_settings().agents_config_filename
|
|
132
160
|
|
|
133
161
|
with open(config_path) as f: # noqa: PTH123
|
|
134
162
|
data = yaml.safe_load(f)
|
|
163
|
+
data = interpolate_env(data or {})
|
|
135
164
|
|
|
136
165
|
agents = {}
|
|
137
166
|
for agent_id, agent_data in data.get("agents", {}).items():
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# ABOUTME: Factory for the dynagent deep-agent engine.
|
|
2
|
+
# ABOUTME: Wraps deepagents' create_deep_agent, mirroring create_base_agent's role.
|
|
3
|
+
|
|
4
|
+
import json
|
|
5
|
+
from collections import defaultdict
|
|
6
|
+
from collections.abc import Sequence
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
from deepagents import DeepAgentState, SubAgent, create_deep_agent
|
|
10
|
+
from langgraph.checkpoint.memory import InMemorySaver
|
|
11
|
+
from langgraph.graph.state import CompiledStateGraph
|
|
12
|
+
|
|
13
|
+
from autobots_devtools_shared_lib.common.observability import get_agent_logger
|
|
14
|
+
from autobots_devtools_shared_lib.dynagent.agents.agent_config_utils import get_default_agent
|
|
15
|
+
from autobots_devtools_shared_lib.dynagent.agents.agent_meta import AgentMeta
|
|
16
|
+
from autobots_devtools_shared_lib.dynagent.llm.llm import lm
|
|
17
|
+
from autobots_devtools_shared_lib.dynagent.models.deep_state import DynaDeepAgent
|
|
18
|
+
|
|
19
|
+
logger = get_agent_logger(__name__)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _resolve_system_prompt(
|
|
23
|
+
meta: AgentMeta, agent_name: str, prompt_values: dict[str, Any] | None
|
|
24
|
+
) -> str:
|
|
25
|
+
"""Build the static system prompt: raw prompt + one-time format_map substitution.
|
|
26
|
+
|
|
27
|
+
Retains dynagent's placeholder templating (e.g. {language} -> java) but resolves
|
|
28
|
+
it once at build time, since the deep engine uses a static system_prompt.
|
|
29
|
+
"""
|
|
30
|
+
raw_prompt = meta.prompt_map.get(agent_name, "")
|
|
31
|
+
input_schemas = meta.input_schema_map.get(agent_name, {})
|
|
32
|
+
input_directives = {
|
|
33
|
+
schema_key: json.dumps(schema, indent=2, sort_keys=True)
|
|
34
|
+
for schema_key, schema in input_schemas.items()
|
|
35
|
+
}
|
|
36
|
+
values = {
|
|
37
|
+
"input_schemas": input_directives,
|
|
38
|
+
"output_schema": meta.output_schema_map.get(agent_name, {}) or {},
|
|
39
|
+
**(prompt_values or {}),
|
|
40
|
+
}
|
|
41
|
+
return raw_prompt.format_map(defaultdict(str, values))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def create_base_deepagent(
|
|
45
|
+
checkpointer: Any = None,
|
|
46
|
+
initial_agent_name: str | None = None,
|
|
47
|
+
state_schema: type[DeepAgentState] = DynaDeepAgent,
|
|
48
|
+
prompt_values: dict[str, Any] | None = None,
|
|
49
|
+
subagents: Sequence[SubAgent] | None = None,
|
|
50
|
+
) -> CompiledStateGraph:
|
|
51
|
+
"""Create the dynagent deep-agent (deepagents-backed) engine.
|
|
52
|
+
|
|
53
|
+
Mirrors create_base_agent but delegates the agent loop to deepagents'
|
|
54
|
+
create_deep_agent, which supplies planning, virtual filesystem, sub-agents,
|
|
55
|
+
summarization, and prompt caching. The deep engine deliberately does NOT
|
|
56
|
+
attach inject_agent or our SummarizationMiddleware.
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
checkpointer: LangGraph checkpointer. Defaults to InMemorySaver.
|
|
60
|
+
initial_agent_name: Roster agent to run as the main agent. Defaults to
|
|
61
|
+
the config's default agent.
|
|
62
|
+
state_schema: Deep-agent state schema. Defaults to DynaDeepAgent.
|
|
63
|
+
prompt_values: Placeholder substitution values for the system prompt.
|
|
64
|
+
subagents: Optional deepagents subagents (phase-2 roster mapping hook).
|
|
65
|
+
|
|
66
|
+
Returns:
|
|
67
|
+
A compiled deep-agent graph.
|
|
68
|
+
"""
|
|
69
|
+
if checkpointer is None:
|
|
70
|
+
checkpointer = InMemorySaver()
|
|
71
|
+
|
|
72
|
+
meta = AgentMeta.instance()
|
|
73
|
+
|
|
74
|
+
if initial_agent_name is None:
|
|
75
|
+
initial_agent_name = get_default_agent()
|
|
76
|
+
agent_name = initial_agent_name or "assistant"
|
|
77
|
+
logger.info(f"create_base_deepagent: main agent = {agent_name}")
|
|
78
|
+
|
|
79
|
+
system_prompt = _resolve_system_prompt(meta, agent_name, prompt_values)
|
|
80
|
+
tools = meta.tool_map.get(agent_name, [])
|
|
81
|
+
model = lm()
|
|
82
|
+
|
|
83
|
+
return create_deep_agent(
|
|
84
|
+
model=model,
|
|
85
|
+
tools=tools,
|
|
86
|
+
system_prompt=system_prompt,
|
|
87
|
+
state_schema=state_schema,
|
|
88
|
+
checkpointer=checkpointer,
|
|
89
|
+
name=agent_name,
|
|
90
|
+
subagents=list(subagents) if subagents else None,
|
|
91
|
+
)
|
|
@@ -16,6 +16,7 @@ from autobots_devtools_shared_lib.common.observability.tracing import (
|
|
|
16
16
|
flush_tracing,
|
|
17
17
|
get_langfuse_handler,
|
|
18
18
|
)
|
|
19
|
+
from autobots_devtools_shared_lib.dynagent.models.deep_state import DynaDeepAgent
|
|
19
20
|
from autobots_devtools_shared_lib.dynagent.models.state import Dynagent
|
|
20
21
|
|
|
21
22
|
logger = get_logger(__name__)
|
|
@@ -205,6 +206,75 @@ def invoke_agent(
|
|
|
205
206
|
flush_tracing()
|
|
206
207
|
|
|
207
208
|
|
|
209
|
+
def invoke_deepagent(
|
|
210
|
+
agent_name: str,
|
|
211
|
+
input_state: dict[str, Any] | None = None,
|
|
212
|
+
checkpointer: Any | None = None,
|
|
213
|
+
config: RunnableConfig | None = None,
|
|
214
|
+
enable_tracing: bool = True,
|
|
215
|
+
trace_metadata: TraceMetadata | None = None,
|
|
216
|
+
state_schema: type[AgentState[ResponseT]] = DynaDeepAgent,
|
|
217
|
+
) -> dict[str, Any]:
|
|
218
|
+
"""Synchronously invoke a deep-agent (deepagents-backed) with observability.
|
|
219
|
+
|
|
220
|
+
Mirrors invoke_agent but builds the graph via create_base_deepagent.
|
|
221
|
+
"""
|
|
222
|
+
from autobots_devtools_shared_lib.dynagent.agents.agent_config_utils import get_agent_list
|
|
223
|
+
|
|
224
|
+
valid_agents = get_agent_list()
|
|
225
|
+
if agent_name not in valid_agents:
|
|
226
|
+
raise ValueError(f"Unknown agent: {agent_name}. Valid agents: {', '.join(valid_agents)}")
|
|
227
|
+
|
|
228
|
+
if input_state is None:
|
|
229
|
+
input_state = {}
|
|
230
|
+
if trace_metadata is None:
|
|
231
|
+
trace_metadata = TraceMetadata.create(app_name=f"{agent_name}-invoke-deep")
|
|
232
|
+
if "session_id" in input_state:
|
|
233
|
+
trace_metadata.session_id = input_state["session_id"]
|
|
234
|
+
|
|
235
|
+
if "session_id" not in input_state:
|
|
236
|
+
input_state["session_id"] = trace_metadata.session_id
|
|
237
|
+
if "agent_name" not in input_state:
|
|
238
|
+
input_state["agent_name"] = agent_name
|
|
239
|
+
|
|
240
|
+
try:
|
|
241
|
+
with (
|
|
242
|
+
propagate_attributes(
|
|
243
|
+
user_id=trace_metadata.user_id,
|
|
244
|
+
session_id=trace_metadata.session_id,
|
|
245
|
+
tags=trace_metadata.tags,
|
|
246
|
+
),
|
|
247
|
+
otel_span(f"{trace_metadata.app_name}-{agent_name}") as span,
|
|
248
|
+
):
|
|
249
|
+
if enable_tracing:
|
|
250
|
+
config = inject_langfuse_handler_into_config(config, _linked_langfuse_handler(span))
|
|
251
|
+
if span is not None:
|
|
252
|
+
span.set_attribute("langfuse.session.id", str(trace_metadata.session_id))
|
|
253
|
+
|
|
254
|
+
from langgraph.checkpoint.memory import InMemorySaver
|
|
255
|
+
|
|
256
|
+
from autobots_devtools_shared_lib.dynagent.agents.base_deepagent import (
|
|
257
|
+
create_base_deepagent,
|
|
258
|
+
)
|
|
259
|
+
|
|
260
|
+
if checkpointer is None:
|
|
261
|
+
checkpointer = InMemorySaver()
|
|
262
|
+
|
|
263
|
+
agent = create_base_deepagent(
|
|
264
|
+
checkpointer=checkpointer,
|
|
265
|
+
state_schema=state_schema,
|
|
266
|
+
initial_agent_name=agent_name,
|
|
267
|
+
)
|
|
268
|
+
|
|
269
|
+
logger.info(
|
|
270
|
+
f"Invoking deepagent '{agent_name}' (sync) session_id={trace_metadata.session_id}"
|
|
271
|
+
)
|
|
272
|
+
return agent.invoke(input_state, config=config)
|
|
273
|
+
finally:
|
|
274
|
+
if enable_tracing:
|
|
275
|
+
flush_tracing()
|
|
276
|
+
|
|
277
|
+
|
|
208
278
|
async def ainvoke_agent(
|
|
209
279
|
agent_name: str,
|
|
210
280
|
input_state: dict[str, Any] | None = None,
|
|
@@ -339,3 +409,72 @@ async def ainvoke_agent(
|
|
|
339
409
|
finally:
|
|
340
410
|
if enable_tracing:
|
|
341
411
|
flush_tracing()
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
async def ainvoke_deepagent(
|
|
415
|
+
agent_name: str,
|
|
416
|
+
input_state: dict[str, Any] | None = None,
|
|
417
|
+
checkpointer: Any | None = None,
|
|
418
|
+
config: RunnableConfig | None = None,
|
|
419
|
+
enable_tracing: bool = True,
|
|
420
|
+
trace_metadata: TraceMetadata | None = None,
|
|
421
|
+
state_schema: type[AgentState[ResponseT]] = DynaDeepAgent,
|
|
422
|
+
) -> dict[str, Any]:
|
|
423
|
+
"""Asynchronously invoke a deep-agent (deepagents-backed) with observability.
|
|
424
|
+
|
|
425
|
+
Mirrors ainvoke_agent but builds the graph via create_base_deepagent.
|
|
426
|
+
"""
|
|
427
|
+
from autobots_devtools_shared_lib.dynagent.agents.agent_config_utils import get_agent_list
|
|
428
|
+
|
|
429
|
+
valid_agents = get_agent_list()
|
|
430
|
+
if agent_name not in valid_agents:
|
|
431
|
+
raise ValueError(f"Unknown agent: {agent_name}. Valid agents: {', '.join(valid_agents)}")
|
|
432
|
+
|
|
433
|
+
if input_state is None:
|
|
434
|
+
input_state = {}
|
|
435
|
+
if trace_metadata is None:
|
|
436
|
+
trace_metadata = TraceMetadata.create(app_name=f"{agent_name}-ainvoke-deep")
|
|
437
|
+
if "session_id" in input_state:
|
|
438
|
+
trace_metadata.session_id = input_state["session_id"]
|
|
439
|
+
|
|
440
|
+
if "session_id" not in input_state:
|
|
441
|
+
input_state["session_id"] = trace_metadata.session_id
|
|
442
|
+
if "agent_name" not in input_state:
|
|
443
|
+
input_state["agent_name"] = agent_name
|
|
444
|
+
|
|
445
|
+
try:
|
|
446
|
+
with (
|
|
447
|
+
propagate_attributes(
|
|
448
|
+
user_id=trace_metadata.user_id,
|
|
449
|
+
session_id=trace_metadata.session_id,
|
|
450
|
+
tags=trace_metadata.tags,
|
|
451
|
+
),
|
|
452
|
+
otel_span(f"{trace_metadata.app_name}-{agent_name}") as span,
|
|
453
|
+
):
|
|
454
|
+
if enable_tracing:
|
|
455
|
+
config = inject_langfuse_handler_into_config(config, _linked_langfuse_handler(span))
|
|
456
|
+
if span is not None:
|
|
457
|
+
span.set_attribute("langfuse.session.id", str(trace_metadata.session_id))
|
|
458
|
+
|
|
459
|
+
from langgraph.checkpoint.memory import InMemorySaver
|
|
460
|
+
|
|
461
|
+
from autobots_devtools_shared_lib.dynagent.agents.base_deepagent import (
|
|
462
|
+
create_base_deepagent,
|
|
463
|
+
)
|
|
464
|
+
|
|
465
|
+
if checkpointer is None:
|
|
466
|
+
checkpointer = InMemorySaver()
|
|
467
|
+
|
|
468
|
+
agent = create_base_deepagent(
|
|
469
|
+
checkpointer=checkpointer,
|
|
470
|
+
state_schema=state_schema,
|
|
471
|
+
initial_agent_name=agent_name,
|
|
472
|
+
)
|
|
473
|
+
|
|
474
|
+
logger.info(
|
|
475
|
+
f"Invoking deepagent '{agent_name}' (async) session_id={trace_metadata.session_id}"
|
|
476
|
+
)
|
|
477
|
+
return await agent.ainvoke(input_state, config=config)
|
|
478
|
+
finally:
|
|
479
|
+
if enable_tracing:
|
|
480
|
+
flush_tracing()
|
|
@@ -47,6 +47,12 @@ class DynagentSettings(BaseSettings):
|
|
|
47
47
|
default=Path("configs"),
|
|
48
48
|
description="Base directory for agent configuration files",
|
|
49
49
|
)
|
|
50
|
+
# Filename of the agent roster config within the config dir (env: AGENTS_CONFIG_FILENAME).
|
|
51
|
+
# Deep-agent domains set this to "deep-agents.yaml".
|
|
52
|
+
agents_config_filename: str = Field(
|
|
53
|
+
default="agents.yaml",
|
|
54
|
+
description="Agent roster config filename within the config dir",
|
|
55
|
+
)
|
|
50
56
|
|
|
51
57
|
# Langfuse observability settings
|
|
52
58
|
langfuse_public_key: str = Field(default="", description="Langfuse public key")
|
autobots_devtools_shared_lib-0.10.0b1/src/autobots_devtools_shared_lib/dynagent/models/deep_state.py
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# ABOUTME: State schema for the dynagent deep-agent engine.
|
|
2
|
+
# ABOUTME: Extends deepagents' DeepAgentState with routing/identity keys.
|
|
3
|
+
|
|
4
|
+
from typing import NotRequired
|
|
5
|
+
|
|
6
|
+
from deepagents import DeepAgentState
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class DynaDeepAgent(DeepAgentState):
|
|
10
|
+
"""Deep-agent state carrying routing keys and optional user identity.
|
|
11
|
+
|
|
12
|
+
Mirrors Dynagent's identity keys, but on the deepagents base so it keeps
|
|
13
|
+
deepagents' messages delta reducer and todo/file state channels.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
agent_name: NotRequired[str]
|
|
17
|
+
session_id: NotRequired[str]
|
|
18
|
+
user_name: NotRequired[str]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|