用途:用 Databricks Supervisor API 替代客户端智能体循环,让 Databricks 在服务端执行工具选择与综合。适合需要接入 Genie 空间、UC 函数、Knowledge Assistant、MCP 服务器,或把自有 Python 函数工具与托管工具混用,并希望按请求选择模型与工具的场景。
主要能力:声明式工具列表,支持 genie_space、uc_function、knowledge_assistant、uc_connection、app 及客户端 function 类型;同一请求可混合托管工具与客户端函数工具;支持流式与非流式调用;支持 MLflow 分布式追踪,将服务端与客户端 span 关联到同一 trace;支持后台模式处理长任务。
使用方式:安装 databricks-openai>=0.14.0 与 databricks-sdk>=0.55.0,运行 uv sync;用 uv run discover-tools 发现工作区可用托管资源;在 agent_server/agent.py 中用 DatabricksOpenAI(workspace_client=..., use_ai_gateway=True) 调用 client.responses.create(),传入 model、input、tools。认证可选 OBO(推荐,按请求传 get_user_workspace_client(),需在 app.yaml 配置 OAuth scopes)或服务主体模式(在 databricks.yml 授予资源权限)。本地测试 uv run start-app,部署 databricks bundle deploy && databricks bundle run {{BUNDLE_NAME}}。
限制:传入工具时不支持 temperature、top_p 等推理参数;stream 与 background 不能同时为 true;后台模式最长执行 30 分钟;OBO 模式不支持 app 类型工具;分布式追踪要求 MLFLOW_EXPERIMENT_ID 且实验使用 Unity Catalog 追踪位置;MCP 工具需多轮审批流程。具体模型 ID 与权限映射见资料。