TableTalk
TableTalk is an evaluation and observability framework for natural-language agents built on existing
dbt projects. manifest.json is the complete authority for what an agent may query; warehouse
connections are read-only execution adapters for those dbt relations.
Start from a dbt project
cd my-dbt-project
dbt parse
dbt docs generate # recommended: adds physical warehouse types
tabletalk init
tabletalk agent create
tabletalk eval create revenue
tabletalk eval run revenue
tabletalk ask revenue "What was recognized revenue last month?"
tabletalk init finds dbt_project.yml and target/manifest.json, resolves a supported SQLite,
DuckDB, or Snowflake target from the dbt profile, and writes only non-secret TableTalk settings.
Agent creation asks the user to choose a displayed dbt group, tag, model, path, package, or source and
whether to include lineage. It previews the exact resolved models, descriptions, catalog types, tests,
constraints, and lineage before writing a small selector-based resource. Raw selectors remain available
for automation.
name: revenue
description: Answers questions about recognized revenue.
select:
- group:finance
- tag:revenue
exclude:
- model:customer_sensitive
instructions:
- Use recognized revenue unless the user explicitly requests bookings.
sample_questions:
- What was recognized revenue last month?
Descriptions, columns, tests, constraints, ownership, access, tags, and lineage stay in dbt. They are never duplicated into an agent file.
Correctness and provenance
Live questions and eval cases call the exact same Runtime.answer path. Before execution, TableTalk
parses generated SQL and requires one read-only query, in-scope manifest relations, known columns,
explicit join conditions, row and timeout limits, and explicit sensitive-data permission. It derives
used dbt nodes and columns from that parsed SQL—not from model output.
Every result includes the answer, interpretation, assumptions, generated and executed SQL, dbt nodes, columns, relevant test health, bounded evidence, evidence-linked claims, verification outcomes, manifest and agent fingerprints, model and warehouse identity, latency, and token usage. Terminal and web views expose “How this answer was formed” without separate flags.
Eval correctness is determined by execution, scope, model/column expectations, result equality,
reference-query matching, shape/count assertions, tolerance, and claim evidence. Eval creation uses the
reviewed SQL as the default changing-data reference, runs it immediately, and writes a verification
record. A live answer is labeled VERIFIED only when its exact normalized question matches an approved
eval case and all hard checks pass; otherwise it is visibly UNVERIFIED and exits nonzero.
See the dbt-generated reference project and the workflow guide.
Commands
tabletalk inittabletalk agent create|list|showtabletalk eval create|runtabletalk asktabletalk doctor
There is no compile/plan/apply lifecycle or applied-artifact authorization state. Source changes are
active immediately and reproducibility records live under .tabletalk/runs and
.tabletalk/eval-results.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tabletalk-0.5.0.tar.gz.
File metadata
- Download URL: tabletalk-0.5.0.tar.gz
- Upload date:
- Size: 280.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
453c897e629c7f252717570f76501b1bd1fb1cbb4ddf7f01640a410cc3eafe8d
|
|
| MD5 |
c464c6a38fda4f29612d3299937b027f
|
|
| BLAKE2b-256 |
ca50906aa7573b74ae00d4a30f293a783451aaa67185e17cf4b87f3cbb0e60ad
|
Provenance
The following attestation bundles were made for tabletalk-0.5.0.tar.gz:
Publisher:
publish.yml on wtbates99/tabletalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tabletalk-0.5.0.tar.gz -
Subject digest:
453c897e629c7f252717570f76501b1bd1fb1cbb4ddf7f01640a410cc3eafe8d - Sigstore transparency entry: 2315670315
- Sigstore integration time:
-
Permalink:
wtbates99/tabletalk@b16c0275583962678dc4ed446858b54159daf7c3 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/wtbates99
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b16c0275583962678dc4ed446858b54159daf7c3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file tabletalk-0.5.0-py3-none-any.whl.
File metadata
- Download URL: tabletalk-0.5.0-py3-none-any.whl
- Upload date:
- Size: 52.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
644aba4e8ee05f7c223a346f81ecdf2bf2996f288c870d745103e0693aa773bb
|
|
| MD5 |
6a3a5c74f4bcf56ff0ef910e7c89e93b
|
|
| BLAKE2b-256 |
bd9be94a4ab9aeb8c7e4b342c47bfd9d540ab3b4967b15d504d2d12ab211446f
|
Provenance
The following attestation bundles were made for tabletalk-0.5.0-py3-none-any.whl:
Publisher:
publish.yml on wtbates99/tabletalk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tabletalk-0.5.0-py3-none-any.whl -
Subject digest:
644aba4e8ee05f7c223a346f81ecdf2bf2996f288c870d745103e0693aa773bb - Sigstore transparency entry: 2315670467
- Sigstore integration time:
-
Permalink:
wtbates99/tabletalk@b16c0275583962678dc4ed446858b54159daf7c3 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/wtbates99
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b16c0275583962678dc4ed446858b54159daf7c3 -
Trigger Event:
release
-
Statement type: