Knowledge Onboarding
Knowledge is a collection of instructions and advice that Devin can reference in all sessions. Think of it as onboarding a new employee with the relevant organizational context.
Knowledge 101
Knowledge is the best way to share codebase-level (vs. task-level) context that can help Devin when working in your codebase. A few examples of what information to put in Devin’s Knowledge include code conformance practices, deployment workflows, PR naming conventions, testing workflows, how to interact with proprietary tools and more.
A few FYIs about Knowledge:
- Devin will automatically generate repo knowledge based on the existing READMEs, file structure and contents of the connected repositories. Note that if you don’t give Devin access to the repo, it won’t generate any associated Knowledge.
- Knowledge is retrieved based on the Trigger you set. The more specific the trigger (e.g. which file, repo or type of task the Knowledge applies to) the better the retrieval. You can find more details here.
- Devin will tell you in a session what Knowledge it used, you can see this under “Accessed Knowledge” in the session chat.
- Devin will automatically pull and update Knowledge based on specialized files in your codebase including
.rules
,.mdc
,.cursorrules
and.windsurf
. Note that Devin won’t automatically pull in more general file types like.md
.
Knowledge Onboarding Best Practices
It’s helpful to spend a little time upfront investing in getting Devin up to speed. Much like a new hire, sharing relevant context on the codebase and workflows the engineering team follows will go a long way in making Devin more effective. Here are some recommended steps to take when you first set up Devin’s Knowledge:
- Review any auto-generated Knowledge and verify for (a) completeness and (b) accuracy.
- Add Knowledge that you think would be relevant to Devin’s work. If you have existing documentation or files you want to share with Devin, use the import feature to batch upload existing documentation.
- If you want Devin to retrieve the Knowledge note anytime it’s working on a session, make sure to pin it to all repositories. Otherwise, you can pin it to a specific repo if the information is only relevant in that context. If Knowledge isn’t pinned, it will only be used when triggered so make sure your Trigger Description is clear.
- If you don’t have a centralized specialized documentation file in your codebase, we definitely recommend setting one up with a specialized file extension.