databricks-agentbricks 0.2.0__tar.gz → 0.4.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.2.0 → databricks_agentbricks-0.4.0}/PKG-INFO +272 -140
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/README.md +269 -138
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/pyproject.toml +4 -3
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/_group.py +2 -2
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/agent_project.py +30 -8
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/app_resources.py +395 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/__init__.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/app.py +7 -5
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/app_auth.py +11 -8
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/auth.py +5 -5
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/deploy.py +137 -52
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/dev.py +29 -29
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/doctor.py +1127 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/endpoint.py +14 -9
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/endpoint_examples.py +3 -3
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/help.py +187 -98
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/init.py +14 -12
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/mcp.py +2 -2
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/memory.py +16 -12
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/cli/pipeline.py +200 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/sandbox.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/sessions.py +13 -13
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/tools.py +41 -16
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/tracing.py +270 -81
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/errors.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/lakebase_runtime_store.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/project_config.py +3 -3
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-bricks-migrate/SKILL.md +11 -8
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/AGENTKIT_CONTRACT.md +11 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/AGENTS.md +2 -2
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/README.md +20 -17
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/agent.py +3 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/app.yaml +2 -2
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/pyproject.toml +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/adapter.py +24 -14
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/main.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_agent.py +21 -4
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/AGENTKIT_CONTRACT.md +7 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/AGENTS.md +12 -10
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/README.md +19 -16
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/app.yaml +2 -2
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/pyproject.toml +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/runtime/adapter.py +8 -11
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/runtime/main.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_agent.py +10 -5
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/README.md +3 -3
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/pyproject.toml +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/runtime/main.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-openai/README.md +3 -3
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-openai/pyproject.toml +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-openai/runtime/main.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/CHAT_APP.md +4 -4
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/runtime/main.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/runtime/ui.py +4 -6
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/tests/test_demo_ui.py +42 -4
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/app.js +22 -17
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-openai/CHAT_APP.md +4 -4
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-openai/runtime/main.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-openai/runtime/ui.py +4 -6
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-openai/tests/test_demo_ui.py +42 -4
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/app.js +21 -16
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/tool_access.py +364 -0
- databricks_agentbricks-0.4.0/src/databricks_agentbricks/trace_tables.py +36 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/_api_client.py +80 -2
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/langgraph/mcp.py +2 -2
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/langgraph/memory.py +1 -1
- databricks_agentbricks-0.4.0/src/databricks_agentkit/langgraph/responses.py +40 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/langgraph/session_store.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/openai/mcp.py +9 -9
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/openai/memory.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/openai/sessions.py +1 -1
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/ARCHITECTURE.md +20 -3
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/README.md +23 -18
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/app.py +47 -22
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/auth.py +18 -5
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/durability/execution.py +42 -14
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/durability/lakebase_runtime_store.py +224 -45
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/execution.py +49 -14
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/runtime.py +39 -13
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/store.py +113 -18
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/tool_manifest.py +106 -9
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/types.py +9 -3
- databricks_agentbricks-0.2.0/src/databricks_agentbricks/app_resources.py +0 -139
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/.gitignore +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/NOTICE +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/endpoint_output.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/endpoint_request.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/cli/endpoint_transport.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/databricks_cli.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/legacy_lakebase_runtime_store.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/project_types.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/py.typed +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/render.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/.env.example +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/.gitignore +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/CLAUDE.md +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/mcps.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/sample_tool.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/send_message.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_workspace.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/.env.example +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/.gitignore +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/CLAUDE.md +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/agent/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/agent/agent.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/agent/mcps.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/sample_tool.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/send_message.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/tests/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_workspace.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/.env.example +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/.gitignore +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/agent/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/agent/agent.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/app.yaml +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-openai/.env.example +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-openai/.gitignore +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-openai/agent/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-openai/agent/agent.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-openai/app.yaml +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-openai/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/custom-agent-openai/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/sandbox_mcp.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/sandbox_mcp_langgraph.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/agentbricks-mark.png +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/index.html +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/styles.css +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/agentbricks-mark.png +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/index.html +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/styles.css +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentbricks/theme.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/_pagination.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/client.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/langgraph/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/langgraph/genie.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/memory_store.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/models.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/openai/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/openai/genie.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/py.typed +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/durability/__init__.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/durability/heartbeat.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/durability/recovery.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/durability/store.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/genie.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/mcp_auth.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/model_services.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/session_store_client.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/tracing.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/runtime/workspace.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.0}/src/databricks_agentkit/session_store.py +0 -0
- {databricks_agentbricks-0.2.0 → databricks_agentbricks-0.4.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.4.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
|
|
@@ -10,6 +10,7 @@ Requires-Dist: databricks-ai-bridge[memory]>=0.22.0
|
|
|
10
10
|
Requires-Dist: databricks-sdk>=0.124.0
|
|
11
11
|
Requires-Dist: fastapi>=0.129.0
|
|
12
12
|
Requires-Dist: mlflow-skinny>=3.10.1
|
|
13
|
+
Requires-Dist: packaging>=23.2
|
|
13
14
|
Requires-Dist: psycopg[binary]>=3.1
|
|
14
15
|
Requires-Dist: pyyaml>=6.0
|
|
15
16
|
Requires-Dist: rich>=13.7
|
|
@@ -20,7 +21,7 @@ Requires-Dist: uvicorn>=0.20.0
|
|
|
20
21
|
Provides-Extra: langgraph
|
|
21
22
|
Requires-Dist: databricks-agents>=1.9.3; extra == 'langgraph'
|
|
22
23
|
Requires-Dist: databricks-langchain>=0.17.0; extra == 'langgraph'
|
|
23
|
-
Requires-Dist: langchain-mcp-adapters>=0.
|
|
24
|
+
Requires-Dist: langchain-mcp-adapters>=0.3.0; extra == 'langgraph'
|
|
24
25
|
Requires-Dist: langchain>=1.0.0; extra == 'langgraph'
|
|
25
26
|
Requires-Dist: langgraph>=1.1.0; extra == 'langgraph'
|
|
26
27
|
Requires-Dist: mlflow>=3.10.1; extra == 'langgraph'
|
|
@@ -33,7 +34,7 @@ Requires-Dist: openai-agents>=0.8.0; extra == 'openai'
|
|
|
33
34
|
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.25.0; extra == 'openai'
|
|
34
35
|
Description-Content-Type: text/markdown
|
|
35
36
|
|
|
36
|
-
# Agent Bricks CLI (`
|
|
37
|
+
# Agent Bricks CLI (`agentbricks`)
|
|
37
38
|
|
|
38
39
|
Agent Bricks CLI is an experimental command-line interface for building and deploying custom
|
|
39
40
|
agents on Databricks. It manages memory, sessions, tracing, and deployments from one authenticated
|
|
@@ -60,17 +61,17 @@ invocation protocol to design yourself. Bring your own agent, or start from a te
|
|
|
60
61
|
|
|
61
62
|

|
|
62
63
|
|
|
63
|
-
- **Agent project** - `
|
|
64
|
+
- **Agent project** - `agentbricks init` scaffolds a deployable project from a framework template
|
|
64
65
|
(LangGraph or OpenAI Agents) with the runtime, tests, and an optional chat UI wired up; you edit
|
|
65
66
|
the application code (model, tools, prompts).
|
|
66
67
|
- **`agent.toml`** - the declarative source of truth for the Databricks-managed infrastructure your
|
|
67
68
|
agent depends on: tool bindings (data sandbox, managed MCP services, Unity Catalog functions) and
|
|
68
|
-
memory, session, and durability resources. `
|
|
69
|
+
memory, session, and durability resources. `agentbricks deploy` reads it to provision and wire everything
|
|
69
70
|
up (detailed under [Agent tools](#agent-tools)).
|
|
70
|
-
- **`
|
|
71
|
+
- **`agentbricks deploy`** - provisions the bound stores, grants the app's service principal access to
|
|
71
72
|
them, provisions the durable-runtime database when durability is on, configures tracing, and rolls
|
|
72
|
-
out the app. `
|
|
73
|
-
- **`
|
|
73
|
+
out the app. `agentbricks deployments` covers the lifecycle (list, get, logs, start, stop, delete).
|
|
74
|
+
- **`agentbricks dev`** - runs your agent from the same manifest the deployment uses, so local behavior
|
|
74
75
|
matches what ships.
|
|
75
76
|
|
|
76
77
|
**Runtime**
|
|
@@ -83,28 +84,28 @@ The two ways to run an agent:
|
|
|
83
84
|
invocation contract (synchronous, streaming, background). Enable the durable runtime so
|
|
84
85
|
long-running and background work survives restarts, redeploys, and crashes. The framework
|
|
85
86
|
templates are thin layers over `DurableAgentServer` (HTTP contract detailed under [Runtime](#runtime)).
|
|
86
|
-
- **Custom server - generic, full control.** `
|
|
87
|
+
- **Custom server - generic, full control.** `agentbricks init --server custom` scaffolds a minimal FastAPI
|
|
87
88
|
server with no `DurableAgentServer`: you define your own endpoints, request/response shapes, and protocol.
|
|
88
|
-
`
|
|
89
|
+
`agentbricks dev` and `agentbricks deploy` run and ship it the same way.
|
|
89
90
|
|
|
90
91
|
## Prerequisites
|
|
91
92
|
|
|
92
|
-
- **Python ≥3.10** — the `
|
|
93
|
-
`memory`, `sessions`, `tools`, and `
|
|
93
|
+
- **Python ≥3.10** — the `agentbricks` CLI installs and runs on any Python 3.10+. The
|
|
94
|
+
`memory`, `sessions`, `tools`, and `agentbricks tracing bind`/`unbind` commands need nothing else.
|
|
94
95
|
- **[`uv`](https://docs.astral.sh/uv/)** — needed to scaffold, run, and deploy an
|
|
95
|
-
agent (`
|
|
96
|
+
agent (`agentbricks init` → `agentbricks dev` → `agentbricks deploy`): the scaffolded project builds
|
|
96
97
|
its environment and launches with `uv run`, both locally and in the deployed Apps
|
|
97
|
-
runtime. The store/session/tools commands and `
|
|
98
|
-
`
|
|
98
|
+
runtime. The store/session/tools commands and `agentbricks tracing bind`/`unbind` don't need it;
|
|
99
|
+
`agentbricks tracing list`/`get` do, to read `agentbricks dev`'s local trace store.
|
|
99
100
|
- **[Databricks CLI](https://docs.databricks.com/dev-tools/cli/)** — needed for
|
|
100
|
-
browser-based `
|
|
101
|
+
browser-based `agentbricks login`. If a profile is already authenticated, the CLI uses it
|
|
101
102
|
directly and the Databricks CLI is optional.
|
|
102
103
|
|
|
103
104
|
## Installation
|
|
104
105
|
|
|
105
106
|
From PyPI:
|
|
106
107
|
|
|
107
|
-
The `databricks-agentbricks` Python distribution installs the `
|
|
108
|
+
The `databricks-agentbricks` Python distribution installs the `agentbricks` command and AgentKit.
|
|
108
109
|
|
|
109
110
|
```sh
|
|
110
111
|
pip install databricks-agentbricks
|
|
@@ -122,7 +123,7 @@ declare their framework dependencies automatically.
|
|
|
122
123
|
## Shell completion
|
|
123
124
|
Add this to `~/.zshrc`:
|
|
124
125
|
```sh
|
|
125
|
-
eval "$(
|
|
126
|
+
eval "$(_AGENTBRICKS_COMPLETE=zsh_source agentbricks)"
|
|
126
127
|
```
|
|
127
128
|
|
|
128
129
|
## Authentication
|
|
@@ -131,57 +132,57 @@ Agent Bricks CLI uses [Databricks authentication](https://docs.databricks.com/aw
|
|
|
131
132
|
Ask the CLI to authenticate and remember a named profile:
|
|
132
133
|
|
|
133
134
|
```sh
|
|
134
|
-
|
|
135
|
-
|
|
135
|
+
agentbricks login --profile <profile>
|
|
136
|
+
agentbricks sessions stores list
|
|
136
137
|
```
|
|
137
138
|
|
|
138
|
-
`
|
|
139
|
+
`agentbricks login` validates existing credentials first. If credentials are missing or rejected in
|
|
139
140
|
an interactive terminal, the CLI runs `databricks auth login --profile <profile>`, revalidates the
|
|
140
141
|
profile, and stores the selection in the existing `~/.agentbricks/config.json` state file. This
|
|
141
142
|
browser-based setup requires the Databricks CLI. In non-interactive environments, authenticate the
|
|
142
|
-
profile before running `
|
|
143
|
+
profile before running `agentbricks`. `agentbricks logout` forgets the saved selection without revoking the underlying
|
|
143
144
|
credentials.
|
|
144
145
|
|
|
145
|
-
If Databricks SDK default authentication is already configured, you can skip `
|
|
146
|
+
If Databricks SDK default authentication is already configured, you can skip `agentbricks login`.
|
|
146
147
|
You can also pass the global `--profile/-p` option before an individual command, for example
|
|
147
|
-
`
|
|
148
|
+
`agentbricks --profile <profile> tools list`. Use `--output json` for scripting.
|
|
148
149
|
|
|
149
150
|
## Quickstart
|
|
150
151
|
|
|
151
152
|
The shortest path from a blank directory to a running and deployed agent:
|
|
152
153
|
|
|
153
154
|
```sh
|
|
154
|
-
|
|
155
|
-
|
|
155
|
+
agentbricks login --profile <profile>
|
|
156
|
+
agentbricks init my-agent
|
|
156
157
|
cd my-agent
|
|
157
|
-
|
|
158
|
-
|
|
158
|
+
agentbricks dev # run locally
|
|
159
|
+
agentbricks deploy my-agent # deploy to Databricks
|
|
159
160
|
```
|
|
160
161
|
|
|
161
|
-
`
|
|
162
|
+
`agentbricks dev` runs the agent locally on `http://localhost:8000`, wrapping the Databricks Apps
|
|
162
163
|
local runtime so local behavior matches a deployment.
|
|
163
164
|
|
|
164
|
-
`
|
|
165
|
-
stores declared in `agent.toml`, and grants the app's service principal access to
|
|
166
|
-
|
|
167
|
-
print an app's URL and status.
|
|
165
|
+
`agentbricks deploy my-agent` deploys a Databricks App named `agent-bricks-my-agent`, provisions the
|
|
166
|
+
stores declared in `agent.toml`, and grants the app's service principal access to the stores and
|
|
167
|
+
direct App-auth tool resources declared there. Use `agentbricks deployments list` to find deployed
|
|
168
|
+
apps, and `agentbricks deployments get agent-bricks-my-agent` to print an app's URL and status.
|
|
168
169
|
|
|
169
|
-
`
|
|
170
|
+
`agentbricks init` declares default memory and session stores in `agent.toml`, so the deployed agent has
|
|
170
171
|
long-term memory and durable conversation history. It creates `<name>-<6-letter-token>-memory` and
|
|
171
172
|
`<name>-<6-letter-token>-sessions`, and records both names in `agent.toml`.
|
|
172
|
-
`
|
|
173
|
-
`
|
|
174
|
-
`
|
|
175
|
-
|
|
176
|
-
To exercise the agent (locally under `
|
|
177
|
-
it an HTTP request. MLflow tracing is on by default (`
|
|
178
|
-
`/Shared/agentbricks_traces/<project>` experiment): `
|
|
179
|
-
`.agentbricks/` and `
|
|
173
|
+
`agentbricks deploy` creates them if they don't exist yet. Point the agent at stores you already have with
|
|
174
|
+
`agentbricks memory bind <name>` / `agentbricks sessions bind <name>`, or scaffold without stores using
|
|
175
|
+
`agentbricks init --server custom` (see [Initialize the chat app demo](#initialize-the-chat-app-demo)).
|
|
176
|
+
|
|
177
|
+
To exercise the agent (locally under `agentbricks dev` or once deployed), `agentbricks endpoint invoke` sends
|
|
178
|
+
it an HTTP request. MLflow tracing is on by default (`agentbricks init` binds a default
|
|
179
|
+
`/Shared/agentbricks_traces/<project>` experiment): `agentbricks dev` traces to a local MLflow server under
|
|
180
|
+
`.agentbricks/` and `agentbricks deploy` to the bound workspace experiment; `agentbricks tracing list` shows the
|
|
180
181
|
available traces.
|
|
181
182
|
|
|
182
183
|
## Public names
|
|
183
184
|
|
|
184
|
-
Use `
|
|
185
|
+
Use `agentbricks` for the CLI and `AgentKitClient` from `databricks_agentkit` for the Python SDK. New
|
|
185
186
|
projects store local state under `.agentbricks/` and `~/.agentbricks/`, use
|
|
186
187
|
`server = "agentbricks"` in `agent.toml`, and deploy apps with the `agent-bricks-` prefix.
|
|
187
188
|
|
|
@@ -248,11 +249,11 @@ and return a JSON result. You can also add your own FastAPI endpoints.
|
|
|
248
249
|
Start from a template, edit the agent code in `agent/`, and run it locally before deploying:
|
|
249
250
|
|
|
250
251
|
```sh
|
|
251
|
-
|
|
252
|
+
agentbricks init my-agent --framework langgraph --server agentbricks --profile <profile>
|
|
252
253
|
cd my-agent
|
|
253
|
-
|
|
254
|
+
agentbricks dev
|
|
254
255
|
# Stop the local server when ready to deploy.
|
|
255
|
-
|
|
256
|
+
agentbricks --profile <profile> deploy my-agent
|
|
256
257
|
```
|
|
257
258
|
|
|
258
259
|
Use `--framework openai` for OpenAI Agents. Templates keep agent code separate from the runtime
|
|
@@ -263,12 +264,16 @@ Each managed run is an **invocation**. Send a client-generated UUID `id` and you
|
|
|
263
264
|
```json
|
|
264
265
|
{
|
|
265
266
|
"id": "550e8400-e29b-41d4-a716-446655440000",
|
|
267
|
+
"session_id": "support-case-123",
|
|
266
268
|
"input": {"messages": [{"role": "user", "content": "Hello"}]},
|
|
267
269
|
"background": true,
|
|
268
270
|
"stream": true
|
|
269
271
|
}
|
|
270
272
|
```
|
|
271
273
|
|
|
274
|
+
The optional top-level `session_id` groups invocations into one application session. It is distinct
|
|
275
|
+
from the invocation `id` and from the `X-Routing-Key` sticky-routing header.
|
|
276
|
+
|
|
272
277
|
| Endpoint | Behavior |
|
|
273
278
|
| --- | --- |
|
|
274
279
|
| `POST /api/invocations` | Defaults to synchronous execution: `200` with the result under `output`. `stream: true` returns SSE events. `background: true` returns `202` with a status URL; adding `stream: true` also includes an events URL. |
|
|
@@ -278,8 +283,8 @@ Each managed run is an **invocation**. Send a client-generated UUID `id` and you
|
|
|
278
283
|
The UUID also acts as an idempotency key: repeating the same request reuses the existing invocation
|
|
279
284
|
while its record is retained; using the ID for a different request returns `409`.
|
|
280
285
|
|
|
281
|
-
`
|
|
282
|
-
`[agent].server = "agentbricks"`, `
|
|
286
|
+
`agentbricks dev` keeps execution state in process and loses it on restart. For projects with
|
|
287
|
+
`[agent].server = "agentbricks"`, `agentbricks deploy` provisions a persistent Runtime Store for requests,
|
|
283
288
|
status, events, and results. Register `@app.recover` to restart interrupted app-auth work after
|
|
284
289
|
worker failures. Recovery is at-least-once, so external side effects must be idempotent. Session
|
|
285
290
|
and Memory Stores separately preserve the state used by your agent.
|
|
@@ -289,7 +294,7 @@ workspace's shared Lakebase project and give the app SP ownership. The managed r
|
|
|
289
294
|
tables; no manual Lakebase grant or Postgres app-resource attachment is needed. Backend selection
|
|
290
295
|
is an internal rollout detail, not a user-facing setting; the current implementation retains the legacy
|
|
291
296
|
per-app Lakebase project by default. Once enabled, redeploy reads the stored backend and verifies
|
|
292
|
-
the app identity, and `
|
|
297
|
+
the app identity, and `agentbricks deployments delete` removes the managed store before deleting the app.
|
|
293
298
|
The switch does not migrate existing deployments between backends. Managed cleanup errors retain
|
|
294
299
|
the app for retry. Direct app deletion bypasses managed store cleanup.
|
|
295
300
|
|
|
@@ -300,7 +305,7 @@ is never written to the Runtime Store. A replacement attempt after failure recov
|
|
|
300
305
|
|
|
301
306
|
Use `server = "custom"` to deploy your own HTTP server without provisioning a Runtime Store.
|
|
302
307
|
Changing the server type of an existing deployment is not supported. To use a different server,
|
|
303
|
-
scaffold a new project with the desired `
|
|
308
|
+
scaffold a new project with the desired `agentbricks init --server` option and deploy it under a new name.
|
|
304
309
|
See the [runtime guide](src/databricks_agentkit/runtime/README.md) for agent hooks, full API examples,
|
|
305
310
|
and recovery behavior.
|
|
306
311
|
|
|
@@ -319,7 +324,7 @@ fully managed store for each, both backed by Lakebase and usable from agents bui
|
|
|
319
324
|
later, separate conversations, retrieved by semantic search.
|
|
320
325
|
|
|
321
326
|
The examples below use the [`AgentKitClient` Python SDK](#agentkit-sdk); the same operations are available
|
|
322
|
-
as `
|
|
327
|
+
as `agentbricks sessions` / `agentbricks memory` CLI commands.
|
|
323
328
|
|
|
324
329
|

|
|
325
330
|
|
|
@@ -415,8 +420,8 @@ directly.
|
|
|
415
420
|
In an agent configured with `server = "agentbricks"`, add the memory tools so the model can read and write memory during a run.
|
|
416
421
|
`memory_tools(actor)` exposes `remember` and `recall` bound to one actor's partition; it resolves the
|
|
417
422
|
store from the `[memory_store]` binding, carried to the runtime by the `AGENT_MEMORY_STORE` env var
|
|
418
|
-
that `
|
|
419
|
-
That "no store set" path is also how it runs under `
|
|
423
|
+
that `agentbricks deploy` injects, and returns no tools when no store is set, so the agent runs unchanged.
|
|
424
|
+
That "no store set" path is also how it runs under `agentbricks dev`, which runs locally: memory is off
|
|
420
425
|
there (the store is provisioned and used only at deploy). The OpenAI Agents adapter exposes the same as
|
|
421
426
|
`memory_tools()`:
|
|
422
427
|
|
|
@@ -431,27 +436,27 @@ agent = create_agent(model=..., tools=[*your_tools, *memory_tools(actor)])
|
|
|
431
436
|
> actor's entries. For strict isolation between tenants or users, use a separate store per boundary.
|
|
432
437
|
> Grant another principal — such as your app's service principal — access with
|
|
433
438
|
> `session_store.grant_permission(principal_id)` or `memory_store.grant_permission(principal_id)`;
|
|
434
|
-
> `
|
|
439
|
+
> `agentbricks deploy` does this for the deployed app automatically.
|
|
435
440
|
|
|
436
441
|
### Declaring and provisioning stores
|
|
437
442
|
|
|
438
|
-
For a deployed agent, `agent.toml` declares which stores it uses and `
|
|
439
|
-
you don't create stores by hand. `
|
|
443
|
+
For a deployed agent, `agent.toml` declares which stores it uses and `agentbricks deploy` provisions them —
|
|
444
|
+
you don't create stores by hand. `agentbricks init` declares a default memory and session store named from
|
|
440
445
|
the project; override those names, point at stores you already have, or let `deploy` create them:
|
|
441
446
|
|
|
442
447
|
```sh
|
|
443
448
|
# Scaffold a project with default memory and session stores declared in agent.toml.
|
|
444
|
-
|
|
449
|
+
agentbricks init my-agent
|
|
445
450
|
|
|
446
451
|
# Override the declared store names at init time.
|
|
447
|
-
|
|
452
|
+
agentbricks init my-agent --memory-store support-agent-memory --session-store support-agent-sessions
|
|
448
453
|
|
|
449
454
|
# Or point an existing project at specific stores (edits agent.toml only; creates nothing).
|
|
450
|
-
|
|
451
|
-
|
|
455
|
+
agentbricks sessions bind support-agent-sessions
|
|
456
|
+
agentbricks memory bind support-agent-memory
|
|
452
457
|
|
|
453
458
|
# deploy creates any declared-but-missing store and grants the app's service principal access.
|
|
454
|
-
|
|
459
|
+
agentbricks deploy my-agent
|
|
455
460
|
```
|
|
456
461
|
|
|
457
462
|
Memory and session stores are independent resources: deleting one never affects the other.
|
|
@@ -462,13 +467,14 @@ For the full command reference - every command, subcommand, argument, and option
|
|
|
462
467
|
see [`cli.md`](cli.md). The tree below is a quick overview.
|
|
463
468
|
|
|
464
469
|
```text
|
|
465
|
-
|
|
470
|
+
agentbricks [-p <profile>] [-o text|json]
|
|
466
471
|
login [--profile P]
|
|
467
472
|
logout
|
|
468
473
|
init [--framework openai|langgraph] [--server agentbricks|custom]
|
|
469
474
|
[--disable-chat-app]
|
|
470
475
|
[--memory-store NAME] [--session-store NAME]
|
|
471
476
|
[--existing] [--profile P] [directory]
|
|
477
|
+
doctor [directory]
|
|
472
478
|
dev [--source PATH] [--prepare-environment] [--app-port PORT]
|
|
473
479
|
memory
|
|
474
480
|
bind STORE [--source PATH]
|
|
@@ -485,7 +491,8 @@ ab [-p <profile>] [-o text|json]
|
|
|
485
491
|
unbind [--source PATH]
|
|
486
492
|
list | get [--experiment-name NAME | --experiment-id ID] [--source PATH]
|
|
487
493
|
tools
|
|
488
|
-
add sandbox --scope SCOPE [--scope SCOPE ...]
|
|
494
|
+
add sandbox --scope SCOPE [--scope SCOPE ...]
|
|
495
|
+
[--no-databricks-access-token-included] [--source PATH]
|
|
489
496
|
add mcp SERVICE [--name NAME] [--source PATH]
|
|
490
497
|
add uc-function FUNCTION [--name NAME] [--source PATH]
|
|
491
498
|
add genie-one [--name NAME] [--auth user|app] [--source PATH]
|
|
@@ -504,10 +511,30 @@ ab [-p <profile>] [-o text|json]
|
|
|
504
511
|
From the existing project, prepare a migration for your coding agent:
|
|
505
512
|
|
|
506
513
|
```sh
|
|
507
|
-
|
|
508
|
-
|
|
514
|
+
agentbricks init --framework langgraph --existing .
|
|
515
|
+
agentbricks init --framework openai --existing .
|
|
509
516
|
```
|
|
510
517
|
|
|
518
|
+
Before or after the conversion, inspect its progress without changing the repository or contacting
|
|
519
|
+
Databricks:
|
|
520
|
+
|
|
521
|
+
```sh
|
|
522
|
+
agentbricks doctor .
|
|
523
|
+
agentbricks -o json doctor .
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
Doctor exits 0 only when the project has a valid Agent Bricks manifest and matching project
|
|
527
|
+
metadata, uses the Agent Bricks server, declares the framework-appropriate `databricks-agentbricks`
|
|
528
|
+
extra and a non-empty `app.yaml` command, constructs `DurableAgentServer` with an `invoke` hook, and
|
|
529
|
+
calls a recognized adapter for the selected framework in production Python source. Test, example, and
|
|
530
|
+
old/stale directories do not count as source evidence. A failed report is the normal result for a
|
|
531
|
+
project that still needs migration; run
|
|
532
|
+
`agentbricks init --framework <framework_name> --existing <directory>` with the appropriate framework
|
|
533
|
+
to prepare the migration instructions. Doctor never imports or executes the target's source, and a
|
|
534
|
+
bounded source scan that exceeds a limit is reported while the evidence it already found still counts.
|
|
535
|
+
Its findings are static repository evidence, not proof that the configured startup command executes
|
|
536
|
+
the files it finds.
|
|
537
|
+
|
|
511
538
|
This writes `agent-bricks-migrate/` containing a skill, a prompt to paste into your coding agent,
|
|
512
539
|
`references/migration.json`, and a reference project generated from the templates bundled with the
|
|
513
540
|
installed CLI. The bundle sits outside any single agent's configuration directory; `.claude/skills/`
|
|
@@ -536,19 +563,19 @@ application. Migration supports LangGraph and the OpenAI Agents SDK with the man
|
|
|
536
563
|
|
|
537
564
|
## Invoke HTTP endpoints
|
|
538
565
|
|
|
539
|
-
`
|
|
566
|
+
`agentbricks endpoint invoke` is a low-level HTTP command. It resolves and authenticates a deployed
|
|
540
567
|
Databricks App, or targets localhost and arbitrary servers through `--url`. It does not assume an
|
|
541
568
|
agent protocol: provide the method, path, query parameters, and complete JSON body required by the
|
|
542
569
|
server.
|
|
543
570
|
|
|
544
571
|
```sh
|
|
545
|
-
|
|
572
|
+
agentbricks --profile <profile> endpoint invoke agent-bricks-my-agent \
|
|
546
573
|
--path /api/invocations \
|
|
547
|
-
--json '{"id":"00000000-0000-4000-8000-000000000001","input":[{"role":"user","content":"Hello"}]}'
|
|
574
|
+
--json '{"id":"00000000-0000-4000-8000-000000000001","session_id":"support-case-123","input":[{"role":"user","content":"Hello"}]}'
|
|
548
575
|
|
|
549
|
-
|
|
576
|
+
agentbricks endpoint invoke --url http://localhost:8000 \
|
|
550
577
|
--path /api/invocations \
|
|
551
|
-
--json '{"id":"00000000-0000-4000-8000-000000000001","input":[{"role":"user","content":"Hello"}]}'
|
|
578
|
+
--json '{"id":"00000000-0000-4000-8000-000000000001","session_id":"support-case-123","input":[{"role":"user","content":"Hello"}]}'
|
|
552
579
|
```
|
|
553
580
|
|
|
554
581
|
The JSON body remains explicit even for generated agents. For example, managed runtime agents require
|
|
@@ -556,21 +583,26 @@ a client-generated invocation ID, and streaming servers require their own stream
|
|
|
556
583
|
`--sse` so the CLI consumes the response as Server-Sent Events.
|
|
557
584
|
|
|
558
585
|
```sh
|
|
586
|
+
SESSION_ID=$(uuidgen)
|
|
559
587
|
INVOCATION_ID=$(uuidgen)
|
|
560
|
-
|
|
588
|
+
agentbricks --profile <profile> endpoint invoke agent-bricks-my-agent \
|
|
561
589
|
--path /api/invocations \
|
|
562
|
-
--
|
|
590
|
+
--routing-key "$SESSION_ID" \
|
|
591
|
+
--json "{\"id\":\"$INVOCATION_ID\",\"session_id\":\"$SESSION_ID\",\"input\":[{\"role\":\"user\",\"content\":\"Run the report\"}]}"
|
|
563
592
|
|
|
564
|
-
|
|
593
|
+
INVOCATION_ID=$(uuidgen)
|
|
594
|
+
agentbricks --profile <profile> endpoint invoke agent-bricks-my-agent \
|
|
565
595
|
--path /api/invocations \
|
|
596
|
+
--routing-key "$SESSION_ID" \
|
|
566
597
|
--sse \
|
|
567
|
-
--json "{\"id\":\"$INVOCATION_ID\",\"input\":[{\"role\":\"user\",\"content\":\"Hello\"}],\"stream\":true}"
|
|
598
|
+
--json "{\"id\":\"$INVOCATION_ID\",\"session_id\":\"$SESSION_ID\",\"input\":[{\"role\":\"user\",\"content\":\"Hello\"}],\"stream\":true}"
|
|
568
599
|
```
|
|
569
600
|
|
|
570
|
-
`--
|
|
571
|
-
|
|
572
|
-
session
|
|
573
|
-
|
|
601
|
+
`--routing-key` keeps a session on one app replica (sticky routing): set it to your stable session id
|
|
602
|
+
and it is sent verbatim in the `X-Routing-Key` request header. It is routing only and is never used
|
|
603
|
+
as the session id - put the session id at the top level of the `--json` body for session continuity. This
|
|
604
|
+
also works with a direct App URL and with the generated runtime on localhost. OAuth and session headers are managed by
|
|
605
|
+
the runtime; arbitrary custom request headers are intentionally not exposed by this command.
|
|
574
606
|
|
|
575
607
|
## Command help
|
|
576
608
|
|
|
@@ -578,33 +610,33 @@ Use the conventional help flag at any command level. Every command's help includ
|
|
|
578
610
|
examples:
|
|
579
611
|
|
|
580
612
|
```sh
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
613
|
+
agentbricks --help
|
|
614
|
+
agentbricks deploy --help
|
|
615
|
+
agentbricks sessions items append --help
|
|
584
616
|
```
|
|
585
617
|
|
|
586
618
|
## Agent tools
|
|
587
619
|
|
|
588
|
-
For projects with `[agent].server = "agentbricks"` (the default from `
|
|
620
|
+
For projects with `[agent].server = "agentbricks"` (the default from `agentbricks init`), `agent.toml` is the
|
|
589
621
|
declarative source of truth for Databricks-managed infrastructure: the Runtime Store, sandbox,
|
|
590
|
-
managed MCP, Genie and Unity Catalog function bindings, plus memory and session resources. `
|
|
622
|
+
managed MCP, Genie and Unity Catalog function bindings, plus memory and session resources. `agentbricks tools
|
|
591
623
|
add` updates only this file; direct TOML edits have the same behavior. Both managed-server framework
|
|
592
624
|
adapters read the managed bindings at runtime without generating or patching agent source:
|
|
593
625
|
|
|
594
626
|
```sh
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
627
|
+
agentbricks tools add sandbox --scope table:samples.nyctaxi.trips
|
|
628
|
+
agentbricks tools add mcp system.ai.web_search
|
|
629
|
+
agentbricks tools add uc-function catalog.schema.lookup_ticket
|
|
630
|
+
agentbricks tools add genie-one
|
|
631
|
+
agentbricks tools add genie-agent SPACE_ID
|
|
632
|
+
agentbricks tools remove mcp system.ai.web_search
|
|
633
|
+
agentbricks tools list
|
|
602
634
|
```
|
|
603
635
|
|
|
604
636
|
### Managed tool identity and migration
|
|
605
637
|
|
|
606
|
-
`
|
|
607
|
-
`
|
|
638
|
+
`agentbricks tools add mcp`, `agentbricks tools add sandbox`, `agentbricks tools add genie-one`, and
|
|
639
|
+
`agentbricks tools add genie-agent` write explicit `auth = "user"` by default.
|
|
608
640
|
Use `--auth app` for the App service principal instead. This field is on the tool entry, not
|
|
609
641
|
inside `source` or `policy`:
|
|
610
642
|
|
|
@@ -620,9 +652,79 @@ Managed-tool add commands write the selected identity to `agent.toml`; inspect t
|
|
|
620
652
|
review configured bindings. Missing legacy auth continues to mean App identity at runtime; it is
|
|
621
653
|
never silently upgraded to user identity.
|
|
622
654
|
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
655
|
+
### Automatic App-identity access on deploy
|
|
656
|
+
|
|
657
|
+
`agentbricks deploy` reconciles least-privilege access for resources explicitly declared by App/default
|
|
658
|
+
identity tool bindings. It skips every `auth = "user"` binding because those calls use the request
|
|
659
|
+
user's permissions instead of the App service principal.
|
|
660
|
+
|
|
661
|
+
| Explicit `agent.toml` resource | Automatic App service-principal access |
|
|
662
|
+
| --- | --- |
|
|
663
|
+
| UC function | Apps `uc_securable`: `FUNCTION` / `EXECUTE` |
|
|
664
|
+
| Genie Agent space | Apps `genie_space`: `CAN_RUN` |
|
|
665
|
+
| Sandbox table scope | Apps `uc_securable`: `TABLE` / `SELECT` or `MODIFY` |
|
|
666
|
+
| Sandbox volume scope | Apps `uc_securable`: `VOLUME` / `READ_VOLUME` or `WRITE_VOLUME` |
|
|
667
|
+
| Sandbox Workspace path | Workspace ACL: `CAN_READ` or `CAN_EDIT` |
|
|
668
|
+
| External MCP service | Unity Catalog: effective `EXECUTE` plus `USE_SCHEMA` and `USE_CATALOG` on its named parents |
|
|
669
|
+
| Built-in `system.ai` MCP service, including Sandbox and Genie One | Platform-managed access defaults; Agent Bricks does not mutate system securables |
|
|
670
|
+
|
|
671
|
+
Native Genie One has no resource identifier in its binding, so it does not add a resource-specific
|
|
672
|
+
grant. Use a Genie Agent binding when the App identity should be scoped to one explicit Genie Space.
|
|
673
|
+
|
|
674
|
+
Apps-backed tool resources are named deterministically and reconciled to the manifest on each
|
|
675
|
+
deploy: removing a binding removes that Agent Bricks-owned Apps resource while preserving Runtime
|
|
676
|
+
Store, tracing, and user-owned resources. MCP and Workspace ACL grants are additive in this release
|
|
677
|
+
because their permission APIs do not expose trustworthy Agent Bricks ownership metadata; removing
|
|
678
|
+
those bindings does not revoke an independently valid grant.
|
|
679
|
+
|
|
680
|
+
Only direct resources are automatic. Agent Bricks never discovers or grants tables and warehouses
|
|
681
|
+
used by a Genie Space, objects called by a UC function, or resources wrapped by an MCP service.
|
|
682
|
+
Grant those transitive dependencies manually when the called service uses the App identity. If any
|
|
683
|
+
required direct grant cannot be read, applied, or verified, deploy stops before source upload and
|
|
684
|
+
leaves the currently deployed version untouched.
|
|
685
|
+
|
|
686
|
+
`DurableAgentServer` derives its request-auth policy directly from the managed tool bindings in
|
|
687
|
+
`agent.toml`. Projects do not maintain a separate request-auth contract marker: a managed tool with
|
|
688
|
+
`auth = "user"` requires a transient request-user credential. Code-first tools can declare any
|
|
689
|
+
additional API scopes that Agent Bricks cannot infer from Python:
|
|
690
|
+
|
|
691
|
+
```toml
|
|
692
|
+
[auth.user]
|
|
693
|
+
required = true
|
|
694
|
+
additional_api_scopes = ["sql"]
|
|
695
|
+
```
|
|
696
|
+
|
|
697
|
+
`additional_api_scopes` is additive: deploy unions it with scopes inferred from managed bindings,
|
|
698
|
+
deduplicates the result, and preserves unrelated scopes already configured on the App. Scope names
|
|
699
|
+
are not restricted to a client-side allowlist; Databricks Apps validates whether a requested scope
|
|
700
|
+
is supported. Entries must be non-empty strings without surrounding whitespace or control
|
|
701
|
+
characters, and a non-empty list requires `required = true`. This request-auth contract is supported
|
|
702
|
+
only with `[agent].server = "agentbricks"`.
|
|
703
|
+
|
|
704
|
+
Generated framework adapters pass the request-bound resolver to agent construction. A code-first
|
|
705
|
+
tool should obtain its user client from that resolver inside the active invocation rather than
|
|
706
|
+
creating or persisting a user credential:
|
|
707
|
+
|
|
708
|
+
```python
|
|
709
|
+
from langchain_core.tools import tool
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
def sql_tools(workspace_client_for):
|
|
713
|
+
@tool
|
|
714
|
+
def run_statement(statement: str) -> str:
|
|
715
|
+
client = workspace_client_for("user")
|
|
716
|
+
response = client.statement_execution.execute_statement(
|
|
717
|
+
warehouse_id="...",
|
|
718
|
+
statement=statement,
|
|
719
|
+
)
|
|
720
|
+
return str(response.result)
|
|
721
|
+
|
|
722
|
+
return [run_statement]
|
|
723
|
+
```
|
|
724
|
+
|
|
725
|
+
The resolver is request-bound and closes after the attempt. Agent Bricks does not inject it into
|
|
726
|
+
arbitrary auto-discovered decorated tools; build those tools from the resolver passed to the
|
|
727
|
+
generated request-aware agent function.
|
|
626
728
|
|
|
627
729
|
Request-user invocations use the same synchronous, streaming, background, status, event-replay,
|
|
628
730
|
and idempotency APIs as app-auth invocations. The Runtime Store records only token-free request
|
|
@@ -638,22 +740,28 @@ upgrade copied Python adapter code. Outdated adapters fail closed rather than si
|
|
|
638
740
|
identity. App-only legacy projects and generic bring-your-own source directories keep the existing
|
|
639
741
|
path.
|
|
640
742
|
|
|
641
|
-
Deploy derives Apps user scopes from explicit `auth = "user"` bindings
|
|
743
|
+
Deploy derives Apps user scopes from explicit `auth = "user"` bindings and unions them with
|
|
744
|
+
`[auth.user].additional_api_scopes`:
|
|
642
745
|
|
|
643
746
|
| Binding | Requested Apps scopes |
|
|
644
747
|
| --- | --- |
|
|
645
748
|
| Managed MCP (governed ingress) | `ai-gateway` |
|
|
749
|
+
| `system.ai.dbsql` | `ai-gateway`, `sql` |
|
|
646
750
|
| `system.ai.genie_one_mcp` | `ai-gateway`, `genie` |
|
|
751
|
+
| Sandbox with a Volume downscope | `ai-gateway`, `files` |
|
|
647
752
|
| First-class Genie One or Genie Agent | `genie` |
|
|
753
|
+
| Sandbox with token injection | `ai-gateway`, `workspace.workspace` |
|
|
754
|
+
| Sandbox with token injection disabled | `ai-gateway` |
|
|
648
755
|
|
|
649
756
|
For example, bind Genie tools in a current project with `server = "agentbricks"`:
|
|
650
757
|
|
|
651
758
|
```sh
|
|
652
|
-
|
|
653
|
-
|
|
759
|
+
agentbricks tools add mcp system.ai.genie_one_mcp --auth user
|
|
760
|
+
agentbricks tools add genie-agent SPACE_ID --auth user
|
|
654
761
|
```
|
|
655
762
|
|
|
656
|
-
Mixed bindings request the union. App-auth and legacy bindings add no user
|
|
763
|
+
Mixed bindings and explicit additions request the union. App-auth and legacy bindings add no user
|
|
764
|
+
scopes. These are
|
|
657
765
|
explicit service-consent scopes, not a claim that gateway access alone authorizes the downstream
|
|
658
766
|
resource. OAuth consent does not grant Unity Catalog privileges: the user still needs access to
|
|
659
767
|
the configured Genie Space and its underlying data.
|
|
@@ -663,17 +771,22 @@ initial typed SDK create request before uploading source. An existing App that i
|
|
|
663
771
|
scope needs one-time explicit permission:
|
|
664
772
|
|
|
665
773
|
```sh
|
|
666
|
-
|
|
774
|
+
agentbricks --profile my-workspace deploy my-agent --allow-user-scope-update
|
|
667
775
|
```
|
|
668
776
|
|
|
669
777
|
The `system.ai.dbsql` managed MCP additionally requests the Apps `sql` user scope. This is full SQL
|
|
670
778
|
API consent, not `sql:restricted-query`; read-only enforcement remains the service policy plus the
|
|
671
779
|
requesting user's Unity Catalog grants. DBSQL does not use Databricks Connect.
|
|
672
780
|
|
|
673
|
-
|
|
781
|
+
When a user-auth sandbox has `databricks_access_token_included = true`, it requests the Apps
|
|
782
|
+
`workspace.workspace` user scope so the injected credential can call workspace APIs. A sandbox
|
|
783
|
+
binding with a Volume downscope additionally requests the Apps `files` user scope.
|
|
674
784
|
OAuth consent does not grant Volume access: the requesting user still needs the corresponding
|
|
675
|
-
Unity Catalog privileges, and the sandbox downscope remains authoritative.
|
|
676
|
-
|
|
785
|
+
Unity Catalog privileges, and the sandbox downscope remains authoritative. A sandbox binding with
|
|
786
|
+
token injection disabled does not request `workspace.workspace`; its other resource-derived scopes
|
|
787
|
+
still apply. Databricks Apps rejects the legacy bare `workspace` scope, so Agent Bricks requests
|
|
788
|
+
`workspace.workspace`. These scopes are requested only for `auth = "user"`; `auth = "app"` uses
|
|
789
|
+
the App service principal's permissions instead.
|
|
677
790
|
|
|
678
791
|
Review the target App's scopes and coordinate with its other owners before allowing the update. Once
|
|
679
792
|
those scopes are present, later deploys do not need the flag. The CLI preserves unrelated scopes,
|
|
@@ -700,32 +813,32 @@ for **all** App-auth tools, or deploy those tools separately. Models, custom MCP
|
|
|
700
813
|
Memory/Session Stores, and tracing keep their existing credentials.
|
|
701
814
|
|
|
702
815
|
For MCP services, the remove command accepts the same service name as the add command. You can also
|
|
703
|
-
remove any binding by its `id` in `agent.toml`, for example `
|
|
816
|
+
remove any binding by its `id` in `agent.toml`, for example `agentbricks tools remove web_search`.
|
|
704
817
|
Every successful add (including an already-configured no-op) points you to the target project's
|
|
705
818
|
`agent.toml` to review configured managed tools and MCP bindings. With `--source`, the message
|
|
706
819
|
points to that project's file. JSON add output includes its path in `manifest`.
|
|
707
820
|
|
|
708
|
-
`
|
|
821
|
+
`agentbricks tools list` discovers **available integrations to add**, not configured bindings. By default
|
|
709
822
|
it shows built-in add recipes and caller-visible MCP Services in `system.ai`. A recipe may still
|
|
710
823
|
need your resources: sandbox scopes, a concrete UC function name, or a Genie Space ID. Genie One
|
|
711
824
|
needs no additional argument. `system.ai.sandbox` is represented by its scoped recipe rather than
|
|
712
825
|
a second unscoped add command. The list does not enumerate every workspace schema, individual
|
|
713
826
|
operations inside MCP services, or custom Python tools.
|
|
714
827
|
|
|
715
|
-
`
|
|
716
|
-
Use `
|
|
828
|
+
`agentbricks tools add mcp` looks up the service in the selected workspace before writing `agent.toml`.
|
|
829
|
+
Use `agentbricks --profile <profile> tools add mcp <service>` to select a workspace. A missing service or
|
|
717
830
|
failed lookup (including authentication or permission errors) leaves the project unchanged. This
|
|
718
831
|
checks service metadata access, not whether every tool can be executed at runtime. Removing local
|
|
719
832
|
bindings does not require workspace access.
|
|
720
833
|
|
|
721
834
|
```sh
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
835
|
+
agentbricks tools list
|
|
836
|
+
agentbricks tools list --kind mcp
|
|
837
|
+
agentbricks tools list --kind mcp --schema main.tools
|
|
838
|
+
agentbricks tools list --kind sandbox
|
|
839
|
+
agentbricks tools list --kind genie-one
|
|
840
|
+
agentbricks tools list --kind genie-agent
|
|
841
|
+
agentbricks --output json tools list
|
|
729
842
|
```
|
|
730
843
|
|
|
731
844
|
No agent project is required for discovery. MCP discovery uses your Databricks profile; the
|
|
@@ -739,9 +852,9 @@ runtime execution permissions.
|
|
|
739
852
|
Read `agent.toml` (its `[[tools]]` entries) to inspect configured bindings. Discovery JSON uses
|
|
740
853
|
`schema_version: 2`, with `available_tools` (`name`, `kind`, `add_command`), `mcp_schema` (null for
|
|
741
854
|
local-only recipes), `complete`, and `errors`. Replace old scripts that read configured-list JSON
|
|
742
|
-
with TOML inspection. Replace `
|
|
743
|
-
`
|
|
744
|
-
`
|
|
855
|
+
with TOML inspection. Replace `agentbricks mcp list [--schema catalog.schema]` with
|
|
856
|
+
`agentbricks tools list --kind mcp [--schema catalog.schema]`; the former command is removed. Use
|
|
857
|
+
`agentbricks tools list --help` for the new discovery contract.
|
|
745
858
|
|
|
746
859
|
Read-only live discovery can be checked against the installed wheel without creating a project
|
|
747
860
|
or deploying an agent:
|
|
@@ -762,17 +875,34 @@ code in `agent/mcps.py` and are joined with the managed bindings by `mcp_tools(.
|
|
|
762
875
|
`mcp_servers(...)`.
|
|
763
876
|
|
|
764
877
|
Projects created with `--server custom` do not auto-discover `agent/tools/` or load managed tool
|
|
765
|
-
bindings from `agent.toml`, so `
|
|
878
|
+
bindings from `agent.toml`, so `agentbricks tools add` rejects those projects. Wire framework-native Python
|
|
766
879
|
tools and MCP servers directly in `agent/agent.py` instead.
|
|
767
880
|
|
|
768
881
|
If a manifest with `server = "agentbricks"` contains `source = { kind = "python", ... }`, remove that
|
|
769
|
-
`[[tools]]` entry; the decorated tool in `agent/tools/` remains active. `
|
|
882
|
+
`[[tools]]` entry; the decorated tool in `agent/tools/` remains active. `agentbricks dev` and `agentbricks deploy`
|
|
770
883
|
do not generate or patch Python tool code, and do not alter the manifest's `[[tools]]` bindings.
|
|
771
884
|
|
|
772
885
|
Sandbox scopes default to read-only access. Repeat `--scope` to allow more than one resource, use
|
|
773
886
|
`volume:` or `workspace:` for those resource types, and use `--permission read_write` only when the
|
|
774
887
|
agent needs writes. Every sandbox call carries this fixed downscope in MCP `_meta`, outside the tool
|
|
775
|
-
arguments controlled by the model.
|
|
888
|
+
arguments controlled by the model. New sandbox bindings also expose the selected Databricks
|
|
889
|
+
credential to sandbox code by default:
|
|
890
|
+
|
|
891
|
+
```toml
|
|
892
|
+
[[tools]]
|
|
893
|
+
id = "sandbox"
|
|
894
|
+
auth = "user"
|
|
895
|
+
source = { kind = "sandbox", service = "system.ai.sandbox" }
|
|
896
|
+
policy = { downscope = [{ resource = "workspace:/Workspace/Shared", permission = "read_only" }], databricks_access_token_included = true }
|
|
897
|
+
```
|
|
898
|
+
|
|
899
|
+
With `databricks_access_token_included = true`, the sandbox receives `DATABRICKS_HOST`, a short-lived
|
|
900
|
+
`DATABRICKS_TOKEN`, and `DATABRICKS_AUTH_TYPE`, so code such as
|
|
901
|
+
`WorkspaceClient().current_user.me()` can call workspace APIs. This policy does not choose the
|
|
902
|
+
identity: `auth = "user"` uses the request user's OBO credential, while `auth = "app"` uses the
|
|
903
|
+
Databricks App service principal. Use `--no-databricks-access-token-included` when adding a sandbox that
|
|
904
|
+
does not need workspace API access. Existing manifests that omit `databricks_access_token_included`
|
|
905
|
+
remain disabled until explicitly updated.
|
|
776
906
|
|
|
777
907
|
### Genie tools
|
|
778
908
|
|
|
@@ -781,12 +911,12 @@ Installing the current `databricks-agentbricks` distribution does not configure
|
|
|
781
911
|
capabilities your agent needs:
|
|
782
912
|
|
|
783
913
|
```sh
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
914
|
+
agentbricks tools add genie-one --name genie_one --auth user
|
|
915
|
+
agentbricks tools add genie-agent SPACE_ID --name genie_agent --auth user
|
|
916
|
+
agentbricks tools list --kind genie-one
|
|
917
|
+
agentbricks tools list --kind genie-agent
|
|
918
|
+
agentbricks tools remove genie_one
|
|
919
|
+
agentbricks tools remove genie_agent
|
|
790
920
|
```
|
|
791
921
|
|
|
792
922
|
`--name` is optional and defaults to `genie_one` or `genie_agent`, respectively. `--auth` defaults
|
|
@@ -795,7 +925,7 @@ without `auth` preserve App/default identity. Both add commands and `remove` acc
|
|
|
795
925
|
to select a project instead of the current directory. Discovery needs no project; read that
|
|
796
926
|
project's `agent.toml` to inspect configured bindings. For scripted output, put the global
|
|
797
927
|
`-o json` option before `tools`, as in
|
|
798
|
-
`
|
|
928
|
+
`agentbricks -o json tools add genie-one --source ./my-agent`. Adding a binding is offline: it updates
|
|
799
929
|
`agent.toml` without contacting Genie or checking permissions. The corresponding sources are:
|
|
800
930
|
|
|
801
931
|
```toml
|
|
@@ -856,11 +986,11 @@ It is included by default for `--framework langgraph`; pass `--disable-chat-app`
|
|
|
856
986
|
API-only backend instead.
|
|
857
987
|
|
|
858
988
|
```sh
|
|
859
|
-
|
|
989
|
+
agentbricks init --framework langgraph \
|
|
860
990
|
--profile <profile> \
|
|
861
991
|
./my-agent
|
|
862
992
|
cd ./my-agent
|
|
863
|
-
|
|
993
|
+
agentbricks dev
|
|
864
994
|
```
|
|
865
995
|
|
|
866
996
|
The chat app includes synchronous, SSE streaming, background polling, Session Store, Memory Store,
|
|
@@ -870,20 +1000,22 @@ and HITL resume UI. The framework-specific overlay adds `ui/`, `runtime/ui.py`,
|
|
|
870
1000
|
For the full deployed demo, bind both managed stores, then deploy:
|
|
871
1001
|
|
|
872
1002
|
```sh
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
1003
|
+
agentbricks sessions bind agent-bricks-demo-sessions
|
|
1004
|
+
agentbricks memory bind agent-bricks-demo-memory
|
|
1005
|
+
agentbricks --profile <profile> deploy agent-bricks-agent-demo --source .
|
|
876
1006
|
```
|
|
877
1007
|
|
|
878
|
-
(`bind` declares the store name in `agent.toml`; `
|
|
1008
|
+
(`bind` declares the store name in `agent.toml`; `agentbricks deploy` creates any declared-but-missing
|
|
879
1009
|
store and grants the app's service principal access to it. The memory store id flows to the runtime
|
|
880
|
-
via the `AGENT_MEMORY_STORE` env var that `deploy` injects; `
|
|
1010
|
+
via the `AGENT_MEMORY_STORE` env var that `deploy` injects; `agentbricks dev` runs locally with memory off
|
|
881
1011
|
and does not inject it. The id is not persisted in `agent.toml`.)
|
|
882
1012
|
|
|
883
|
-
The chat UI generates a stable application session UUID in browser local storage,
|
|
884
|
-
|
|
885
|
-
`
|
|
886
|
-
|
|
1013
|
+
The chat UI generates a stable application session UUID in browser local storage, sends it as the
|
|
1014
|
+
invocation's top-level `session_id`, and creates a fresh invocation UUID per turn. The chat app also
|
|
1015
|
+
sends this session UUID in the `X-Routing-Key` request header, which is used verbatim to pin
|
|
1016
|
+
the session to one app replica (it must be non-blank and no more than 128 UTF-8 bytes). The header is neither
|
|
1017
|
+
authentication nor the template's application session state; it is independent sticky-routing
|
|
1018
|
+
plumbing.
|
|
887
1019
|
|
|
888
1020
|
The generated `README.md` documents every request the client makes: config discovery, sync and SSE
|
|
889
1021
|
invocations, background submission and polling, session transcript loading, HITL resume, and memory
|
|
@@ -892,6 +1024,6 @@ sync/streaming/background transport selector is manual.
|
|
|
892
1024
|
|
|
893
1025
|
## Contributing
|
|
894
1026
|
|
|
895
|
-
Developing Agent Bricks CLI (`
|
|
896
|
-
test unreleased changes on `
|
|
1027
|
+
Developing Agent Bricks CLI (`agentbricks`), AgentKit, the runtime, and templates - plus the local dev loop and how to
|
|
1028
|
+
test unreleased changes on `agentbricks dev` and `agentbricks deploy`, is covered in
|
|
897
1029
|
[CONTRIBUTING.md](CONTRIBUTING.md).
|