experimental: add databricks-genie-agent lifecycle skill suite (Genie Space → Genie Agent rename) + wire it to databricks-metric-views - #182
Closed
anhhchu wants to merge 12 commits into
Conversation
… & Genie docs Add the databricks-genie experimental skill (MCP create/query/export/import/ migrate + Conversation API) and its in-product Genie Code Agent suite (create/diagnose/optimize-space/optimize-query). Reorganize metric-views references for clear separation of concerns and wire cross-skill discovery: - Split querying out of patterns.md -> create-patterns.md (creation) and new query-patterns.md (MEASURE() basics, filtering, join rollups, window measures, casting, MCP query, plus rules & gotchas incl. MISSING_AGGREGATION). - Trim genie-integration.md to metric-view *design*; move Genie-space operation (sizing, validation loop, benchmarks, regression, checklist, anti-patterns) to databricks-genie/space-quality.md. - Bidirectional discovery between the main skill and the Genie Code suite; de-duplicate metric-view rules by pointing the suite at the canonical files. - create-genie-space now recommends building a governed metric view (and asks the user to confirm) when raw tables are the source for reusable KPIs. Co-authored-by: Isaac Signed-off-by: Anh Chu <anhhchu12@gmail.com>
Make the recommended order for adding Space config surfaces explicit and consistent (structured context first, free-text instructions last): - Add space description as the foundational first item (required for multi-agent routing) in Design Priorities and Workflow step 7. - Add the missing SQL functions surface and mark text instructions as the last resort in Workflow step 7. - Add a Vocabulary table mapping Genie-UI terms (SQL expressions, SQL queries/instructions, SQL functions, text instructions, space description) to the skill's surfaces. - Add a space-description check to Static Health Checks. Co-authored-by: Isaac Signed-off-by: Anh Chu <anhhchu12@gmail.com>
Signed-off-by: Anh Chu <anhhchu12@gmail.com>
Bring in all upstream main changes (per-provider plugin bundles, generated manifests, new/expanded skills) and reconcile the two overlapping skills so they are comprehensive but not duplicated, with the CLI as the default and MCP shown as an optional reference where available. databricks-genie: - Keep the branch's lifecycle subskills (create/diagnose/optimize-space/ optimize-query), "When to Use", reference files, and metric-views links. - Adopt main's CLI-first SKILL.md (databricks genie create-space, get-space, start-conversation, etc.) plus its serialized_space field schema and troubleshooting as the canonical path. - Demote the branch's MCP-first content to "MCP alternative (if available)" callouts (manage_genie / ask_genie / get_table_stats_and_schema). - Add CLI-is-the-default banners to references/spaces.md and conversation.md. - Lifecycle table now lists CLI as default with an MCP-equivalent column. - Take main's correct openai.yaml (branch copy had MLflow metadata). databricks-metric-views: - Restore main's SQL DDL operations + CLI execution as the default path. - Demote manage_metric_views to "MCP Tools (if available)". - Inspect-schema step now CLI-default (discover-schema) with MCP alternative. - Keep the branch's genie-integration.md and query-patterns.md references. Regenerated manifest.json and the plugins/databricks bundle; validate and the 111 hook tests pass. Co-authored-by: Isaac Signed-off-by: Anh Chu <anhhchu12@gmail.com>
…c (Genie Code + CLI/MCP) Reframe the four Genie lifecycle subskills (create/diagnose/optimize-space/ optimize-query) so they run both inside Databricks Genie Code (native UI) and from an external agent via the Databricks CLI/MCP, instead of reading as Genie-Code-only with a CLI appendix. - Host-agnostic H1 titles and frontmatter descriptions (keep trigger keywords so discovery fires for external use too); names unchanged. - Add an "Execution Context" section up front (Genie Code UI vs CLI/MCP) that names per-skill UI-only surfaces and prerequisites. - Promote the former "Running Outside Databricks" appendix to a "Mechanism Map" referenced from Execution Context. - Wire verified CLI substitutes: genie-*-eval-run (Beta) for native benchmark execution, query-history list --include-metrics for query triage, system.access.audit for Monitor-tab feedback; flag insight labels and /analyze rewrite as the only UI-only residuals. - Document benchmark_question_ids scoping for staged eval gates, with a warning that an empty body or a misspelled field silently runs all questions. - Reconcile parent SKILL.md: subskills are dual-host lifecycle skills (not in-product-only); databricks-genie is the parent orchestration hub. Co-authored-by: Isaac Signed-off-by: Anh Chu <anhhchu12@gmail.com>
The create-genie-space skill told the agent to enable column descriptions, synonyms, format assistance, entity matching, and hidden fields in prose, but never documented the serialized_space field that carries them (column_configs). As a result the create workflow shipped spaces with empty per-column context. - spaces.md: add the API-verified column_configs schema (column_name, description[], synonyms[], enable_format_assistance, enable_entity_matching, exclude), extend the Python helper to build it, and fix the two spots that called it a merely "preserved" field. - create-genie-space SKILL.md step 7: point the description/synonym/ format/entity/hidden-field bullets at their column_configs sub-fields and add an explicit "build column_configs during creation" step. - space-design-guide.md: note surfaces 4-6 + hidden fields apply per column via column_configs[], and reinforce selective enabling of format assistance / entity matching (cardinality-driven, not blanket). Verified end-to-end: schema round-trips through the live Genie API. Co-authored-by: Isaac Signed-off-by: Anh Chu <anhhchu12@gmail.com>
Fold the condensed space-quality.md reference into the lifecycle subskills that already own its methodology, eliminating the one mirrored file in the databricks-genie skill: - Move Space Sizing, the incremental build & validation loop, and Anti-Patterns into create-genie-space/space-design-guide.md (regression testing already lived in optimize-genie-space/optimization-guide.md). - Rewire all references (parent SKILL.md x4, metric-views genie-integration.md x3) to the new homes. - Delete references/space-quality.md and regenerate manifest.json. Co-authored-by: Isaac Signed-off-by: Anh Chu <anhhchu12@gmail.com>
Signed-off-by: Anh Chu <anhhchu12@gmail.com>
anhhchu
requested review from
a team,
dustinvannoy-db,
lennartkats-db and
simonfaltum
as code owners
June 23, 2026 17:43
anhhchu
force-pushed
the
anhhchu/semantic_genie
branch
from
June 23, 2026 22:14
e94e994 to
c6db772
Compare
- Rename databricks-genie skill tree to databricks-genie-agent (spaces → agents) - Rename metric-views genie-integration.md → genie-agent-integration.md; refresh references - Regenerate manifest.json Signed-off-by: Anh Chu <anhhchu12@gmail.com> Co-authored-by: Isaac
anhhchu
force-pushed
the
anhhchu/semantic_genie
branch
from
June 23, 2026 22:42
c6db772 to
bfe2ed1
Compare
- Don't recommend a base view for a single fact table; source it directly with dimension joins. Base views are only for multi-fact or nested KPIs. - Correct format-block guidance: format IS supported but requires a `type` discriminator (number/currency/percentage/byte/date/date_time) with enum-token values, not "yyyy-MM-dd" patterns. Replaces the prior "omit format entirely" rule that produced unformatted metric views. Co-authored-by: Isaac
These two column_configs toggles have no Metric View equivalent, so a Genie space built on a fully-governed MV silently ships with both off unless column_configs are emitted explicitly. Document the fact once in the agents.md schema reference, with an anti-pattern row in the design guide and a pointer from the create workflow. Co-authored-by: Isaac
Add a "Qualify Columns In SQL" rule so SQL snippets and example SQL always prefix columns with their table/Metric View name, avoiding the "Table name or alias is required for column" error. Also fix "a Agent" → "an Agent" grammar and stale databricks-genie → databricks-genie-agent link text. Co-authored-by: Isaac
Collaborator
|
Closing this one in favor of reworking this internally and pushing final updates to this repo. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
experimental: add
databricks-genie-agentlifecycle skill suite + wire it todatabricks-metric-viewsSummary
Adds the experimental
databricks-genie-agentskill as an orchestration hub for the full Genie Agent lifecycle, organized as a suite of dual-host lifecycle subskills, and establishes a bidirectional link between the Genie skill and the existingdatabricks-metric-viewsskill so governed semantics and Genie-agent methodology each live in exactly one place.Everything here is experimental (
experimental/), so it is not in the generated plugin bundle and carries nometaplugin/plugin.meta.jsonentry or routing row — consistent with the repo's experimental-skill policy.Naming: "Genie Space" → "Genie Agent"
This branch renames the skill suite and all related identifiers from the "Genie Space" vocabulary to "Genie Agent", matching the current Databricks product naming. The rename is applied consistently across directories, filenames, skill names, references, and prose:
experimental/databricks-genie/experimental/databricks-genie-agent/create-genie-space/create-genie-agent/diagnose-genie-space/diagnose-genie-agent/optimize-genie-space/optimize-genie-agent/create-genie-space/references/space-design-guide.mdcreate-genie-agent/references/agent-design-guide.mdreferences/spaces.mdreferences/agents.mddatabricks-metric-views/references/genie-integration.mdreferences/genie-agent-integration.mdProse and cross-links throughout the subskills, the metric-views references, and
manifest.jsonwere updated to match (e.g. "Genie Space" → "Genie Agent", "space" → "agent" where it refers to the product object).optimize-genie-query/keeps its name (it was never "space"-qualified).The subskills flow in
databricks-genie-agentdatabricks-genie-agent/SKILL.mdis the orchestration hub. The lifecycle methodology is host-portable — only the mechanism differs (CLI / MCP vs the in-product Genie Code UI) — so the hub carries the canonical methodology and dispatches to one of four lifecycle subskills, each a self-containedSKILL.md(+references/):create-genie-agentdiagnose-genie-agentoptimize-genie-agentoptimize-genie-queryTypical flow:
create → diagnose → optimize-genie-agent, withoptimize-genie-querybranching in for performance issues (and handing back to the quality skills if the SQL is semantically wrong).Design notes on the flow:
create-genie-agent → agent-design-guide.md; benchmark integrity, repair/pruning, and regression gates live inoptimize-genie-agent → optimization-guide.md. The hub's lifecycle table links to these rather than restating them, so there is no drift between the hub and the subskills.references/agents.md(verifiedserialized_spaceschema + CLI) andreferences/conversation.md(Conversation API /ask_genie) are owned by the parent because they're needed even when no subskill is active.The link between
databricks-genie-agentanddatabricks-metric-viewsThe two skills divide responsibility cleanly and cross-link in both directions, so neither duplicates the other:
databricks-genie-agenttreats Metric Views as governed semantic sources and defers their design todatabricks-metric-views. It links togenie-agent-integration.mdfor the design rules that affect Genie answer quality (one-fact-source rule, base-view pattern for multi-fact KPIs, agent metadata, domain organization) and toquery-patterns.mdfor theMEASURE()query rules Genie must follow.genie-agent-integration.mdcarries a Scope note pointing the build / size / validate / benchmark the Agent side back to the Genie lifecycle subskills (create-genie-agent → agent-design-guide.mdandoptimize-genie-agent → optimization-guide.md), so metric-view design guidance no longer restates Genie-agent methodology.Net effect: metric-view design lives in
databricks-metric-views; Genie-agent lifecycle methodology lives indatabricks-genie-agent; each references the other instead of mirroring it.Changes
experimental/databricks-genie-agent/skill: hubSKILL.md, four lifecycle subskills, and shared references (agents.md,conversation.md) — renamed from the priordatabricks-genie/ "Genie Space" naming.experimental/databricks-metric-views/: renamedgenie-integration.md→genie-agent-integration.md; rewiredgenie-agent-integration.md/query-patterns.mdto cross-link with the Genie subskills; related reference cleanup.manifest.json(both skills registered withrepo_dir: experimental).Validation
python3 scripts/skills.py validate— nodatabricks-genie-agentordatabricks-metric-viewserrors.SKILL.md,references/,agents/openai.yaml,assets/databricks.{svg,png}) per CONTRIBUTING.This pull request and its description were written by Isaac.