Why don’t we just use RAG like everyone else? It’s a fair question—RAG has become the go-to approach for most AI systems that need to work with large knowledge bases.
The fundamental issue is that RAG decouples relevance from reasoning—it forces you to decide what’s relevant before you start reasoning. It’s like being required to gather all your research materials before you’re allowed to think about a problem. In practice, this creates an awkward workflow: retrieve some snippets, reason with only those snippets, and if you realize you need different information… tough luck. You’re stuck with your initial retrieval choices.
Think about how you actually research complex questions. You start with some Google searches, read a bit, realize you need to look up something tangential, do more searches, connect some dots, then search again with better keywords. RAG systems cannot do this—they get one shot at retrieval and have to make it work.
Our approach flips this around entirely.
Instead of giving our agent a few carefully selected snippets, we give it everything from the start—your entire codebase, all your Teams history, every GitHub discussion, all your documentation. The agent is born knowing your whole system and can dynamically focus its attention on whatever becomes relevant as it reasons through a problem.
This means when someone asks “why does the authentication service sometimes fail during peak hours?”, our agent does not have to guess which specific files, conversations, or docs might be relevant. It can start with the auth service code, notice a reference to rate limiting, follow that thread to a Teams discussion from six months ago, connect it to a recent incident report, and tie it all together. This dynamic, iterative reasoning within the full context happens fluidly as the agent synthesizes insights across disparate pieces of information.
We make this work at scale through two key innovations our team helped pioneer:
The result? Instead of agents that can use more tools, we have agents with comprehensive knowledge that can synthesize insights across your entire engineering ecosystem.
Most AI coding tools use tool-based architectures where agents make real-time API calls to access your systems. When you ask a question, the agent must decide upfront which specific tools to call—perhaps the GitHub API to search issues, the Teams API to find messages, or the codebase search API to find relevant files. Each data source requires separate API calls with specific query parameters, forcing the agent to predict what information will be relevant before it begins reasoning.
This approach works well for targeted actions like “create a pull request to fix issue #123” where the required information is clearly scoped. However, it fundamentally breaks down when comprehensive understanding is needed across your entire engineering ecosystem.
Consider this scenario: An authentication bug appears during peak traffic, but the root cause spans multiple contexts. The relevant information might include:
With traditional tool-based approaches, the agent must guess which APIs to call and which search terms to use. It might find the code changes but miss the chat context entirely. Even worse, it cannot iteratively refine its understanding. If the agent’s initial API calls do not surface the right information, it’s stuck with incomplete context.
Asimov ingests everything upfront: code, docs, Teams chat history, GitHub threads, Jira tickets—into a unified knowledge base. The result: Instead of agents overburdened with ever more tools, Asimov has the comprehensive knowledge that can synthesize insights across your entire engineering ecosystem in real-time.
In other words, traditional integrations optimize for real-time data access. We optimize for deep synthesis across your entire engineering ecosystem.
Yes! Asimov works best when you connect it with the code that matters most to your team, be it proprietary internal projects or public projects like PyTorch.
Navigate to Settings
, scroll down to Data Sources
and then add the repo link under Add public repository
.
If the answer is wrong because the underlying source is incorrect, you can create a memory for Asimov to recall in future queries. Asimov will remember this piece of information and correct its understanding of your codebase accordingly.
You can also use citations to go directly to the incorrect source and change the information there.
If the answer is wrong because Asimov hallucinated, let us know by marking the response with a thumbs-down and explaining what was incorrect. This helps improve future responses and gives you a chance to provide helpful context.
Asimov continuously monitors your connected data sources and updates its knowledge base as changes occur. The indexing frequency depends on the type of integration:
You can check the last sync time for each data source in your Settings > Data Sources
panel.