databricks-agentbricks 0.5.0__tar.gz → 0.6.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.5.0 → databricks_agentbricks-0.6.0}/PKG-INFO +151 -22
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/README.md +148 -19
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/pyproject.toml +3 -3
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/agent_hint.py +62 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/app.py +5 -1
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/deploy.py +4 -0
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/cli/experimental.py +21 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/init.py +12 -3
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/cli/models.py +281 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/pipeline.py +76 -3
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/cli/prompts.py +138 -0
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/cli/telemetry.py +429 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/tools.py +3 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/clients/apps_client.py +35 -6
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/clients/apps_user_auth_client.py +4 -1
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/clients/databricks_cli.py +3 -1
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/errors.py +3 -1
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/presentation/deploy.py +40 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/presentation/group.py +77 -1
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/presentation/help.py +91 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/projects/agent_project.py +213 -3
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/projects/app_manifest.py +17 -2
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/deploy_service.py +33 -4
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/services/deployment/model_binding_provisioner.py +108 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/dev_service.py +7 -17
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/skills.py +100 -0
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/templates/agent-bricks-workflow/SKILL.md +48 -0
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/templates/agent-bricks-workflow/references/deployment.md +57 -0
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/templates/agent-bricks-workflow/references/state-and-tools.md +49 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/AGENTKIT_CONTRACT.md +30 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/AGENTS.md +3 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/README.md +4 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/agent.py +5 -1
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/pyproject.toml +3 -1
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/AGENTKIT_CONTRACT.md +43 -8
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/AGENTS.md +13 -7
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/README.md +20 -6
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/agent/agent.py +82 -23
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/templates/agent-openai/agent/checkpoints.py +101 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/pyproject.toml +1 -1
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/runtime/adapter.py +30 -18
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/templates/agent-openai/tests/test_agent.py +679 -0
- databricks_agentbricks-0.6.0/src/databricks_agentbricks/templates/agent-openai/tests/test_checkpoints.py +207 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/pyproject.toml +3 -2
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-openai/pyproject.toml +1 -1
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/runtime/ui.py +16 -23
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/tests/test_demo_ui.py +24 -33
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-openai/runtime/ui.py +15 -15
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-openai/tests/test_demo_ui.py +5 -2
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/app.js +17 -7
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/_api_client.py +75 -16
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/langgraph/__init__.py +4 -0
- databricks_agentbricks-0.6.0/src/databricks_agentkit/langgraph/history.py +37 -0
- databricks_agentbricks-0.6.0/src/databricks_agentkit/langgraph/memory.py +249 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/langgraph/session_store.py +57 -3
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/memory_store.py +193 -1
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/openai/__init__.py +4 -0
- databricks_agentbricks-0.6.0/src/databricks_agentkit/openai/history.py +19 -0
- databricks_agentbricks-0.6.0/src/databricks_agentkit/openai/memory.py +249 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/openai/sessions.py +2 -2
- databricks_agentbricks-0.6.0/src/databricks_agentkit/runtime/model_services.py +305 -0
- databricks_agentbricks-0.6.0/src/databricks_agentkit/runtime/prompt_registry.py +38 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/tool_manifest.py +24 -2
- databricks_agentbricks-0.5.0/src/databricks_agentbricks/templates/agent-openai/tests/test_agent.py +0 -349
- databricks_agentbricks-0.5.0/src/databricks_agentkit/langgraph/memory.py +0 -67
- databricks_agentbricks-0.5.0/src/databricks_agentkit/openai/memory.py +0 -67
- databricks_agentbricks-0.5.0/src/databricks_agentkit/runtime/model_services.py +0 -90
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/.gitignore +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/NOTICE +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/auth.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/dev.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/doctor.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/endpoint.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/mcp.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/memory.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/sandbox.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/sessions.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/cli/tracing.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/clients/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/clients/api_client_provider.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/clients/conversation_store_client.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/clients/legacy_runtime_store.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/clients/managed_runtime_store.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/clients/tracing_client.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/presentation/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/presentation/dev.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/presentation/endpoint.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/presentation/render.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/presentation/reporter.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/presentation/theme.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/presentation/tracing.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/projects/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/projects/config.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/projects/resolver.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/projects/types.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/py.typed +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/reporting.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/deployment/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/deployment/config.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/deployment/names.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/deployment/provisioners.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/deployment/tool_access.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/deployment/tool_access_provisioner.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/invoke/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/invoke/auth.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/invoke/request.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/invoke/transport.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/services/invoke_service.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-bricks-migrate/SKILL.md +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/.env.example +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/.gitignore +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/CLAUDE.md +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/mcps.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/sample_tool.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/agent/tools/send_message.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/app.yaml +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/adapter.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/runtime/main.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_agent.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-langgraph/tests/test_workspace.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/.env.example +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/.gitignore +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/CLAUDE.md +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/agent/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/agent/mcps.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/sample_tool.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/agent/tools/send_message.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/app.yaml +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/runtime/main.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/tests/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/agent-openai/tests/test_workspace.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/.env.example +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/.gitignore +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/README.md +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/agent/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/agent/agent.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/app.yaml +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/runtime/main.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-langgraph/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-openai/.env.example +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-openai/.gitignore +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-openai/README.md +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-openai/agent/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-openai/agent/agent.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-openai/app.yaml +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-openai/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-openai/runtime/main.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/custom-agent-openai/tests/test_runtime.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/sandbox_mcp.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/sandbox_mcp_langgraph.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/CHAT_APP.md +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/runtime/main.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/agentbricks-mark.png +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/app.js +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/index.html +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/markdown-it-15.0.2.min.js +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-langgraph/ui/styles.css +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-openai/CHAT_APP.md +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-openai/runtime/main.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/agentbricks-mark.png +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/index.html +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/markdown-it-15.0.2.min.js +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentbricks/templates/ui/agent-openai/ui/styles.css +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/_pagination.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/client.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/langgraph/genie.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/langgraph/mcp.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/langgraph/responses.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/models.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/openai/genie.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/openai/mcp.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/py.typed +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/ARCHITECTURE.md +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/README.md +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/app.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/auth.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/durability/__init__.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/durability/execution.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/durability/heartbeat.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/durability/lakebase_runtime_store.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/durability/recovery.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/durability/store.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/execution.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/genie.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/mcp_auth.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/runtime.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/session_store_client.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/store.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/tracing.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/types.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/runtime/workspace.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.0}/src/databricks_agentkit/session_store.py +0 -0
- {databricks_agentbricks-0.5.0 → databricks_agentbricks-0.6.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.6.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
|
|
@@ -20,7 +20,7 @@ Requires-Dist: tomlkit>=0.13
|
|
|
20
20
|
Requires-Dist: uvicorn>=0.20.0
|
|
21
21
|
Provides-Extra: langgraph
|
|
22
22
|
Requires-Dist: databricks-agents>=1.9.3; extra == 'langgraph'
|
|
23
|
-
Requires-Dist: databricks-langchain
|
|
23
|
+
Requires-Dist: databricks-langchain==0.21.0; extra == 'langgraph'
|
|
24
24
|
Requires-Dist: langchain-mcp-adapters>=0.3.0; extra == 'langgraph'
|
|
25
25
|
Requires-Dist: langchain>=1.0.0; extra == 'langgraph'
|
|
26
26
|
Requires-Dist: langgraph>=1.1.0; extra == 'langgraph'
|
|
@@ -30,7 +30,7 @@ Provides-Extra: openai
|
|
|
30
30
|
Requires-Dist: databricks-agents>=1.9.3; extra == 'openai'
|
|
31
31
|
Requires-Dist: databricks-openai>=0.13.0; extra == 'openai'
|
|
32
32
|
Requires-Dist: mlflow>=3.10.1; extra == 'openai'
|
|
33
|
-
Requires-Dist: openai-agents>=0.
|
|
33
|
+
Requires-Dist: openai-agents>=0.15.0; extra == 'openai'
|
|
34
34
|
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.25.0; extra == 'openai'
|
|
35
35
|
Description-Content-Type: text/markdown
|
|
36
36
|
|
|
@@ -38,7 +38,8 @@ Description-Content-Type: text/markdown
|
|
|
38
38
|
|
|
39
39
|
Agent Bricks CLI is an experimental command-line interface for building and deploying custom
|
|
40
40
|
agents on Databricks. It manages memory, sessions, tracing, and deployments from one authenticated
|
|
41
|
-
command.
|
|
41
|
+
command. Under `agentbricks experimental`, it also binds each of the agent's LLM calls to a model
|
|
42
|
+
service you own, so the model behind it can change without a code change or redeploy.
|
|
42
43
|
|
|
43
44
|
> The underlying APIs are in preview and may need workspace enablement.
|
|
44
45
|
|
|
@@ -65,8 +66,9 @@ invocation protocol to design yourself. Bring your own agent, or start from a te
|
|
|
65
66
|
(LangGraph or OpenAI Agents) with the runtime, tests, and an optional chat UI wired up; you edit
|
|
66
67
|
the application code (model, tools, prompts).
|
|
67
68
|
- **`agent.toml`** - the declarative source of truth for the Databricks-managed infrastructure your
|
|
68
|
-
agent depends on: tool bindings (data sandbox, managed MCP services, Unity Catalog functions)
|
|
69
|
-
memory, session, and durability resources
|
|
69
|
+
agent depends on: tool bindings (data sandbox, managed MCP services, Unity Catalog functions),
|
|
70
|
+
memory, session, and durability resources, and the model services and Prompt Registry prompts
|
|
71
|
+
each LLM call uses. `agentbricks deploy` reads it to provision and wire everything
|
|
70
72
|
up (detailed under [Agent tools](#agent-tools)).
|
|
71
73
|
- **`agentbricks deploy`** - provisions the bound stores, grants the app's service principal access to
|
|
72
74
|
them, provisions the durable-runtime database when durability is on, configures tracing, and rolls
|
|
@@ -144,6 +146,33 @@ If Databricks SDK default authentication is already configured, you can skip `ag
|
|
|
144
146
|
You can also pass the global `--profile/-p` option before an individual command, for example
|
|
145
147
|
`agentbricks --profile <profile> tools list`. Use `--output json` for scripting.
|
|
146
148
|
|
|
149
|
+
The CLI sends best effort command usage telemetry after leaf commands. Its log records the static
|
|
150
|
+
command path, package version, operating system, duration, and process outcome (exit code and, for
|
|
151
|
+
nonzero exits, a bounded error category). Parameter entries include explicitly supplied options
|
|
152
|
+
and parsed Click defaults with supported typed values, automatically across all commands and
|
|
153
|
+
parent groups. Declare defaults in Click options so the shared emitter can read the resolved
|
|
154
|
+
values; fallbacks applied only inside command callbacks are not visible to Click. Omitted free-form
|
|
155
|
+
options and unresolved `None` defaults produce no entry. Environment, prompt, and default-map inputs
|
|
156
|
+
are not included. Explicit free-form options contribute only their static name. Declared Click
|
|
157
|
+
choices contribute an `AGENTBRICKS_CLI_`-prefixed value. Click boolean and numeric options
|
|
158
|
+
contribute their typed values; explicitly supplied non-finite floats and integers outside the log
|
|
159
|
+
schema's 64-bit range remain presence-only, while unsupported defaults are omitted. Hidden and
|
|
160
|
+
deprecated options follow the same policy, and repeated
|
|
161
|
+
options contribute one parameter entry per supplied value, up to 64 entries. Positional arguments,
|
|
162
|
+
raw command arguments, paths, IDs, secrets, arbitrary free-form option values, and exception
|
|
163
|
+
messages are omitted. Set
|
|
164
|
+
`AGENTBRICKS_DISABLE_TELEMETRY=1` to disable these uploads.
|
|
165
|
+
|
|
166
|
+
Telemetry runs only when a leaf command is invoked, whether its callback succeeds or fails. Help
|
|
167
|
+
and errors rejected during Click parsing, before a leaf starts, do not produce an event. Uploads
|
|
168
|
+
reuse the command's workspace client or let the Databricks SDK resolve the selected or default
|
|
169
|
+
profile. Authenticate first with `agentbricks login --profile <profile>` or configure SDK auth;
|
|
170
|
+
an SDK `external-browser` profile may prompt during telemetry even for local commands such as
|
|
171
|
+
`init`. The CLI waits up to two seconds for client setup, authentication, and upload on a daemon
|
|
172
|
+
thread, returning sooner if the worker finishes. This is not a delivery guarantee: unfinished
|
|
173
|
+
uploads can be lost when the process exits after the allowance expires. Missing credentials or a
|
|
174
|
+
failed upload never change the command result.
|
|
175
|
+
|
|
147
176
|
## Quickstart
|
|
148
177
|
|
|
149
178
|
The shortest path from a blank directory to a running and deployed agent:
|
|
@@ -152,7 +181,7 @@ The shortest path from a blank directory to a running and deployed agent:
|
|
|
152
181
|
agentbricks login --profile <profile>
|
|
153
182
|
agentbricks init my-agent # Defaults to LangGraph; add --framework=openai for OpenAI Agents SDK
|
|
154
183
|
cd my-agent
|
|
155
|
-
agentbricks dev #
|
|
184
|
+
agentbricks dev # optional: develop and test locally
|
|
156
185
|
agentbricks deploy my-agent # deploy to Databricks
|
|
157
186
|
```
|
|
158
187
|
|
|
@@ -177,6 +206,48 @@ it an HTTP request. MLflow tracing is on by default (`agentbricks init` binds a
|
|
|
177
206
|
`.agentbricks/` and `agentbricks deploy` to the bound workspace experiment; `agentbricks tracing list` shows the
|
|
178
207
|
available traces.
|
|
179
208
|
|
|
209
|
+
## Coding-agent workflow skills
|
|
210
|
+
|
|
211
|
+
The CLI bundles an `agent-bricks-workflow` skill for creating, developing, deploying, validating,
|
|
212
|
+
and troubleshooting agents. It is separate from the project-specific `agent-bricks-migrate` skill
|
|
213
|
+
generated by `init --existing`. Bundled guidance matches the installed CLI and requires no
|
|
214
|
+
download or separate setup command.
|
|
215
|
+
|
|
216
|
+
New `agentbricks init` projects already include the workflow skill. One shared bundle lives at
|
|
217
|
+
`.agents/skills/agent-bricks-workflow/`; `.claude/skills/agent-bricks-workflow/` and
|
|
218
|
+
`.agent/skills/agent-bricks-workflow/` contain pointers to it, not duplicate references.
|
|
219
|
+
Migration discovery uses these same three roots. Installation is project-local, preserves unrelated
|
|
220
|
+
configuration, leaves identical skills unchanged, and refuses to overwrite a different skill.
|
|
221
|
+
|
|
222
|
+
Current coding agents discover these locations:
|
|
223
|
+
|
|
224
|
+
| Coding agent | Project skill discovery |
|
|
225
|
+
| --- | --- |
|
|
226
|
+
| [Claude Code](https://code.claude.com/docs/en/skills) | `.claude/skills/` |
|
|
227
|
+
| [Codex](https://developers.openai.com/codex/skills/) | `.agents/skills/` |
|
|
228
|
+
| [Cursor](https://cursor.com/docs/skills) | `.agents/skills/` compatibility discovery |
|
|
229
|
+
| [GitHub Copilot](https://docs.github.com/en/copilot/concepts/agents/about-agent-skills) | `.agents/skills/` |
|
|
230
|
+
| [Gemini CLI](https://geminicli.com/docs/cli/skills/) | `.agents/skills/` compatibility discovery |
|
|
231
|
+
| [OpenCode](https://opencode.ai/docs/skills/) | `.agents/skills/` compatibility discovery |
|
|
232
|
+
| Other agents | Read the manifest directly |
|
|
233
|
+
|
|
234
|
+
The `.agent/skills/` pointer retains the existing migration discovery location for agents using that
|
|
235
|
+
convention. Support depends on the coding-agent version and its skill settings; restart the session
|
|
236
|
+
if discovery is cached. Generated `AGENTS.md` also links to the workflow skill. The skill is
|
|
237
|
+
advisory and does not authorize deployment or live calls.
|
|
238
|
+
|
|
239
|
+
When the CLI detects a coding-agent environment, it emits a single-line pointer to the bundled
|
|
240
|
+
skill on stderr, including for `--help`. Ordinary human invocations do not emit this hint.
|
|
241
|
+
Coding agents in existing projects can read that bundled file directly without installing
|
|
242
|
+
project-local skills or changing project configuration. Detection is best-effort and does not
|
|
243
|
+
gate skill installation during `init` or native discovery. Set `AGENTBRICKS_DISABLE_AGENT_HINT=1`
|
|
244
|
+
to suppress automatic hints. Hints never alter JSON stdout and are not emitted during shell
|
|
245
|
+
completion, SDK imports, or deployed agent runtime startup.
|
|
246
|
+
|
|
247
|
+
For a deployment-only task, local `dev` is optional. The workflow skill describes focused
|
|
248
|
+
verification of the deployed agent, rather than treating local execution as proof of managed
|
|
249
|
+
memory or session persistence.
|
|
250
|
+
|
|
180
251
|
## Inspect and clean up a project
|
|
181
252
|
|
|
182
253
|
Read `agent.toml` for the recorded agent name, declared memory/session stores, tracing, and tool
|
|
@@ -243,10 +314,18 @@ memory.delete()
|
|
|
243
314
|
|
|
244
315
|
The root collections manage stores: `agentkit.memory_stores.create/get/list` and
|
|
245
316
|
`agentkit.session_stores.create/get/list`. A returned store owns operations on its
|
|
246
|
-
contents, such as `memory_store.add()`, `memory_store.
|
|
247
|
-
`memory_store.
|
|
248
|
-
`session_store.get("session-id")`, and `session_store.list()`.
|
|
249
|
-
sessions, and stores own their `update()` and `delete()` operations.
|
|
317
|
+
contents, such as `memory_store.add()`, `memory_store.put()`,
|
|
318
|
+
`memory_store.get("memory-id")`, `memory_store.list()`, and `memory_store.search()`, or
|
|
319
|
+
`session_store.add()`, `session_store.get("session-id")`, and `session_store.list()`.
|
|
320
|
+
Returned memories, sessions, and stores own their `update()` and `delete()` operations.
|
|
321
|
+
|
|
322
|
+
`memory_store.add()` fails with `ALREADY_EXISTS` when a memory already exists at the
|
|
323
|
+
same `actor_id`, `session_id`, and `path`. `memory_store.put()` creates the memory or
|
|
324
|
+
updates the existing one: it replaces the content, or with `append=True` adds `content`
|
|
325
|
+
as new lines, skipping lines already present. `put()` is not atomic, so concurrent
|
|
326
|
+
writers to one path can overwrite each other. `add()`'s `write_mode` argument is
|
|
327
|
+
deprecated; use `put()` instead. `memory_store.list(actor_id=..., path=...)` returns the
|
|
328
|
+
memories at one exact path.
|
|
250
329
|
|
|
251
330
|
All `list()` methods return iterators that automatically consume server pages. List
|
|
252
331
|
`page_size` and search `limit` values must be between 1 and 100. `session.list_items()`
|
|
@@ -422,7 +501,8 @@ from databricks_agentkit import AgentKitClient
|
|
|
422
501
|
agentkit = AgentKitClient(WorkspaceClient())
|
|
423
502
|
|
|
424
503
|
memory_store = agentkit.memory_stores.create("support-agent-memory")
|
|
425
|
-
|
|
504
|
+
# put() creates the entry, or replaces its content if one already exists at this path.
|
|
505
|
+
memory_store.put(
|
|
426
506
|
actor_id="user-123",
|
|
427
507
|
path="/preferences/communication.md",
|
|
428
508
|
content="Prefers email over phone. Timezone: PST.",
|
|
@@ -434,15 +514,27 @@ results = memory_store.search(actor_id="user-123", query="communication preferen
|
|
|
434
514
|
```
|
|
435
515
|
|
|
436
516
|
To browse rather than search, `memory_store.list(actor_id=..., path_prefix=...)` returns entries
|
|
437
|
-
directly.
|
|
517
|
+
directly, and `memory_store.list(actor_id=..., path=...)` returns the entries at one exact path.
|
|
438
518
|
|
|
439
519
|
In an agent configured with `server = "agentbricks"`, add the memory tools so the model can read and write memory during a run.
|
|
440
|
-
`memory_tools(actor)`
|
|
441
|
-
|
|
442
|
-
|
|
520
|
+
`memory_tools(actor)` returns four tools bound to one actor's partition:
|
|
521
|
+
|
|
522
|
+
- `remember(fact, topic)` appends the fact to one memory per topic, `/{topic}.md`, with the topic
|
|
523
|
+
reduced to a safe path segment. Remembering a fact that is already there is a no-op.
|
|
524
|
+
- `recall(query, session_id=None)` searches the actor's memories, including ones written under other
|
|
525
|
+
paths, or only the ones saved under `session_id`.
|
|
526
|
+
- `forget(fact, topic, session_id=None)` removes a matching fact from every memory at the path, or
|
|
527
|
+
only from the one saved under `session_id`, and deletes a memory once no facts remain.
|
|
528
|
+
- `list_memories(session_id=None)` lists each memory's path, its session if it has one, and how
|
|
529
|
+
many facts it holds, optionally only for one session.
|
|
530
|
+
|
|
531
|
+
`remember` writes memories without a `session_id`; memories saved under a session are labeled with
|
|
532
|
+
it in `recall` and `list_memories`. `memory_tools` resolves the store from the `[memory_store]`
|
|
533
|
+
binding, carried to the runtime by the `AGENT_MEMORY_STORE` env var that `agentbricks deploy`
|
|
534
|
+
injects, and returns no tools when no store is set, so the agent runs unchanged.
|
|
443
535
|
That "no store set" path is also how it runs under `agentbricks dev`, which runs locally: memory is off
|
|
444
|
-
there (the store is provisioned and used only at deploy). The OpenAI Agents adapter exposes the same
|
|
445
|
-
`memory_tools()`:
|
|
536
|
+
there (the store is provisioned and used only at deploy). The OpenAI Agents adapter exposes the same
|
|
537
|
+
tools as `databricks_agentkit.openai.memory_tools(actor)`:
|
|
446
538
|
|
|
447
539
|
```python
|
|
448
540
|
from databricks_agentkit.langgraph import memory_tools
|
|
@@ -484,6 +576,32 @@ removes the corresponding `AGENT_MEMORY_STORE` or `AGENT_SESSION_STORE` entry fr
|
|
|
484
576
|
Unbinding does not delete the store or revoke an existing grant to the App's service principal.
|
|
485
577
|
If access must be revoked, coordinate that separately with the store owner or workspace admin.
|
|
486
578
|
|
|
579
|
+
## Model services and prompts (experimental)
|
|
580
|
+
|
|
581
|
+
`agentbricks experimental models` and `agentbricks experimental prompts` bind each LLM call in
|
|
582
|
+
your agent to a Unity Gateway model service you own (Unity Gateway was formerly AI Gateway), and
|
|
583
|
+
declare the Prompt Registry prompts it loads. They live under `experimental` because their flags
|
|
584
|
+
and output may still change between releases without a deprecation period. The agent.toml tables
|
|
585
|
+
they write live under `[experimental]` too.
|
|
586
|
+
|
|
587
|
+
A one-model agent binds one service. A compound agent binds one per call site, each under a role:
|
|
588
|
+
|
|
589
|
+
```sh
|
|
590
|
+
agentbricks experimental models bind main.my_agent.router_llm --role router --default system.ai.claude-haiku-4-5
|
|
591
|
+
agentbricks experimental models bind main.my_agent.writer_llm --role writer --default system.ai.claude-sonnet-4-5
|
|
592
|
+
agentbricks experimental prompts bind main.my_agent.writer
|
|
593
|
+
agentbricks deploy my-agent # creates the services and grants the app access to them and the prompt
|
|
594
|
+
agentbricks experimental models status # the model behind each service
|
|
595
|
+
agentbricks experimental models set claude-haiku-4-5 --role writer # switch one, no redeploy
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
Each LLM call must use its role's service, `resolve_model_service("<role>")`, which reads the
|
|
599
|
+
`AGENT_MODEL_SERVICE_<ROLE>` env var that deploy sets. Deploy creates a service that doesn't exist
|
|
600
|
+
yet, routed to its `--default` model, and never repoints one that does, so a redeploy can't undo a
|
|
601
|
+
switch. For bound prompts, deploy grants the app the schema privileges the Prompt Registry requires
|
|
602
|
+
to load them (USE SCHEMA, EXECUTE, CREATE FUNCTION, and MANAGE). `agentbricks experimental prompts
|
|
603
|
+
list` shows each bound prompt and the version its `@production` alias points at.
|
|
604
|
+
|
|
487
605
|
## Commands
|
|
488
606
|
|
|
489
607
|
For the full command reference - every command, subcommand, argument, and option, in table form -
|
|
@@ -517,12 +635,20 @@ agentbricks [-p <profile>] [-o text|json]
|
|
|
517
635
|
add sandbox --scope SCOPE [--scope SCOPE ...]
|
|
518
636
|
[--no-databricks-access-token-included] [--source PATH]
|
|
519
637
|
add mcp SERVICE [--name NAME] [--source PATH]
|
|
520
|
-
add uc-function FUNCTION [--name NAME] [--source PATH]
|
|
638
|
+
add uc-function FUNCTION [--name NAME] [--auth user|app] [--source PATH]
|
|
521
639
|
add genie-one [--name NAME] [--auth user|app] [--source PATH]
|
|
522
640
|
add genie-agent SPACE_ID [--name NAME] [--auth user|app] [--source PATH]
|
|
523
641
|
list [--kind sandbox|mcp|uc-function|genie-one|genie-agent]
|
|
524
642
|
[--schema CATALOG.SCHEMA]
|
|
525
643
|
remove TOOL_ID [MCP_SERVICE] [--source PATH]
|
|
644
|
+
models
|
|
645
|
+
bind SERVICE [--role ROLE] [--default MODEL] [--source PATH]
|
|
646
|
+
unbind | list | status
|
|
647
|
+
set MODEL [--role ROLE] [--yes]
|
|
648
|
+
prompts
|
|
649
|
+
bind PROMPT [--key KEY] [--source PATH]
|
|
650
|
+
unbind KEY [--source PATH]
|
|
651
|
+
list [--source PATH]
|
|
526
652
|
deploy [<name>] [--source PATH] [--instances N]
|
|
527
653
|
deployments list | get | logs | start | stop | delete
|
|
528
654
|
endpoint
|
|
@@ -658,8 +784,9 @@ agentbricks tools list
|
|
|
658
784
|
|
|
659
785
|
### Managed tool identity and migration
|
|
660
786
|
|
|
661
|
-
`agentbricks tools add mcp`, `agentbricks tools add sandbox`, `agentbricks tools add
|
|
662
|
-
`agentbricks tools add genie-
|
|
787
|
+
`agentbricks tools add mcp`, `agentbricks tools add sandbox`, `agentbricks tools add uc-function`,
|
|
788
|
+
`agentbricks tools add genie-one`, and `agentbricks tools add genie-agent` write explicit
|
|
789
|
+
`auth = "user"` by default.
|
|
663
790
|
Use `--auth app` for the App service principal instead. This field is on the tool entry, not
|
|
664
791
|
inside `source` or `policy`:
|
|
665
792
|
|
|
@@ -670,7 +797,8 @@ auth = "user"
|
|
|
670
797
|
source = { kind = "mcp", service = "system.ai.web_search" }
|
|
671
798
|
```
|
|
672
799
|
|
|
673
|
-
|
|
800
|
+
UC-function bindings use the request user's permissions by default. Use `--auth app` to execute
|
|
801
|
+
with the App service principal's permissions instead.
|
|
674
802
|
Managed-tool add commands write the selected identity to `agent.toml`; inspect that manifest to
|
|
675
803
|
review configured bindings. Missing legacy auth continues to mean App identity at runtime; it is
|
|
676
804
|
never silently upgraded to user identity.
|
|
@@ -769,6 +897,7 @@ Deploy derives Apps user scopes from explicit `auth = "user"` bindings and union
|
|
|
769
897
|
| Managed MCP (governed ingress) | `ai-gateway` |
|
|
770
898
|
| `system.ai.dbsql` | `ai-gateway`, `sql` |
|
|
771
899
|
| `system.ai.genie_one_mcp` | `ai-gateway`, `genie` |
|
|
900
|
+
| UC function | `mcp.functions` |
|
|
772
901
|
| Sandbox with a Volume downscope | `ai-gateway`, `files` |
|
|
773
902
|
| First-class Genie One or Genie Agent | `genie` |
|
|
774
903
|
| Sandbox with token injection | `ai-gateway`, `workspace.workspace` |
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Agent Bricks CLI is an experimental command-line interface for building and deploying custom
|
|
4
4
|
agents on Databricks. It manages memory, sessions, tracing, and deployments from one authenticated
|
|
5
|
-
command.
|
|
5
|
+
command. Under `agentbricks experimental`, it also binds each of the agent's LLM calls to a model
|
|
6
|
+
service you own, so the model behind it can change without a code change or redeploy.
|
|
6
7
|
|
|
7
8
|
> The underlying APIs are in preview and may need workspace enablement.
|
|
8
9
|
|
|
@@ -29,8 +30,9 @@ invocation protocol to design yourself. Bring your own agent, or start from a te
|
|
|
29
30
|
(LangGraph or OpenAI Agents) with the runtime, tests, and an optional chat UI wired up; you edit
|
|
30
31
|
the application code (model, tools, prompts).
|
|
31
32
|
- **`agent.toml`** - the declarative source of truth for the Databricks-managed infrastructure your
|
|
32
|
-
agent depends on: tool bindings (data sandbox, managed MCP services, Unity Catalog functions)
|
|
33
|
-
memory, session, and durability resources
|
|
33
|
+
agent depends on: tool bindings (data sandbox, managed MCP services, Unity Catalog functions),
|
|
34
|
+
memory, session, and durability resources, and the model services and Prompt Registry prompts
|
|
35
|
+
each LLM call uses. `agentbricks deploy` reads it to provision and wire everything
|
|
34
36
|
up (detailed under [Agent tools](#agent-tools)).
|
|
35
37
|
- **`agentbricks deploy`** - provisions the bound stores, grants the app's service principal access to
|
|
36
38
|
them, provisions the durable-runtime database when durability is on, configures tracing, and rolls
|
|
@@ -108,6 +110,33 @@ If Databricks SDK default authentication is already configured, you can skip `ag
|
|
|
108
110
|
You can also pass the global `--profile/-p` option before an individual command, for example
|
|
109
111
|
`agentbricks --profile <profile> tools list`. Use `--output json` for scripting.
|
|
110
112
|
|
|
113
|
+
The CLI sends best effort command usage telemetry after leaf commands. Its log records the static
|
|
114
|
+
command path, package version, operating system, duration, and process outcome (exit code and, for
|
|
115
|
+
nonzero exits, a bounded error category). Parameter entries include explicitly supplied options
|
|
116
|
+
and parsed Click defaults with supported typed values, automatically across all commands and
|
|
117
|
+
parent groups. Declare defaults in Click options so the shared emitter can read the resolved
|
|
118
|
+
values; fallbacks applied only inside command callbacks are not visible to Click. Omitted free-form
|
|
119
|
+
options and unresolved `None` defaults produce no entry. Environment, prompt, and default-map inputs
|
|
120
|
+
are not included. Explicit free-form options contribute only their static name. Declared Click
|
|
121
|
+
choices contribute an `AGENTBRICKS_CLI_`-prefixed value. Click boolean and numeric options
|
|
122
|
+
contribute their typed values; explicitly supplied non-finite floats and integers outside the log
|
|
123
|
+
schema's 64-bit range remain presence-only, while unsupported defaults are omitted. Hidden and
|
|
124
|
+
deprecated options follow the same policy, and repeated
|
|
125
|
+
options contribute one parameter entry per supplied value, up to 64 entries. Positional arguments,
|
|
126
|
+
raw command arguments, paths, IDs, secrets, arbitrary free-form option values, and exception
|
|
127
|
+
messages are omitted. Set
|
|
128
|
+
`AGENTBRICKS_DISABLE_TELEMETRY=1` to disable these uploads.
|
|
129
|
+
|
|
130
|
+
Telemetry runs only when a leaf command is invoked, whether its callback succeeds or fails. Help
|
|
131
|
+
and errors rejected during Click parsing, before a leaf starts, do not produce an event. Uploads
|
|
132
|
+
reuse the command's workspace client or let the Databricks SDK resolve the selected or default
|
|
133
|
+
profile. Authenticate first with `agentbricks login --profile <profile>` or configure SDK auth;
|
|
134
|
+
an SDK `external-browser` profile may prompt during telemetry even for local commands such as
|
|
135
|
+
`init`. The CLI waits up to two seconds for client setup, authentication, and upload on a daemon
|
|
136
|
+
thread, returning sooner if the worker finishes. This is not a delivery guarantee: unfinished
|
|
137
|
+
uploads can be lost when the process exits after the allowance expires. Missing credentials or a
|
|
138
|
+
failed upload never change the command result.
|
|
139
|
+
|
|
111
140
|
## Quickstart
|
|
112
141
|
|
|
113
142
|
The shortest path from a blank directory to a running and deployed agent:
|
|
@@ -116,7 +145,7 @@ The shortest path from a blank directory to a running and deployed agent:
|
|
|
116
145
|
agentbricks login --profile <profile>
|
|
117
146
|
agentbricks init my-agent # Defaults to LangGraph; add --framework=openai for OpenAI Agents SDK
|
|
118
147
|
cd my-agent
|
|
119
|
-
agentbricks dev #
|
|
148
|
+
agentbricks dev # optional: develop and test locally
|
|
120
149
|
agentbricks deploy my-agent # deploy to Databricks
|
|
121
150
|
```
|
|
122
151
|
|
|
@@ -141,6 +170,48 @@ it an HTTP request. MLflow tracing is on by default (`agentbricks init` binds a
|
|
|
141
170
|
`.agentbricks/` and `agentbricks deploy` to the bound workspace experiment; `agentbricks tracing list` shows the
|
|
142
171
|
available traces.
|
|
143
172
|
|
|
173
|
+
## Coding-agent workflow skills
|
|
174
|
+
|
|
175
|
+
The CLI bundles an `agent-bricks-workflow` skill for creating, developing, deploying, validating,
|
|
176
|
+
and troubleshooting agents. It is separate from the project-specific `agent-bricks-migrate` skill
|
|
177
|
+
generated by `init --existing`. Bundled guidance matches the installed CLI and requires no
|
|
178
|
+
download or separate setup command.
|
|
179
|
+
|
|
180
|
+
New `agentbricks init` projects already include the workflow skill. One shared bundle lives at
|
|
181
|
+
`.agents/skills/agent-bricks-workflow/`; `.claude/skills/agent-bricks-workflow/` and
|
|
182
|
+
`.agent/skills/agent-bricks-workflow/` contain pointers to it, not duplicate references.
|
|
183
|
+
Migration discovery uses these same three roots. Installation is project-local, preserves unrelated
|
|
184
|
+
configuration, leaves identical skills unchanged, and refuses to overwrite a different skill.
|
|
185
|
+
|
|
186
|
+
Current coding agents discover these locations:
|
|
187
|
+
|
|
188
|
+
| Coding agent | Project skill discovery |
|
|
189
|
+
| --- | --- |
|
|
190
|
+
| [Claude Code](https://code.claude.com/docs/en/skills) | `.claude/skills/` |
|
|
191
|
+
| [Codex](https://developers.openai.com/codex/skills/) | `.agents/skills/` |
|
|
192
|
+
| [Cursor](https://cursor.com/docs/skills) | `.agents/skills/` compatibility discovery |
|
|
193
|
+
| [GitHub Copilot](https://docs.github.com/en/copilot/concepts/agents/about-agent-skills) | `.agents/skills/` |
|
|
194
|
+
| [Gemini CLI](https://geminicli.com/docs/cli/skills/) | `.agents/skills/` compatibility discovery |
|
|
195
|
+
| [OpenCode](https://opencode.ai/docs/skills/) | `.agents/skills/` compatibility discovery |
|
|
196
|
+
| Other agents | Read the manifest directly |
|
|
197
|
+
|
|
198
|
+
The `.agent/skills/` pointer retains the existing migration discovery location for agents using that
|
|
199
|
+
convention. Support depends on the coding-agent version and its skill settings; restart the session
|
|
200
|
+
if discovery is cached. Generated `AGENTS.md` also links to the workflow skill. The skill is
|
|
201
|
+
advisory and does not authorize deployment or live calls.
|
|
202
|
+
|
|
203
|
+
When the CLI detects a coding-agent environment, it emits a single-line pointer to the bundled
|
|
204
|
+
skill on stderr, including for `--help`. Ordinary human invocations do not emit this hint.
|
|
205
|
+
Coding agents in existing projects can read that bundled file directly without installing
|
|
206
|
+
project-local skills or changing project configuration. Detection is best-effort and does not
|
|
207
|
+
gate skill installation during `init` or native discovery. Set `AGENTBRICKS_DISABLE_AGENT_HINT=1`
|
|
208
|
+
to suppress automatic hints. Hints never alter JSON stdout and are not emitted during shell
|
|
209
|
+
completion, SDK imports, or deployed agent runtime startup.
|
|
210
|
+
|
|
211
|
+
For a deployment-only task, local `dev` is optional. The workflow skill describes focused
|
|
212
|
+
verification of the deployed agent, rather than treating local execution as proof of managed
|
|
213
|
+
memory or session persistence.
|
|
214
|
+
|
|
144
215
|
## Inspect and clean up a project
|
|
145
216
|
|
|
146
217
|
Read `agent.toml` for the recorded agent name, declared memory/session stores, tracing, and tool
|
|
@@ -207,10 +278,18 @@ memory.delete()
|
|
|
207
278
|
|
|
208
279
|
The root collections manage stores: `agentkit.memory_stores.create/get/list` and
|
|
209
280
|
`agentkit.session_stores.create/get/list`. A returned store owns operations on its
|
|
210
|
-
contents, such as `memory_store.add()`, `memory_store.
|
|
211
|
-
`memory_store.
|
|
212
|
-
`session_store.get("session-id")`, and `session_store.list()`.
|
|
213
|
-
sessions, and stores own their `update()` and `delete()` operations.
|
|
281
|
+
contents, such as `memory_store.add()`, `memory_store.put()`,
|
|
282
|
+
`memory_store.get("memory-id")`, `memory_store.list()`, and `memory_store.search()`, or
|
|
283
|
+
`session_store.add()`, `session_store.get("session-id")`, and `session_store.list()`.
|
|
284
|
+
Returned memories, sessions, and stores own their `update()` and `delete()` operations.
|
|
285
|
+
|
|
286
|
+
`memory_store.add()` fails with `ALREADY_EXISTS` when a memory already exists at the
|
|
287
|
+
same `actor_id`, `session_id`, and `path`. `memory_store.put()` creates the memory or
|
|
288
|
+
updates the existing one: it replaces the content, or with `append=True` adds `content`
|
|
289
|
+
as new lines, skipping lines already present. `put()` is not atomic, so concurrent
|
|
290
|
+
writers to one path can overwrite each other. `add()`'s `write_mode` argument is
|
|
291
|
+
deprecated; use `put()` instead. `memory_store.list(actor_id=..., path=...)` returns the
|
|
292
|
+
memories at one exact path.
|
|
214
293
|
|
|
215
294
|
All `list()` methods return iterators that automatically consume server pages. List
|
|
216
295
|
`page_size` and search `limit` values must be between 1 and 100. `session.list_items()`
|
|
@@ -386,7 +465,8 @@ from databricks_agentkit import AgentKitClient
|
|
|
386
465
|
agentkit = AgentKitClient(WorkspaceClient())
|
|
387
466
|
|
|
388
467
|
memory_store = agentkit.memory_stores.create("support-agent-memory")
|
|
389
|
-
|
|
468
|
+
# put() creates the entry, or replaces its content if one already exists at this path.
|
|
469
|
+
memory_store.put(
|
|
390
470
|
actor_id="user-123",
|
|
391
471
|
path="/preferences/communication.md",
|
|
392
472
|
content="Prefers email over phone. Timezone: PST.",
|
|
@@ -398,15 +478,27 @@ results = memory_store.search(actor_id="user-123", query="communication preferen
|
|
|
398
478
|
```
|
|
399
479
|
|
|
400
480
|
To browse rather than search, `memory_store.list(actor_id=..., path_prefix=...)` returns entries
|
|
401
|
-
directly.
|
|
481
|
+
directly, and `memory_store.list(actor_id=..., path=...)` returns the entries at one exact path.
|
|
402
482
|
|
|
403
483
|
In an agent configured with `server = "agentbricks"`, add the memory tools so the model can read and write memory during a run.
|
|
404
|
-
`memory_tools(actor)`
|
|
405
|
-
|
|
406
|
-
|
|
484
|
+
`memory_tools(actor)` returns four tools bound to one actor's partition:
|
|
485
|
+
|
|
486
|
+
- `remember(fact, topic)` appends the fact to one memory per topic, `/{topic}.md`, with the topic
|
|
487
|
+
reduced to a safe path segment. Remembering a fact that is already there is a no-op.
|
|
488
|
+
- `recall(query, session_id=None)` searches the actor's memories, including ones written under other
|
|
489
|
+
paths, or only the ones saved under `session_id`.
|
|
490
|
+
- `forget(fact, topic, session_id=None)` removes a matching fact from every memory at the path, or
|
|
491
|
+
only from the one saved under `session_id`, and deletes a memory once no facts remain.
|
|
492
|
+
- `list_memories(session_id=None)` lists each memory's path, its session if it has one, and how
|
|
493
|
+
many facts it holds, optionally only for one session.
|
|
494
|
+
|
|
495
|
+
`remember` writes memories without a `session_id`; memories saved under a session are labeled with
|
|
496
|
+
it in `recall` and `list_memories`. `memory_tools` resolves the store from the `[memory_store]`
|
|
497
|
+
binding, carried to the runtime by the `AGENT_MEMORY_STORE` env var that `agentbricks deploy`
|
|
498
|
+
injects, and returns no tools when no store is set, so the agent runs unchanged.
|
|
407
499
|
That "no store set" path is also how it runs under `agentbricks dev`, which runs locally: memory is off
|
|
408
|
-
there (the store is provisioned and used only at deploy). The OpenAI Agents adapter exposes the same
|
|
409
|
-
`memory_tools()`:
|
|
500
|
+
there (the store is provisioned and used only at deploy). The OpenAI Agents adapter exposes the same
|
|
501
|
+
tools as `databricks_agentkit.openai.memory_tools(actor)`:
|
|
410
502
|
|
|
411
503
|
```python
|
|
412
504
|
from databricks_agentkit.langgraph import memory_tools
|
|
@@ -448,6 +540,32 @@ removes the corresponding `AGENT_MEMORY_STORE` or `AGENT_SESSION_STORE` entry fr
|
|
|
448
540
|
Unbinding does not delete the store or revoke an existing grant to the App's service principal.
|
|
449
541
|
If access must be revoked, coordinate that separately with the store owner or workspace admin.
|
|
450
542
|
|
|
543
|
+
## Model services and prompts (experimental)
|
|
544
|
+
|
|
545
|
+
`agentbricks experimental models` and `agentbricks experimental prompts` bind each LLM call in
|
|
546
|
+
your agent to a Unity Gateway model service you own (Unity Gateway was formerly AI Gateway), and
|
|
547
|
+
declare the Prompt Registry prompts it loads. They live under `experimental` because their flags
|
|
548
|
+
and output may still change between releases without a deprecation period. The agent.toml tables
|
|
549
|
+
they write live under `[experimental]` too.
|
|
550
|
+
|
|
551
|
+
A one-model agent binds one service. A compound agent binds one per call site, each under a role:
|
|
552
|
+
|
|
553
|
+
```sh
|
|
554
|
+
agentbricks experimental models bind main.my_agent.router_llm --role router --default system.ai.claude-haiku-4-5
|
|
555
|
+
agentbricks experimental models bind main.my_agent.writer_llm --role writer --default system.ai.claude-sonnet-4-5
|
|
556
|
+
agentbricks experimental prompts bind main.my_agent.writer
|
|
557
|
+
agentbricks deploy my-agent # creates the services and grants the app access to them and the prompt
|
|
558
|
+
agentbricks experimental models status # the model behind each service
|
|
559
|
+
agentbricks experimental models set claude-haiku-4-5 --role writer # switch one, no redeploy
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
Each LLM call must use its role's service, `resolve_model_service("<role>")`, which reads the
|
|
563
|
+
`AGENT_MODEL_SERVICE_<ROLE>` env var that deploy sets. Deploy creates a service that doesn't exist
|
|
564
|
+
yet, routed to its `--default` model, and never repoints one that does, so a redeploy can't undo a
|
|
565
|
+
switch. For bound prompts, deploy grants the app the schema privileges the Prompt Registry requires
|
|
566
|
+
to load them (USE SCHEMA, EXECUTE, CREATE FUNCTION, and MANAGE). `agentbricks experimental prompts
|
|
567
|
+
list` shows each bound prompt and the version its `@production` alias points at.
|
|
568
|
+
|
|
451
569
|
## Commands
|
|
452
570
|
|
|
453
571
|
For the full command reference - every command, subcommand, argument, and option, in table form -
|
|
@@ -481,12 +599,20 @@ agentbricks [-p <profile>] [-o text|json]
|
|
|
481
599
|
add sandbox --scope SCOPE [--scope SCOPE ...]
|
|
482
600
|
[--no-databricks-access-token-included] [--source PATH]
|
|
483
601
|
add mcp SERVICE [--name NAME] [--source PATH]
|
|
484
|
-
add uc-function FUNCTION [--name NAME] [--source PATH]
|
|
602
|
+
add uc-function FUNCTION [--name NAME] [--auth user|app] [--source PATH]
|
|
485
603
|
add genie-one [--name NAME] [--auth user|app] [--source PATH]
|
|
486
604
|
add genie-agent SPACE_ID [--name NAME] [--auth user|app] [--source PATH]
|
|
487
605
|
list [--kind sandbox|mcp|uc-function|genie-one|genie-agent]
|
|
488
606
|
[--schema CATALOG.SCHEMA]
|
|
489
607
|
remove TOOL_ID [MCP_SERVICE] [--source PATH]
|
|
608
|
+
models
|
|
609
|
+
bind SERVICE [--role ROLE] [--default MODEL] [--source PATH]
|
|
610
|
+
unbind | list | status
|
|
611
|
+
set MODEL [--role ROLE] [--yes]
|
|
612
|
+
prompts
|
|
613
|
+
bind PROMPT [--key KEY] [--source PATH]
|
|
614
|
+
unbind KEY [--source PATH]
|
|
615
|
+
list [--source PATH]
|
|
490
616
|
deploy [<name>] [--source PATH] [--instances N]
|
|
491
617
|
deployments list | get | logs | start | stop | delete
|
|
492
618
|
endpoint
|
|
@@ -622,8 +748,9 @@ agentbricks tools list
|
|
|
622
748
|
|
|
623
749
|
### Managed tool identity and migration
|
|
624
750
|
|
|
625
|
-
`agentbricks tools add mcp`, `agentbricks tools add sandbox`, `agentbricks tools add
|
|
626
|
-
`agentbricks tools add genie-
|
|
751
|
+
`agentbricks tools add mcp`, `agentbricks tools add sandbox`, `agentbricks tools add uc-function`,
|
|
752
|
+
`agentbricks tools add genie-one`, and `agentbricks tools add genie-agent` write explicit
|
|
753
|
+
`auth = "user"` by default.
|
|
627
754
|
Use `--auth app` for the App service principal instead. This field is on the tool entry, not
|
|
628
755
|
inside `source` or `policy`:
|
|
629
756
|
|
|
@@ -634,7 +761,8 @@ auth = "user"
|
|
|
634
761
|
source = { kind = "mcp", service = "system.ai.web_search" }
|
|
635
762
|
```
|
|
636
763
|
|
|
637
|
-
|
|
764
|
+
UC-function bindings use the request user's permissions by default. Use `--auth app` to execute
|
|
765
|
+
with the App service principal's permissions instead.
|
|
638
766
|
Managed-tool add commands write the selected identity to `agent.toml`; inspect that manifest to
|
|
639
767
|
review configured bindings. Missing legacy auth continues to mean App identity at runtime; it is
|
|
640
768
|
never silently upgraded to user identity.
|
|
@@ -733,6 +861,7 @@ Deploy derives Apps user scopes from explicit `auth = "user"` bindings and union
|
|
|
733
861
|
| Managed MCP (governed ingress) | `ai-gateway` |
|
|
734
862
|
| `system.ai.dbsql` | `ai-gateway`, `sql` |
|
|
735
863
|
| `system.ai.genie_one_mcp` | `ai-gateway`, `genie` |
|
|
864
|
+
| UC function | `mcp.functions` |
|
|
736
865
|
| Sandbox with a Volume downscope | `ai-gateway`, `files` |
|
|
737
866
|
| First-class Genie One or Genie Agent | `genie` |
|
|
738
867
|
| Sandbox with token injection | `ai-gateway`, `workspace.workspace` |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "databricks-agentbricks"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.6.0"
|
|
4
4
|
description = "Agent Bricks CLI and AgentKit SDK for custom agents on Databricks"
|
|
5
5
|
authors = [
|
|
6
6
|
{ name="Databricks", email="agent-feedback@databricks.com" },
|
|
@@ -33,7 +33,7 @@ dependencies = [
|
|
|
33
33
|
[project.optional-dependencies]
|
|
34
34
|
# Framework adapters are optional; the CLI, store SDK, and HTTP runtime install by default.
|
|
35
35
|
langgraph = [
|
|
36
|
-
"databricks-langchain
|
|
36
|
+
"databricks-langchain==0.21.0",
|
|
37
37
|
"langgraph>=1.1.0",
|
|
38
38
|
"langchain>=1.0.0",
|
|
39
39
|
"langchain-mcp-adapters>=0.3.0",
|
|
@@ -42,7 +42,7 @@ langgraph = [
|
|
|
42
42
|
"databricks-agents>=1.9.3",
|
|
43
43
|
]
|
|
44
44
|
openai = [
|
|
45
|
-
"openai-agents>=0.
|
|
45
|
+
"openai-agents>=0.15.0",
|
|
46
46
|
"databricks-openai>=0.13.0",
|
|
47
47
|
"mlflow>=3.10.1",
|
|
48
48
|
"opentelemetry-exporter-otlp-proto-grpc>=1.25.0",
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"""Optional coding-agent hints; importing the SDK never emits them."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
import sys
|
|
7
|
+
|
|
8
|
+
from databricks_agentbricks.skills import bundled_workflow_skill
|
|
9
|
+
|
|
10
|
+
# Update these markers as new coding-agent harnesses are supported so they receive workflow hints.
|
|
11
|
+
AGENT_ENV_MARKERS = (
|
|
12
|
+
"AGENT",
|
|
13
|
+
"AI_AGENT",
|
|
14
|
+
"AMP_CURRENT_THREAD_ID",
|
|
15
|
+
"ANTIGRAVITY_AGENT",
|
|
16
|
+
"AUGMENT_AGENT",
|
|
17
|
+
"CLAUDECODE",
|
|
18
|
+
"CLAUDE_CODE",
|
|
19
|
+
"CLINE_ACTIVE",
|
|
20
|
+
"CLINE_AGENT",
|
|
21
|
+
"CODEX_SANDBOX",
|
|
22
|
+
"CODEX_THREAD_ID",
|
|
23
|
+
"CURSOR_AGENT",
|
|
24
|
+
"GEMINI_CLI",
|
|
25
|
+
"GROK_PLUGIN_ROOT",
|
|
26
|
+
"JUNIE_DATA",
|
|
27
|
+
"KIMI_PLUGIN_ROOT",
|
|
28
|
+
"OPENCLAW_SHELL",
|
|
29
|
+
"OPENCODE",
|
|
30
|
+
"PI_CODING_AGENT",
|
|
31
|
+
"QWEN_CODE",
|
|
32
|
+
"ROO_ACTIVE",
|
|
33
|
+
"TRAE_AI_SHELL_ID",
|
|
34
|
+
)
|
|
35
|
+
AGENT_ENV_VALUES = {"CURSOR_EXTENSION_HOST_ROLE": "agent-exec"}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def workflow_hint() -> str | None:
|
|
39
|
+
"""Return a local skill pointer only when an agent is driving the CLI."""
|
|
40
|
+
try:
|
|
41
|
+
if os.environ.get("AGENTBRICKS_DISABLE_AGENT_HINT", "").lower() in {
|
|
42
|
+
"1",
|
|
43
|
+
"true",
|
|
44
|
+
"yes",
|
|
45
|
+
"on",
|
|
46
|
+
}:
|
|
47
|
+
return None
|
|
48
|
+
detected = any(os.environ.get(marker) for marker in AGENT_ENV_MARKERS) or any(
|
|
49
|
+
os.environ.get(name) == value for name, value in AGENT_ENV_VALUES.items()
|
|
50
|
+
)
|
|
51
|
+
if not detected and not (
|
|
52
|
+
os.environ.get("TERM_PROGRAM") == "kiro" and not sys.stdout.isatty()
|
|
53
|
+
):
|
|
54
|
+
return None
|
|
55
|
+
manifest = bundled_workflow_skill()
|
|
56
|
+
return (
|
|
57
|
+
f"Agent Bricks workflow guidance for this installed CLI: {manifest}. "
|
|
58
|
+
"Read it for Agent Bricks tasks; it does not authorize additional actions. "
|
|
59
|
+
"Set AGENTBRICKS_DISABLE_AGENT_HINT=1 to silence this."
|
|
60
|
+
)
|
|
61
|
+
except Exception:
|
|
62
|
+
return None
|