databricks-agentbricks 0.4.0__tar.gz → 0.5.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.
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/PKG-INFO +45 -16
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/README.md +44 -15
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/pyproject.toml +1 -1
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/app.py +5 -5
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/auth.py +1 -1
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/cli/deploy.py +243 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/cli/dev.py +111 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/doctor.py +1 -1
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/cli/endpoint.py +81 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/init.py +5 -5
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/mcp.py +2 -2
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/memory.py +18 -9
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/pipeline.py +35 -8
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/sandbox.py +15 -51
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/sessions.py +18 -9
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/tools.py +6 -6
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/tracing.py +21 -195
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/__init__.py +1 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/api_client_provider.py +36 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/apps_client.py +645 -0
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/app_auth.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/apps_user_auth_client.py +85 -40
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/conversation_store_client.py +202 -0
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/legacy_lakebase_runtime_store.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/legacy_runtime_store.py +38 -2
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/tracing_client.py +235 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/errors.py +1 -1
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/__init__.py +1 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/deploy.py +238 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/dev.py +98 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/endpoint.py +81 -0
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/_group.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/group.py +2 -1
- {databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli → databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation}/help.py +10 -5
- {databricks_agentbricks-0.4.0/src/databricks_agentbricks → databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation}/render.py +1 -1
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/reporter.py +29 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation/tracing.py +17 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects/__init__.py +1 -0
- {databricks_agentbricks-0.4.0/src/databricks_agentbricks → databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects}/agent_project.py +23 -22
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects/app_manifest.py +131 -0
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/project_config.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects/config.py +1 -1
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects/resolver.py +56 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/reporting.py +36 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/__init__.py +4 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deploy_service.py +426 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment/__init__.py +5 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment/config.py +54 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment/names.py +44 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment/provisioners.py +589 -0
- {databricks_agentbricks-0.4.0/src/databricks_agentbricks → databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment}/tool_access.py +30 -24
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/deployment/tool_access_provisioner.py +49 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/dev_service.py +231 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/invoke/__init__.py +1 -0
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/invoke/auth.py +32 -0
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/endpoint_request.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/invoke/request.py +2 -2
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/endpoint_transport.py → databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/invoke/transport.py +6 -3
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/services/invoke_service.py +138 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/pyproject.toml +1 -1
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/pyproject.toml +1 -1
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/runtime/adapter.py +3 -1
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_agent.py +18 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/pyproject.toml +1 -1
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/pyproject.toml +1 -1
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/CHAT_APP.md +9 -4
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/runtime/ui.py +4 -13
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/tests/test_demo_ui.py +6 -6
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/app.js +80 -58
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/index.html +7 -6
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/markdown-it-15.0.2.min.js +39 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/styles.css +21 -1
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/CHAT_APP.md +9 -4
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/runtime/ui.py +3 -10
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/tests/test_demo_ui.py +4 -4
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/app.js +78 -18
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/index.html +7 -6
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/templates/ui/agent-openai/ui/markdown-it-15.0.2.min.js +39 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/styles.css +21 -1
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/_api_client.py +36 -7
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/app.py +36 -14
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/tool_manifest.py +14 -2
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/app_resources.py +0 -395
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/deploy.py +0 -1039
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/dev.py +0 -310
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/endpoint.py +0 -150
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/endpoint_examples.py +0 -33
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/endpoint_output.py +0 -53
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/trace_tables.py +0 -36
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/.gitignore +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/NOTICE +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/__init__.py +0 -0
- {databricks_agentbricks-0.4.0/src/databricks_agentbricks → databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients}/databricks_cli.py +0 -0
- /databricks_agentbricks-0.4.0/src/databricks_agentbricks/lakebase_runtime_store.py → /databricks_agentbricks-0.5.0/src/databricks_agentbricks/clients/managed_runtime_store.py +0 -0
- {databricks_agentbricks-0.4.0/src/databricks_agentbricks → databricks_agentbricks-0.5.0/src/databricks_agentbricks/presentation}/theme.py +0 -0
- /databricks_agentbricks-0.4.0/src/databricks_agentbricks/project_types.py → /databricks_agentbricks-0.5.0/src/databricks_agentbricks/projects/types.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/py.typed +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-bricks-migrate/SKILL.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/.env.example +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/.gitignore +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/AGENTKIT_CONTRACT.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/AGENTS.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/CLAUDE.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/README.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/agent.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/mcps.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/sample_tool.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/send_message.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/app.yaml +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/adapter.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/main.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_agent.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_workspace.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/.env.example +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/.gitignore +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/AGENTKIT_CONTRACT.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/AGENTS.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/CLAUDE.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/README.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/agent.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/mcps.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/sample_tool.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/send_message.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/app.yaml +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/runtime/main.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/tests/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_workspace.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/.env.example +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/.gitignore +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/README.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/agent/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/agent/agent.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/app.yaml +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/runtime/main.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/.env.example +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/.gitignore +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/README.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/agent/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/agent/agent.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/app.yaml +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/runtime/main.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/custom-agent-openai/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/sandbox_mcp.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/sandbox_mcp_langgraph.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/runtime/main.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/agentbricks-mark.png +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/runtime/main.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/agentbricks-mark.png +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/_pagination.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/client.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/genie.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/mcp.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/memory.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/responses.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/langgraph/session_store.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/memory_store.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/models.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/openai/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/openai/genie.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/openai/mcp.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/openai/memory.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/openai/sessions.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/py.typed +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/ARCHITECTURE.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/README.md +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/auth.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/__init__.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/execution.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/heartbeat.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/lakebase_runtime_store.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/recovery.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/durability/store.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/execution.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/genie.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/mcp_auth.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/model_services.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/runtime.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/session_store_client.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/store.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/tracing.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/types.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/runtime/workspace.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/session_store.py +0 -0
- {databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentkit/timefmt.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: databricks-agentbricks
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: Agent Bricks CLI and AgentKit SDK for custom agents on Databricks
|
|
5
5
|
Author-email: Databricks <agent-feedback@databricks.com>
|
|
6
6
|
License-File: NOTICE
|
|
@@ -103,19 +103,16 @@ The two ways to run an agent:
|
|
|
103
103
|
|
|
104
104
|
## Installation
|
|
105
105
|
|
|
106
|
-
From PyPI:
|
|
107
|
-
|
|
108
106
|
The `databricks-agentbricks` Python distribution installs the `agentbricks` command and AgentKit.
|
|
109
107
|
|
|
110
108
|
```sh
|
|
111
109
|
pip install databricks-agentbricks
|
|
112
110
|
```
|
|
113
111
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
```
|
|
112
|
+
Install from PyPI rather than from this repository. Templates on `main` can depend on SDK changes that
|
|
113
|
+
are not yet released, while generated projects install the released SDK from PyPI, so a CLI installed
|
|
114
|
+
from source can scaffold projects that fail to start. To work on Agent Bricks itself, see
|
|
115
|
+
[CONTRIBUTING.md](CONTRIBUTING.md).
|
|
119
116
|
|
|
120
117
|
The base package includes the CLI, store SDK, and `DurableAgentServer` HTTP runtime. Generated projects
|
|
121
118
|
declare their framework dependencies automatically.
|
|
@@ -153,7 +150,7 @@ The shortest path from a blank directory to a running and deployed agent:
|
|
|
153
150
|
|
|
154
151
|
```sh
|
|
155
152
|
agentbricks login --profile <profile>
|
|
156
|
-
agentbricks init my-agent
|
|
153
|
+
agentbricks init my-agent # Defaults to LangGraph; add --framework=openai for OpenAI Agents SDK
|
|
157
154
|
cd my-agent
|
|
158
155
|
agentbricks dev # run locally
|
|
159
156
|
agentbricks deploy my-agent # deploy to Databricks
|
|
@@ -180,6 +177,28 @@ it an HTTP request. MLflow tracing is on by default (`agentbricks init` binds a
|
|
|
180
177
|
`.agentbricks/` and `agentbricks deploy` to the bound workspace experiment; `agentbricks tracing list` shows the
|
|
181
178
|
available traces.
|
|
182
179
|
|
|
180
|
+
## Inspect and clean up a project
|
|
181
|
+
|
|
182
|
+
Read `agent.toml` for the recorded agent name, declared memory/session stores, tracing, and tool
|
|
183
|
+
bindings. A declaration does not confirm that the resource exists or that the deployed app can use it.
|
|
184
|
+
|
|
185
|
+
| Inspect | Command | Details |
|
|
186
|
+
| --- | --- | --- |
|
|
187
|
+
| Local onboarding checks | `agentbricks doctor .` | Offline; does not verify bindings or deployed resources. |
|
|
188
|
+
| Agent Bricks apps in a workspace | `agentbricks -p <profile> deployments list` | Lists apps with the `agent-bricks-` prefix in the selected workspace, including other projects. |
|
|
189
|
+
| App status and URL | `agentbricks -p <profile> deployments get agent-bricks-<name>` | Queries the selected workspace for the named app. |
|
|
190
|
+
| Memory store IDs and details | `agentbricks -p <profile> memory stores list`, then `agentbricks -p <profile> memory stores get <resource-name>` | Workspace-wide; can include other projects' stores. Use the ID or resource name, not the display name. |
|
|
191
|
+
| Session store names and details | `agentbricks -p <profile> sessions stores list`, then `agentbricks -p <profile> sessions stores get <name>` | Workspace-wide; can include other projects' stores. Use the store name. |
|
|
192
|
+
|
|
193
|
+
Review each confirmation. Delete a store only after confirming that you own it and no other agent
|
|
194
|
+
needs it, using the same profile and identifier used to inspect it.
|
|
195
|
+
|
|
196
|
+
| Clean up | Command | Details |
|
|
197
|
+
| --- | --- | --- |
|
|
198
|
+
| Deployment | `agentbricks -p <profile> deployments delete agent-bricks-<name>` | Managed Runtime Store cleanup checks the app identity and runs before app deletion; a cleanup failure retains the app for retry. Memory/session stores, tracing experiments, tools, and source files are retained. |
|
|
199
|
+
| [Memory store](cli.md#agentbricks-memory-stores-delete) | `agentbricks -p <profile> memory stores delete <resource-name>` | Soft-deletes the store after confirmation. |
|
|
200
|
+
| [Session store](cli.md#agentbricks-sessions-stores-delete) | `agentbricks -p <profile> sessions stores delete <name>` | Deletes the store after confirmation. |
|
|
201
|
+
|
|
183
202
|
## Public names
|
|
184
203
|
|
|
185
204
|
Use `agentbricks` for the CLI and `AgentKitClient` from `databricks_agentkit` for the Python SDK. New
|
|
@@ -460,6 +479,10 @@ agentbricks deploy my-agent
|
|
|
460
479
|
```
|
|
461
480
|
|
|
462
481
|
Memory and session stores are independent resources: deleting one never affects the other.
|
|
482
|
+
For projects with `agent.toml`, unbinding either store removes its declaration; the next deploy
|
|
483
|
+
removes the corresponding `AGENT_MEMORY_STORE` or `AGENT_SESSION_STORE` entry from `app.yaml`.
|
|
484
|
+
Unbinding does not delete the store or revoke an existing grant to the App's service principal.
|
|
485
|
+
If access must be revoked, coordinate that separately with the store owner or workspace admin.
|
|
463
486
|
|
|
464
487
|
## Commands
|
|
465
488
|
|
|
@@ -624,7 +647,7 @@ add` updates only this file; direct TOML edits have the same behavior. Both mana
|
|
|
624
647
|
adapters read the managed bindings at runtime without generating or patching agent source:
|
|
625
648
|
|
|
626
649
|
```sh
|
|
627
|
-
agentbricks tools add sandbox --scope
|
|
650
|
+
agentbricks tools add sandbox --scope volume:main.data.files
|
|
628
651
|
agentbricks tools add mcp system.ai.web_search
|
|
629
652
|
agentbricks tools add uc-function catalog.schema.lookup_ticket
|
|
630
653
|
agentbricks tools add genie-one
|
|
@@ -662,9 +685,7 @@ user's permissions instead of the App service principal.
|
|
|
662
685
|
| --- | --- |
|
|
663
686
|
| UC function | Apps `uc_securable`: `FUNCTION` / `EXECUTE` |
|
|
664
687
|
| Genie Agent space | Apps `genie_space`: `CAN_RUN` |
|
|
665
|
-
| Sandbox table scope | Apps `uc_securable`: `TABLE` / `SELECT` or `MODIFY` |
|
|
666
688
|
| Sandbox volume scope | Apps `uc_securable`: `VOLUME` / `READ_VOLUME` or `WRITE_VOLUME` |
|
|
667
|
-
| Sandbox Workspace path | Workspace ACL: `CAN_READ` or `CAN_EDIT` |
|
|
668
689
|
| External MCP service | Unity Catalog: effective `EXECUTE` plus `USE_SCHEMA` and `USE_CATALOG` on its named parents |
|
|
669
690
|
| Built-in `system.ai` MCP service, including Sandbox and Genie One | Platform-managed access defaults; Agent Bricks does not mutate system securables |
|
|
670
691
|
|
|
@@ -673,7 +694,7 @@ grant. Use a Genie Agent binding when the App identity should be scoped to one e
|
|
|
673
694
|
|
|
674
695
|
Apps-backed tool resources are named deterministically and reconciled to the manifest on each
|
|
675
696
|
deploy: removing a binding removes that Agent Bricks-owned Apps resource while preserving Runtime
|
|
676
|
-
Store, tracing, and user-owned resources. MCP
|
|
697
|
+
Store, tracing, and user-owned resources. MCP grants are additive in this release
|
|
677
698
|
because their permission APIs do not expose trustworthy Agent Bricks ownership metadata; removing
|
|
678
699
|
those bindings does not revoke an independently valid grant.
|
|
679
700
|
|
|
@@ -882,8 +903,8 @@ If a manifest with `server = "agentbricks"` contains `source = { kind = "python"
|
|
|
882
903
|
`[[tools]]` entry; the decorated tool in `agent/tools/` remains active. `agentbricks dev` and `agentbricks deploy`
|
|
883
904
|
do not generate or patch Python tool code, and do not alter the manifest's `[[tools]]` bindings.
|
|
884
905
|
|
|
885
|
-
Sandbox scopes default to read-only access. Repeat `--scope` to allow more
|
|
886
|
-
|
|
906
|
+
Sandbox scopes support volumes only and default to read-only access. Repeat `--scope` to allow more
|
|
907
|
+
than one volume, use `volume:catalog.schema.volume`, and use `--permission read_write` only when the
|
|
887
908
|
agent needs writes. Every sandbox call carries this fixed downscope in MCP `_meta`, outside the tool
|
|
888
909
|
arguments controlled by the model. New sandbox bindings also expose the selected Databricks
|
|
889
910
|
credential to sandbox code by default:
|
|
@@ -893,9 +914,17 @@ credential to sandbox code by default:
|
|
|
893
914
|
id = "sandbox"
|
|
894
915
|
auth = "user"
|
|
895
916
|
source = { kind = "sandbox", service = "system.ai.sandbox" }
|
|
896
|
-
policy = { downscope = [{ resource = "
|
|
917
|
+
policy = { downscope = [{ resource = "volume:main.data.files", permission = "read_only" }], databricks_access_token_included = true }
|
|
897
918
|
```
|
|
898
919
|
|
|
920
|
+
Table sandbox scopes are not supported yet because Databricks Connect does not support table
|
|
921
|
+
downscoping. Workspace sandbox scopes are also not supported yet; they have not been validated
|
|
922
|
+
against a live workspace. Use a volume instead. Existing `table:` and `workspace:` entries must be
|
|
923
|
+
removed from `agent.toml` before using `agentbricks dev` or `agentbricks deploy`.
|
|
924
|
+
|
|
925
|
+
The table implementation is retained behind a disabled code-level gate so it can be enabled when
|
|
926
|
+
Databricks Connect supports table downscoping. There is no CLI option to bypass that gate.
|
|
927
|
+
|
|
899
928
|
With `databricks_access_token_included = true`, the sandbox receives `DATABRICKS_HOST`, a short-lived
|
|
900
929
|
`DATABRICKS_TOKEN`, and `DATABRICKS_AUTH_TYPE`, so code such as
|
|
901
930
|
`WorkspaceClient().current_user.me()` can call workspace APIs. This policy does not choose the
|
|
@@ -67,19 +67,16 @@ The two ways to run an agent:
|
|
|
67
67
|
|
|
68
68
|
## Installation
|
|
69
69
|
|
|
70
|
-
From PyPI:
|
|
71
|
-
|
|
72
70
|
The `databricks-agentbricks` Python distribution installs the `agentbricks` command and AgentKit.
|
|
73
71
|
|
|
74
72
|
```sh
|
|
75
73
|
pip install databricks-agentbricks
|
|
76
74
|
```
|
|
77
75
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
```
|
|
76
|
+
Install from PyPI rather than from this repository. Templates on `main` can depend on SDK changes that
|
|
77
|
+
are not yet released, while generated projects install the released SDK from PyPI, so a CLI installed
|
|
78
|
+
from source can scaffold projects that fail to start. To work on Agent Bricks itself, see
|
|
79
|
+
[CONTRIBUTING.md](CONTRIBUTING.md).
|
|
83
80
|
|
|
84
81
|
The base package includes the CLI, store SDK, and `DurableAgentServer` HTTP runtime. Generated projects
|
|
85
82
|
declare their framework dependencies automatically.
|
|
@@ -117,7 +114,7 @@ The shortest path from a blank directory to a running and deployed agent:
|
|
|
117
114
|
|
|
118
115
|
```sh
|
|
119
116
|
agentbricks login --profile <profile>
|
|
120
|
-
agentbricks init my-agent
|
|
117
|
+
agentbricks init my-agent # Defaults to LangGraph; add --framework=openai for OpenAI Agents SDK
|
|
121
118
|
cd my-agent
|
|
122
119
|
agentbricks dev # run locally
|
|
123
120
|
agentbricks deploy my-agent # deploy to Databricks
|
|
@@ -144,6 +141,28 @@ it an HTTP request. MLflow tracing is on by default (`agentbricks init` binds a
|
|
|
144
141
|
`.agentbricks/` and `agentbricks deploy` to the bound workspace experiment; `agentbricks tracing list` shows the
|
|
145
142
|
available traces.
|
|
146
143
|
|
|
144
|
+
## Inspect and clean up a project
|
|
145
|
+
|
|
146
|
+
Read `agent.toml` for the recorded agent name, declared memory/session stores, tracing, and tool
|
|
147
|
+
bindings. A declaration does not confirm that the resource exists or that the deployed app can use it.
|
|
148
|
+
|
|
149
|
+
| Inspect | Command | Details |
|
|
150
|
+
| --- | --- | --- |
|
|
151
|
+
| Local onboarding checks | `agentbricks doctor .` | Offline; does not verify bindings or deployed resources. |
|
|
152
|
+
| Agent Bricks apps in a workspace | `agentbricks -p <profile> deployments list` | Lists apps with the `agent-bricks-` prefix in the selected workspace, including other projects. |
|
|
153
|
+
| App status and URL | `agentbricks -p <profile> deployments get agent-bricks-<name>` | Queries the selected workspace for the named app. |
|
|
154
|
+
| Memory store IDs and details | `agentbricks -p <profile> memory stores list`, then `agentbricks -p <profile> memory stores get <resource-name>` | Workspace-wide; can include other projects' stores. Use the ID or resource name, not the display name. |
|
|
155
|
+
| Session store names and details | `agentbricks -p <profile> sessions stores list`, then `agentbricks -p <profile> sessions stores get <name>` | Workspace-wide; can include other projects' stores. Use the store name. |
|
|
156
|
+
|
|
157
|
+
Review each confirmation. Delete a store only after confirming that you own it and no other agent
|
|
158
|
+
needs it, using the same profile and identifier used to inspect it.
|
|
159
|
+
|
|
160
|
+
| Clean up | Command | Details |
|
|
161
|
+
| --- | --- | --- |
|
|
162
|
+
| Deployment | `agentbricks -p <profile> deployments delete agent-bricks-<name>` | Managed Runtime Store cleanup checks the app identity and runs before app deletion; a cleanup failure retains the app for retry. Memory/session stores, tracing experiments, tools, and source files are retained. |
|
|
163
|
+
| [Memory store](cli.md#agentbricks-memory-stores-delete) | `agentbricks -p <profile> memory stores delete <resource-name>` | Soft-deletes the store after confirmation. |
|
|
164
|
+
| [Session store](cli.md#agentbricks-sessions-stores-delete) | `agentbricks -p <profile> sessions stores delete <name>` | Deletes the store after confirmation. |
|
|
165
|
+
|
|
147
166
|
## Public names
|
|
148
167
|
|
|
149
168
|
Use `agentbricks` for the CLI and `AgentKitClient` from `databricks_agentkit` for the Python SDK. New
|
|
@@ -424,6 +443,10 @@ agentbricks deploy my-agent
|
|
|
424
443
|
```
|
|
425
444
|
|
|
426
445
|
Memory and session stores are independent resources: deleting one never affects the other.
|
|
446
|
+
For projects with `agent.toml`, unbinding either store removes its declaration; the next deploy
|
|
447
|
+
removes the corresponding `AGENT_MEMORY_STORE` or `AGENT_SESSION_STORE` entry from `app.yaml`.
|
|
448
|
+
Unbinding does not delete the store or revoke an existing grant to the App's service principal.
|
|
449
|
+
If access must be revoked, coordinate that separately with the store owner or workspace admin.
|
|
427
450
|
|
|
428
451
|
## Commands
|
|
429
452
|
|
|
@@ -588,7 +611,7 @@ add` updates only this file; direct TOML edits have the same behavior. Both mana
|
|
|
588
611
|
adapters read the managed bindings at runtime without generating or patching agent source:
|
|
589
612
|
|
|
590
613
|
```sh
|
|
591
|
-
agentbricks tools add sandbox --scope
|
|
614
|
+
agentbricks tools add sandbox --scope volume:main.data.files
|
|
592
615
|
agentbricks tools add mcp system.ai.web_search
|
|
593
616
|
agentbricks tools add uc-function catalog.schema.lookup_ticket
|
|
594
617
|
agentbricks tools add genie-one
|
|
@@ -626,9 +649,7 @@ user's permissions instead of the App service principal.
|
|
|
626
649
|
| --- | --- |
|
|
627
650
|
| UC function | Apps `uc_securable`: `FUNCTION` / `EXECUTE` |
|
|
628
651
|
| Genie Agent space | Apps `genie_space`: `CAN_RUN` |
|
|
629
|
-
| Sandbox table scope | Apps `uc_securable`: `TABLE` / `SELECT` or `MODIFY` |
|
|
630
652
|
| Sandbox volume scope | Apps `uc_securable`: `VOLUME` / `READ_VOLUME` or `WRITE_VOLUME` |
|
|
631
|
-
| Sandbox Workspace path | Workspace ACL: `CAN_READ` or `CAN_EDIT` |
|
|
632
653
|
| External MCP service | Unity Catalog: effective `EXECUTE` plus `USE_SCHEMA` and `USE_CATALOG` on its named parents |
|
|
633
654
|
| Built-in `system.ai` MCP service, including Sandbox and Genie One | Platform-managed access defaults; Agent Bricks does not mutate system securables |
|
|
634
655
|
|
|
@@ -637,7 +658,7 @@ grant. Use a Genie Agent binding when the App identity should be scoped to one e
|
|
|
637
658
|
|
|
638
659
|
Apps-backed tool resources are named deterministically and reconciled to the manifest on each
|
|
639
660
|
deploy: removing a binding removes that Agent Bricks-owned Apps resource while preserving Runtime
|
|
640
|
-
Store, tracing, and user-owned resources. MCP
|
|
661
|
+
Store, tracing, and user-owned resources. MCP grants are additive in this release
|
|
641
662
|
because their permission APIs do not expose trustworthy Agent Bricks ownership metadata; removing
|
|
642
663
|
those bindings does not revoke an independently valid grant.
|
|
643
664
|
|
|
@@ -846,8 +867,8 @@ If a manifest with `server = "agentbricks"` contains `source = { kind = "python"
|
|
|
846
867
|
`[[tools]]` entry; the decorated tool in `agent/tools/` remains active. `agentbricks dev` and `agentbricks deploy`
|
|
847
868
|
do not generate or patch Python tool code, and do not alter the manifest's `[[tools]]` bindings.
|
|
848
869
|
|
|
849
|
-
Sandbox scopes default to read-only access. Repeat `--scope` to allow more
|
|
850
|
-
|
|
870
|
+
Sandbox scopes support volumes only and default to read-only access. Repeat `--scope` to allow more
|
|
871
|
+
than one volume, use `volume:catalog.schema.volume`, and use `--permission read_write` only when the
|
|
851
872
|
agent needs writes. Every sandbox call carries this fixed downscope in MCP `_meta`, outside the tool
|
|
852
873
|
arguments controlled by the model. New sandbox bindings also expose the selected Databricks
|
|
853
874
|
credential to sandbox code by default:
|
|
@@ -857,9 +878,17 @@ credential to sandbox code by default:
|
|
|
857
878
|
id = "sandbox"
|
|
858
879
|
auth = "user"
|
|
859
880
|
source = { kind = "sandbox", service = "system.ai.sandbox" }
|
|
860
|
-
policy = { downscope = [{ resource = "
|
|
881
|
+
policy = { downscope = [{ resource = "volume:main.data.files", permission = "read_only" }], databricks_access_token_included = true }
|
|
861
882
|
```
|
|
862
883
|
|
|
884
|
+
Table sandbox scopes are not supported yet because Databricks Connect does not support table
|
|
885
|
+
downscoping. Workspace sandbox scopes are also not supported yet; they have not been validated
|
|
886
|
+
against a live workspace. Use a volume instead. Existing `table:` and `workspace:` entries must be
|
|
887
|
+
removed from `agent.toml` before using `agentbricks dev` or `agentbricks deploy`.
|
|
888
|
+
|
|
889
|
+
The table implementation is retained behind a disabled code-level gate so it can be enabled when
|
|
890
|
+
Databricks Connect supports table downscoping. There is no CLI option to bypass that gate.
|
|
891
|
+
|
|
863
892
|
With `databricks_access_token_included = true`, the sandbox receives `DATABRICKS_HOST`, a short-lived
|
|
864
893
|
`DATABRICKS_TOKEN`, and `DATABRICKS_AUTH_TYPE`, so code such as
|
|
865
894
|
`WorkspaceClient().current_user.me()` can call workspace APIs. This policy does not choose the
|
{databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/app.py
RENAMED
|
@@ -16,12 +16,13 @@ from databricks_agentbricks.cli.deploy import deploy, deployments
|
|
|
16
16
|
from databricks_agentbricks.cli.dev import dev
|
|
17
17
|
from databricks_agentbricks.cli.doctor import doctor
|
|
18
18
|
from databricks_agentbricks.cli.endpoint import endpoint
|
|
19
|
-
from databricks_agentbricks.cli.help import configure_help
|
|
20
19
|
from databricks_agentbricks.cli.init import init
|
|
21
20
|
from databricks_agentbricks.cli.memory import memory
|
|
22
21
|
from databricks_agentbricks.cli.sessions import sessions
|
|
23
22
|
from databricks_agentbricks.cli.tools import tools
|
|
24
23
|
from databricks_agentbricks.cli.tracing import tracing
|
|
24
|
+
from databricks_agentbricks.clients.api_client_provider import ApiClientProvider
|
|
25
|
+
from databricks_agentbricks.presentation.help import configure_help
|
|
25
26
|
from databricks_agentkit._api_client import _AgentBricksApiClient
|
|
26
27
|
|
|
27
28
|
|
|
@@ -31,12 +32,11 @@ class CliContext:
|
|
|
31
32
|
def __init__(self, profile: Optional[str], output: str):
|
|
32
33
|
self.profile = profile
|
|
33
34
|
self.output = output
|
|
34
|
-
self.
|
|
35
|
+
self.api_client_provider = ApiClientProvider(profile)
|
|
35
36
|
|
|
36
37
|
def client(self) -> _AgentBricksApiClient:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return self._client
|
|
38
|
+
"""Compatibility accessor for commands not yet migrated to ``api_client_provider``."""
|
|
39
|
+
return self.api_client_provider.get()
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
@click.group(name="agentbricks", context_settings={"help_option_names": ["-h", "--help"]})
|
{databricks_agentbricks-0.4.0 → databricks_agentbricks-0.5.0}/src/databricks_agentbricks/cli/auth.py
RENAMED
|
@@ -19,8 +19,8 @@ from typing import Optional
|
|
|
19
19
|
|
|
20
20
|
import click
|
|
21
21
|
|
|
22
|
-
from databricks_agentbricks import render
|
|
23
22
|
from databricks_agentbricks.errors import AgentCliError
|
|
23
|
+
from databricks_agentbricks.presentation import render
|
|
24
24
|
from databricks_agentkit._api_client import _AgentBricksApiClient
|
|
25
25
|
|
|
26
26
|
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"""`agentbricks deploy` and the `agentbricks deployments` group — manage agent deployments.
|
|
2
|
+
|
|
3
|
+
`agentbricks deploy` is the integrated entry point: it provisions the memory/session stores
|
|
4
|
+
bound in `agent.toml`, grants the app's service principal access to them, then rolls out
|
|
5
|
+
the deployment. Agent Bricks Runtime deployments receive a persistent Runtime Store; a temporary rollout
|
|
6
|
+
switch chooses between the legacy per-app Lakebase project and the service-managed database.
|
|
7
|
+
`agent.toml` is the CLI's authoring source, resolved here into the `AGENT_MEMORY_STORE` /
|
|
8
|
+
`AGENT_SESSION_STORE` env vars written into `app.yaml` — the runtime reads those, never
|
|
9
|
+
`agent.toml`. `agentbricks deployments` covers the lifecycle verbs
|
|
10
|
+
(`list`/`get`/`logs`/`start`/`stop`/`delete`).
|
|
11
|
+
|
|
12
|
+
Every verb here is a thin adapter: it builds a `DeployService` from the CLI context, handles any
|
|
13
|
+
terminal confirmation, calls one method, and hands the raw result to a presenter. The work itself
|
|
14
|
+
lives in the service and its collaborators,
|
|
15
|
+
including driving the Databricks Apps runtime via the `databricks apps` CLI (an implementation detail
|
|
16
|
+
that is not part of the Agent Bricks CLI surface).
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
from __future__ import annotations
|
|
20
|
+
|
|
21
|
+
import click
|
|
22
|
+
|
|
23
|
+
from databricks_agentbricks.clients.apps_client import AppsClient
|
|
24
|
+
from databricks_agentbricks.clients.apps_user_auth_client import AppsUserAuthClient
|
|
25
|
+
from databricks_agentbricks.clients.conversation_store_client import (
|
|
26
|
+
MemoryStoreClient,
|
|
27
|
+
SessionStoreClient,
|
|
28
|
+
)
|
|
29
|
+
from databricks_agentbricks.clients.databricks_cli import _databricks
|
|
30
|
+
from databricks_agentbricks.clients.tracing_client import TracingClient
|
|
31
|
+
from databricks_agentbricks.presentation import render
|
|
32
|
+
from databricks_agentbricks.presentation.deploy import (
|
|
33
|
+
present_deleted,
|
|
34
|
+
present_deploy_result,
|
|
35
|
+
present_deployment_detail,
|
|
36
|
+
present_deployments_list,
|
|
37
|
+
present_started,
|
|
38
|
+
present_stopped,
|
|
39
|
+
)
|
|
40
|
+
from databricks_agentbricks.presentation.reporter import ClickReporter
|
|
41
|
+
from databricks_agentbricks.projects.resolver import ProjectResolver
|
|
42
|
+
from databricks_agentbricks.services.deploy_service import DeployRequest, DeployService
|
|
43
|
+
from databricks_agentbricks.services.deployment.config import (
|
|
44
|
+
_DEFAULT_PIP_INDEX_URL,
|
|
45
|
+
_USE_MANAGED_RUNTIME_STORE,
|
|
46
|
+
TRACES_EXPERIMENT_ID_ENV, # noqa: F401 - compatibility re-export
|
|
47
|
+
TRACES_TRACKING_URI_ENV, # noqa: F401 - compatibility re-export
|
|
48
|
+
MlflowTracingConfig, # noqa: F401 - compatibility re-export
|
|
49
|
+
mlflow_tracing_config, # noqa: F401 - compatibility re-export
|
|
50
|
+
)
|
|
51
|
+
from databricks_agentbricks.services.deployment.names import (
|
|
52
|
+
DeploymentName,
|
|
53
|
+
_prefixed_name, # noqa: F401 - compatibility re-export
|
|
54
|
+
)
|
|
55
|
+
from databricks_agentbricks.services.deployment.provisioners import (
|
|
56
|
+
AppProvisioner,
|
|
57
|
+
MemoryStoreProvisioner,
|
|
58
|
+
RuntimeStoreProvisioner,
|
|
59
|
+
SessionStoreProvisioner,
|
|
60
|
+
TracingProvisioner,
|
|
61
|
+
)
|
|
62
|
+
from databricks_agentbricks.services.deployment.tool_access_provisioner import ToolAccessProvisioner
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def build_deploy_service(obj) -> DeployService:
|
|
66
|
+
"""Compose a deployment service for this CLI invocation without opening an API client."""
|
|
67
|
+
api_client_provider = obj.api_client_provider
|
|
68
|
+
apps_client = AppsClient(obj.profile, runner=_databricks)
|
|
69
|
+
apps_user_auth_client = AppsUserAuthClient(obj.profile)
|
|
70
|
+
reporter = ClickReporter()
|
|
71
|
+
return DeployService(
|
|
72
|
+
project_resolver=ProjectResolver(),
|
|
73
|
+
apps_client=apps_client,
|
|
74
|
+
api_client_provider=api_client_provider,
|
|
75
|
+
app_provisioner=AppProvisioner(
|
|
76
|
+
apps_client, api_client_provider, apps_user_auth_client, reporter
|
|
77
|
+
),
|
|
78
|
+
memory_store_provisioner=MemoryStoreProvisioner(
|
|
79
|
+
MemoryStoreClient(api_client_provider), reporter
|
|
80
|
+
),
|
|
81
|
+
session_store_provisioner=SessionStoreProvisioner(
|
|
82
|
+
SessionStoreClient(api_client_provider), reporter
|
|
83
|
+
),
|
|
84
|
+
tracing_provisioner=TracingProvisioner(
|
|
85
|
+
TracingClient(api_client_provider, apps_client, obj.profile), reporter
|
|
86
|
+
),
|
|
87
|
+
runtime_store_provisioner=RuntimeStoreProvisioner(
|
|
88
|
+
api_client_provider, apps_client, obj.profile, _USE_MANAGED_RUNTIME_STORE, reporter
|
|
89
|
+
),
|
|
90
|
+
tool_access_provisioner=ToolAccessProvisioner(apps_client, obj.profile, reporter),
|
|
91
|
+
reporter=reporter,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
# --- agentbricks deploy -----------------------------------------------------------
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
@click.command()
|
|
99
|
+
@click.argument("name", required=False)
|
|
100
|
+
@click.option(
|
|
101
|
+
"--source",
|
|
102
|
+
default=".",
|
|
103
|
+
type=click.Path(exists=True, file_okay=False),
|
|
104
|
+
help="Local source directory for the deployment (containing app.yaml). Defaults to the "
|
|
105
|
+
"current directory.",
|
|
106
|
+
)
|
|
107
|
+
@click.option(
|
|
108
|
+
"--pip-index-url",
|
|
109
|
+
default=_DEFAULT_PIP_INDEX_URL,
|
|
110
|
+
show_default=True,
|
|
111
|
+
help="Base URL of the Python Package Index. Defaults to public PyPI.",
|
|
112
|
+
)
|
|
113
|
+
@click.option(
|
|
114
|
+
"--workspace-path",
|
|
115
|
+
default=None,
|
|
116
|
+
help="Workspace destination for the synced source (defaults to a per-user path).",
|
|
117
|
+
)
|
|
118
|
+
@click.option(
|
|
119
|
+
"--instances",
|
|
120
|
+
"instance_count",
|
|
121
|
+
type=click.IntRange(min=1, max=5),
|
|
122
|
+
default=None,
|
|
123
|
+
help="Number of deployment instances.",
|
|
124
|
+
)
|
|
125
|
+
@click.option(
|
|
126
|
+
"--allow-user-scope-update",
|
|
127
|
+
is_flag=True,
|
|
128
|
+
help="Allow Agent Bricks to add missing user API scopes to an existing App from managed-tool "
|
|
129
|
+
"inference and [auth.user] additions. Once added, later deploys do not need this flag.",
|
|
130
|
+
)
|
|
131
|
+
@click.pass_obj
|
|
132
|
+
def deploy(
|
|
133
|
+
obj,
|
|
134
|
+
name,
|
|
135
|
+
source,
|
|
136
|
+
pip_index_url,
|
|
137
|
+
workspace_path,
|
|
138
|
+
instance_count,
|
|
139
|
+
allow_user_scope_update,
|
|
140
|
+
) -> None:
|
|
141
|
+
"""Deploy your agent to Databricks Apps and get back a hosted URL to try it.
|
|
142
|
+
|
|
143
|
+
Rolls the agent out to Databricks Apps and prints the URL where you (or anyone you share it with)
|
|
144
|
+
can use it. The deployed agent reaches Databricks model serving through the AI Gateway using the
|
|
145
|
+
app's own identity — no model keys to configure — and `deploy` also reconciles the stores declared
|
|
146
|
+
in agent.toml and wires in any tracing.
|
|
147
|
+
|
|
148
|
+
NAME is recorded in agent.toml on the first deploy, so a later `agentbricks deploy` from the project
|
|
149
|
+
directory can omit it (passing NAME again updates the recorded name). New apps are named
|
|
150
|
+
`agent-bricks-<name>`. Use the full app name with the `agentbricks deployments` commands.
|
|
151
|
+
|
|
152
|
+
Any memory/session store declared in agent.toml (for example, by `agentbricks memory/sessions bind`)
|
|
153
|
+
is created if it doesn't exist yet; agent.toml itself is never modified for stores.
|
|
154
|
+
|
|
155
|
+
Scaling to multiple instances (--instances) uses best-effort sticky routing, so a browser
|
|
156
|
+
session automatically stays on one instance.
|
|
157
|
+
|
|
158
|
+
\b
|
|
159
|
+
To keep a session on one app replica (sticky routing), API clients must resend a stable
|
|
160
|
+
UUID (for example, their session id) in the X-Routing-Key request header on every request.
|
|
161
|
+
The header is a routing hint only - non-blank, no more than 128 UTF-8 bytes, used verbatim -
|
|
162
|
+
not authentication and not the session id itself (send the session id in the request body):
|
|
163
|
+
X-Routing-Key: <uuid>
|
|
164
|
+
"""
|
|
165
|
+
request = DeployRequest(
|
|
166
|
+
name=name,
|
|
167
|
+
source=source,
|
|
168
|
+
pip_index_url=pip_index_url,
|
|
169
|
+
workspace_path=workspace_path,
|
|
170
|
+
instance_count=instance_count,
|
|
171
|
+
allow_user_scope_update=allow_user_scope_update,
|
|
172
|
+
)
|
|
173
|
+
result = build_deploy_service(obj).deploy(request)
|
|
174
|
+
present_deploy_result(result, output=obj.output)
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
# --- agentbricks deployments <lifecycle> ------------------------------------------
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
@click.group()
|
|
181
|
+
def deployments() -> None:
|
|
182
|
+
"""Inspect and manage deployed agents: list, get, stream logs, start, stop, or delete."""
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
@deployments.command("list")
|
|
186
|
+
@click.pass_obj
|
|
187
|
+
def deployments_list(obj) -> None:
|
|
188
|
+
"""List Agent Bricks deployments (apps named `agent-bricks-*`)."""
|
|
189
|
+
present_deployments_list(build_deploy_service(obj).list_deployments(), output=obj.output)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
@deployments.command("get")
|
|
193
|
+
@click.argument("name", type=DeploymentName)
|
|
194
|
+
@click.pass_obj
|
|
195
|
+
def deployments_get(obj, name) -> None:
|
|
196
|
+
"""Get an agent deployment's details."""
|
|
197
|
+
present_deployment_detail(build_deploy_service(obj).get(name), name, output=obj.output)
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
@deployments.command("logs")
|
|
201
|
+
@click.argument("name", type=DeploymentName)
|
|
202
|
+
@click.pass_obj
|
|
203
|
+
def deployments_logs(obj, name) -> None:
|
|
204
|
+
"""Stream a deployment's logs."""
|
|
205
|
+
build_deploy_service(obj).logs(name)
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
@deployments.command("start")
|
|
209
|
+
@click.argument("name", type=DeploymentName)
|
|
210
|
+
@click.pass_obj
|
|
211
|
+
def deployments_start(obj, name) -> None:
|
|
212
|
+
"""Start a deployment."""
|
|
213
|
+
build_deploy_service(obj).start(name)
|
|
214
|
+
present_started(name, output=obj.output)
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
@deployments.command("stop")
|
|
218
|
+
@click.argument("name", type=DeploymentName)
|
|
219
|
+
@click.option("--yes", "-y", is_flag=True, help="Skip the confirmation prompt.")
|
|
220
|
+
@click.pass_obj
|
|
221
|
+
def deployments_stop(obj, name, yes) -> None:
|
|
222
|
+
"""Stop a deployment."""
|
|
223
|
+
if not yes:
|
|
224
|
+
click.confirm(
|
|
225
|
+
f"Stop deployment '{name}'? This cannot be undone.", default=False, abort=True
|
|
226
|
+
)
|
|
227
|
+
build_deploy_service(obj).stop(name)
|
|
228
|
+
present_stopped(name, output=obj.output)
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
@deployments.command("delete")
|
|
232
|
+
@click.argument("name", type=DeploymentName)
|
|
233
|
+
@click.option("--yes", "-y", is_flag=True, help="Skip the confirmation prompt.")
|
|
234
|
+
@click.pass_obj
|
|
235
|
+
def deployments_delete(obj, name, yes) -> None:
|
|
236
|
+
"""Delete a deployment and, when managed provisioning is enabled, its Runtime Store."""
|
|
237
|
+
service = build_deploy_service(obj)
|
|
238
|
+
target = f"deployment '{name}'"
|
|
239
|
+
if not yes and service.deletes_runtime_store_data():
|
|
240
|
+
target += " and its Runtime Store data"
|
|
241
|
+
render.confirm_destroy(target, assume_yes=yes)
|
|
242
|
+
service.delete(name)
|
|
243
|
+
present_deleted(name, output=obj.output)
|