Skip to main content

What is the Learning Sub Agent?

Julius includes an intelligent learning sub agent that automatically improves its understanding of your data as you use your data connectors. Rather than relying solely on the static schema (table and column names), Julius learns the relationships, patterns, and business context of your data through actual usage. This learning happens automatically in the background every time you interact with your data connectors. Over time, Julius builds a knowledge base that helps it generate more accurate queries, understand complex relationships between tables, and reduce errors, all without any manual setup. The learning sub agent is particularly powerful for databases with complex relationships, non-obvious foreign keys, or business-specific logic that isn’t captured in the raw schema alone.

How It Works

The learning sub agent runs asynchronously in the background after each conversation where you use a data connector. It examines your chat history, the queries Julius generated, their outputs, and any errors to identify table relationships, column patterns, and business context specific to your data. Below is a diagram that demonstrates this process. Learning Sub Agent Architecture When you interact with Julius using a data connector, the learning sub agent observes:
  • Your prompts and questions
  • The SQL queries or Python code Julius generates
  • Query results and any errors
  • Your existing learned schema knowledge
After each conversation, this information is sent to the Learning Sub Agent, which runs asynchronously in the background. The sub agent analyzes patterns in how tables connect, what columns are used together, and any business context from your conversations. It then updates your learned knowledge store with these insights. When you start a new conversation, Julius pulls the relevant learned information to provide better context for generating queries. The entire process is non-blocking and happens in the background, so it never slows down your interactions.

What Julius Learns

The learning sub agent focuses on contextual information that helps Julius understand how your data fits together and how you use it. What the Learning Sub Agent Learns Specifically, Julius learns:
  • Column Usage Patterns: Understanding what each column represents in business terms
    • Example: sales.revenue → “Total sales amount in USD”
    • Example: orders.status → “Values: pending, shipped, delivered, cancelled”
  • Table Relationships: How tables connect to each other through foreign keys
    • Example: sales.region_id → “Links to regions.id table”
  • Business Context: Domain-specific information gleaned from your conversations
    • Example: customers → “B2B customer master table with primary business contact info”
  • Common Join Patterns: Frequently used table combinations and relationships
    • Example: products.category → “Product classification, often joined with sales for analysis”
These learnings are expressed in natural language descriptions that help Julius understand not just the structure of your data, but how it’s actually used in your organization.

Benefits

The learning sub agent provides several key advantages: More Accurate Queries: As Julius learns about your data relationships, it generates SQL queries with correct joins and references, reducing errors. Better Business Understanding: Julius learns the business meaning behind your column names and table structures, making it easier to ask questions in plain language. Improved Over Time: The more you use your data connectors, the smarter Julius becomes about your specific data. Zero Setup Required: Learning happens automatically—you don’t need to manually document your schema or configure anything. Persists Across Conversations: Learned knowledge carries over to all future conversations, so you don’t have to re-explain your data structure each time.

How Learning Improves Your Experience

Consider this example: You have a database with sales, customers, and regions tables. The first time you ask Julius to analyze sales by region, it might need to explore the schema to find the relationships. However, after that interaction, Julius learns that:
  • sales.region_id links to regions.id
  • sales.customer_id links to customers.id
  • regions contains geographic information for grouping sales
The next time you ask a similar question, Julius already knows these relationships and can generate accurate queries immediately, without trial and error.

How to View Learned Information

You can view and manage what the learning sub agent has discovered about your data connectors at any time. Navigate to your Data Connectors page to access your learned information. Step 1: Navigate to Data Connectors Open the sidebar menu and click on Data Connectors, or visit julius.ai/data-connectors directly. Navigate to Data Connectors Step 2: Select Your Connector Find the data connector you want to view and click See what AI has learned. See what AI has learned button
The learning progress indicator shows how much Julius has learned about your connector. As you use the connector more, this percentage will increase.
Step 3: View Learned Information Click the Learned Information tab to see all the schema knowledge Julius has discovered. Here you can:
  • View all learned properties: See the table and column names along with their learned descriptions
  • Refresh: Manually trigger the learning sub agent to analyze recent conversations
  • Freeze Schema: Prevent the sub agent from making automatic updates
  • Add Property: Manually add your own schema knowledge
  • Delete entries: Remove individual learned properties by clicking the X
Learned Information tab showing schema properties

Privacy and Data

The learning sub agent only learns about the structure and relationships of your data, not the actual data values. It focuses on schema patterns, column purposes, and table relationships. Your actual data remains private and secure.
The learning sub agent works with all data connector types including PostgreSQL, BigQuery, Snowflake, and MCP servers.