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
Conversation engine for an AI chat over your own database, built on Anthropic
Managed Agents (beta) with tools running as safe read-only SQL over the anonymized
views of adt/doctrine-anonymization.
The package is deliberately transport- and queue-free: ManagedAgentsClient and
MessageDispatcher are interfaces the project implements with its own HTTP client
and queue. Entities follow the interface + trait pattern, so ownership relations
stay in the project.
- AgentTurnRunner: the polling turn loop - session handling incl. a retry with a
fresh session when a stale one refuses the message, local execution of custom
tools with results sent back, token accounting (window = last request incl.
cache counters, output summed), hard stops for polls and tool calls that are
never retried so a message cannot be duplicated
- ToolHandler: get_database_schema / execute_sql / render_chart / render_table /
export_csv (validate + token now, stream at download time - never through the
model)
- AgentProvisioner: idempotent agent + environment provisioning per anonymized
schema, mapping stored in a project entity
- SystemPromptBuilder: template with a {{tableList}} placeholder, table names
only - columns are fetched on demand by the schema tool
- PiiResponseFilter + PiiValueCollector: pattern and literal-value redaction of
the final reply, configurable labels for localized chats
- tests drive the full loop against a scriptable fake of the Managed Agents API