Skip to content

databricks-mlflow-evaluation: fix four UX gaps surfaced by a user study - #589

Open
adamgurary wants to merge 1 commit into
databricks-solutions:mainfrom
adamgurary:mlflow-eval-skill-ux-fixes
Open

databricks-mlflow-evaluation: fix four UX gaps surfaced by a user study#589
adamgurary wants to merge 1 commit into
databricks-solutions:mainfrom
adamgurary:mlflow-eval-skill-ux-fixes

Conversation

@adamgurary

Copy link
Copy Markdown

Summary

Running the databricks-mlflow-evaluation skill end to end during a user study surfaced four gaps in the skill guidance. One of them broke the user's Python environment. All four fixes are self-contained edits to the skill markdown (GOTCHAS.md, CRITICAL-interfaces.md, patterns-datasets.md).

1 (highest impact): inspecting a dataset's schema installs databricks-agents and can break the environment

The skill teaches mlflow.genai.datasets.get_dataset() / .to_df() to inspect a persistent dataset. On a Databricks backend these import databricks-agents, which depends on databricks-connect (pinned numpy<2). When a coding agent hits the import error and runs pip install databricks-agents, the install downgrades numpy in an environment that already has numpy 2.x and breaks every downstream import (AttributeError: module 'numpy' has no attribute 'long'). Added a GOTCHA plus an inline note: inspect a dataset's columns with w.tables.get() or DESCRIBE TABLE over a SQL warehouse (needs only databricks-sdk, already installed), never pip install databricks-agents at inspection time.

2: the databricks-agents dependency was not stated up front

Expanded the install section in CRITICAL-interfaces.md to name databricks-agents and its numpy<2 pin.

3: mlflow.openai.autolog() was the default even for LangGraph agents

openai.autolog() captures only the raw LLM call and drops LangGraph node spans. Added an autolog selector table and a GOTCHA: LangChain and LangGraph use mlflow.langchain.autolog() (which needs only langchain-core).

4: attaching to an experiment by numeric ID was not shown

Added the mlflow.set_experiment(experiment_id="<id>") form to the setup example and a GOTCHA for the numeric-name failure.

Testing

Docs-only change to skill markdown. Verified the three files have balanced code fences and that the new Table of Contents anchors resolve to their headings. No code paths affected.

A user study ran a coding agent through the databricks-mlflow-evaluation skill
end to end and hit four gaps:

1. (highest impact) Inspecting a dataset via get_dataset()/.to_df() imports
   databricks-agents, which pulls databricks-connect (pinned numpy<2). Installing
   it downgraded numpy in an env that had numpy>=2 and broke every downstream
   import. Add a GOTCHA + inline note: inspect a dataset's columns with
   w.tables.get() or DESCRIBE TABLE over a SQL warehouse (databricks-sdk only),
   never pip/uv install databricks-agents at inspection time.
2. The databricks-agents dependency was not stated up front. Expand the install
   section and note the numpy<2 pin.
3. openai.autolog() was the default example even for LangGraph agents, which
   drops node spans. Add an autolog selector table + GOTCHA (langchain.autolog
   for LangChain/LangGraph, needs only langchain-core).
4. set_experiment by numeric ID was not shown. Add the experiment_id= form to
   setup and a GOTCHA for the numeric-name failure.

All changes are skill markdown (GOTCHAS.md, CRITICAL-interfaces.md,
patterns-datasets.md). No code paths affected.

Co-authored-by: Isaac
Signed-off-by: Adam Gurary <guraryadam@gmail.com>
@adamgurary
adamgurary force-pushed the mlflow-eval-skill-ux-fixes branch from d6a3edc to 51085c4 Compare July 30, 2026 23:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant