You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Measured against published 0.6.0: an agent holding our tools can create a managed database,
declare a table, load data into it, query it and delete it — the whole lifecycle, end to end,
unaided. What it cannot do is make any of that searchable.
There is no agent-callable way to build a vector store, and no agent-callable way to create an
index of either kind. Both search modes need setup that happens outside the agent's reach, in
Python, by a developer.
So the honest position today is: this integration supports agent-driven analytics over data a
developer provisioned. That may well be the right boundary — letting a model create indexes has
real cost implications — but right now it is neither documented nor decided, it is just where the
API happens to stop.
What is agent-reachable today
Capability
Agent can do it alone
Note
Query, aggregate, analyse
yes
over loaded data or attached live sources
Discover the schema
yes
types only — cannot tell a populated column from an empty one
Rank by keyword or by meaning
yes
only if a developer provisioned the index or corpus
Parquet only. No CSV, JSON, Arrow, or inline rows — so an agent cannot materialise data it
already holds.
No vector-store creation tool.HotdataVectorStore is Python-only.
No index-creation tool, for vector or BM25. BM25 in particular has no brute-force fallback,
so an unindexed column is a hard error rather than a slow query.
The asymmetry underneath it
bm25_search takes text, so an agent can compose it into SQL unaided — that is what makes a
relevance-defined cohort expressible in one query. vector_search takes a vector, so a
meaning-defined cohort cannot be expressed in SQL by an agent at all. Something has to embed the
concept first.
This is the sharpest gap the downstream POC found, and it is why the semantic side is a
second-class citizen of the composability story that this integration's whole pitch rests on. A
tool that takes a concept, embeds it, and returns a SQL-addressable cohort would close it.
That work belongs with the semantic search tool in #39; this issue is the surrounding provisioning
question.
What this issue needs before it needs code
A decision, not an implementation:
Should provisioning be agent-callable at all, or explicitly developer-only?
If agent-callable: behind a flag, off by default? With what cost guardrails?
If developer-only: say so in the tool descriptions and the README, so the boundary is a stated
design position rather than an accident.
Whichever way it goes, the boundary should be written down. Right now a reader of the tool list
would reasonably infer more autonomy than exists.
Measured against published 0.6.0: an agent holding our tools can create a managed database,
declare a table, load data into it, query it and delete it — the whole lifecycle, end to end,
unaided. What it cannot do is make any of that searchable.
There is no agent-callable way to build a vector store, and no agent-callable way to create an
index of either kind. Both search modes need setup that happens outside the agent's reach, in
Python, by a developer.
So the honest position today is: this integration supports agent-driven analytics over data a
developer provisioned. That may well be the right boundary — letting a model create indexes has
real cost implications — but right now it is neither documented nor decided, it is just where the
API happens to stop.
What is agent-reachable today
The four specific gaps
load_managed_tabletakes a local filesystem path only. A URL raises a raw PythonFileNotFoundErrorbefore anything reaches the engine, which makes it unusable from a deployedAgent Server that has no local files. (URL loads are already noted in Tool layer: surface tool errors to the model, read-only mode and tool name constants, URL-based table loads #41 — flagged here for
completeness, not to duplicate.)
already holds.
HotdataVectorStoreis Python-only.so an unindexed column is a hard error rather than a slow query.
The asymmetry underneath it
bm25_searchtakes text, so an agent can compose it into SQL unaided — that is what makes arelevance-defined cohort expressible in one query.
vector_searchtakes a vector, so ameaning-defined cohort cannot be expressed in SQL by an agent at all. Something has to embed the
concept first.
This is the sharpest gap the downstream POC found, and it is why the semantic side is a
second-class citizen of the composability story that this integration's whole pitch rests on. A
tool that takes a concept, embeds it, and returns a SQL-addressable cohort would close it.
That work belongs with the semantic search tool in #39; this issue is the surrounding provisioning
question.
What this issue needs before it needs code
A decision, not an implementation:
design position rather than an accident.
Whichever way it goes, the boundary should be written down. Right now a reader of the tool list
would reasonably infer more autonomy than exists.