[{"data":1,"prerenderedAt":1079},["ShallowReactive",2],{"/blog/gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant":3,"navigation-en-us":295,"banner-en-us":723,"footer-en-us":733,"blog-post-authors-en-us-Abubakar Siddiq Ango":976,"blog-related-posts-en-us-gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant":991,"blog-promotions-en-us":1016,"next-steps-en-us":1069},{"id":4,"title":5,"authors":6,"body":8,"category":272,"date":273,"description":274,"extension":275,"externalUrl":276,"faq":276,"featured":277,"heroImage":278,"meta":279,"navigation":277,"path":280,"seo":281,"slug":286,"stem":287,"tags":288,"template":293,"updatedDate":276,"__hash__":294},"blogPosts/en-us/blog/gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant.md","GitLab Duo Chat 101: Get more done on GitLab with our AI assistant",[7],"Abubakar Siddiq Ango",{"type":9,"value":10,"toc":258},"minimark",[11,28,31,43,48,69,82,86,89,113,124,128,131,138,147,151,154,159,162,205,208,211,215,218,224,228,231,237,240,244,247],[12,13,14,15,21,22,27],"p",{},"GitLab Duo Chat became ",[16,17,20],"a",{"href":18,"rel":19},"https://about.gitlab.com/blog/gitlab-duo-chat-now-generally-available/",[],"generally available","\nin ",[16,23,26],{"href":24,"rel":25},"https://docs.gitlab.com/releases/16/gitlab-16-11-released/",[],"GitLab 16.11","\nand its power as a personal assistant can not be overstated. On a DevSecOps platform, more has to happen than just generating code; planning, discussions, security, compliance, and technical reviews are all critical to developing secure software faster. Issues, epics, merge requests, and other sections of GitLab are where this work happens, with knowledge often buried deep in comment threads. It can take a lot of time to get up to speed on these threads, especially when they've grown to hundreds of comments and interactions and when you've been away from them for a while. This is where\nGitLab Duo Chat can help.",[12,29,30],{},"In this first part of our GitLab Duo Chat 101 series, we'll introduce you to\nChat's capabilities and then dig into how to use Chat to summarize comment threads.",[32,33,34],"blockquote",{},[12,35,36,37,42],{},"Live demo! Discover the future of AI-driven software development with our\nGitLab 17 virtual launch event. ",[16,38,41],{"href":39,"rel":40},"https://about.gitlab.com/eighteen/",[],"Register today","!",[44,45,47],"h2",{"id":46},"gitlab-duo-chats-capabilities","GitLab Duo Chat's capabilities",[12,49,50,51,56,57,62,63,68],{},"With Chat, you can refactor ",[16,52,55],{"href":53,"rel":54},"https://docs.gitlab.com/user/gitlab_duo_chat/#refactor-code-in-the-ide",[],"existing code",", learn how a ",[16,58,61],{"href":59,"rel":60},"https://docs.gitlab.com/user/gitlab_duo_chat/#explain-code-in-the-ide",[],"block of code works",", and write ",[16,64,67],{"href":65,"rel":66},"https://docs.gitlab.com/user/gitlab_duo_chat/#write-tests-in-the-ide",[],"tests","\nfor your code, learn about your issues and epics, and much more. Depending on your prompts, you can make Chat do impressive things that boost developer productivity. In the video below, I showcased how you can use GitLab Duo\nChat to interact with GitLab and learn about your issues and epics.",[70,71,74,75],"figure",{"className":72},[73],"video_container","\n  ",[76,77,81],"iframe",{"src":78,"frameBorder":79,"allowFullScreen":80},"https://www.youtube.com/embed/RJezT5_V6dI?si=XlXGs2DHAYa8Awzs","0","true"," ",[44,83,85],{"id":84},"use-cases","Use cases",[12,87,88],{},"GitLab Duo Chat’s capabilities allow for productivity gains across multiple parts of the software development lifecycle:",[90,91,92,96,104,107,110],"ul",{},[93,94,95],"li",{},"Product and project managers can use Chat’s issues and epics capabilities\nto gain insights into discussions and plan faster.",[93,97,98,99,103],{},"Developers can create solutions faster with code suggestions and\nrefactoring capabilities. When it comes to working with legacy code or code from other team members, less time is spent on research with the ",[100,101,102],"code",{}," /explain"," capability providing the necessary insights to understand the code.",[93,105,106],{},"Quality assurance and test engineers can generate tests and check for\nvulnerabilities",[93,108,109],{},"New employees can get a better understanding of their code base and get\nstarted solving problems.",[93,111,112],{},"Beginner programmers can understand and pick up a language or framework\nquickly and create solutions with Chat providing next steps and insights.",[32,114,115],{},[12,116,117,118,123],{},"Check out \"",[16,119,122],{"href":120,"rel":121},"https://about.gitlab.com/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/",[],"10 best practices for using GitLab Duo\nChat","\" for tips and tricks to craft AI prompts.",[44,125,127],{"id":126},"summarizing-issues","Summarizing issues",[12,129,130],{},"When you encounter an issue, especially one with a lot of comments, you skim through the issue description, along with a couple of comments, but can't always get the complete picture of the conversations. GitLab Duo Chat can get you up to speed fast. In the image below, I asked Chat to summarize an issue along with a follow-up question. In two prompts, I got what I needed to understand what is going on in the issue without spending hours reading through the comments.",[12,132,133],{},[134,135],"img",{"alt":136,"src":137},"Chat summarizing an issue","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099137/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750099137154.png",[12,139,140,141,146],{},"You can use GitLab Duo Chat on the GitLab interface, as well as ",[16,142,145],{"href":143,"rel":144},"https://docs.gitlab.com/user/gitlab_duo_chat/#use-gitlab-duo-chat-in-the-web-ide",[],"the WebIDE,\nVisual Studio Code, and JetBrains interfaces",".",[44,148,150],{"id":149},"prompts-and-context","Prompts and context",[12,152,153],{},"Getting the best responses from any AI tool requires carefully crafting the questions asked. Sometimes, you need to give examples of the responses you expect to prime the large language models (LLMs) toward a desired response.\nHere are some areas to focus on to get desired responses.",[155,156,158],"h3",{"id":157},"context","Context",[12,160,161],{},"Here are three prompts with similar objectives but worded differently:",[163,164,165,181],"table",{},[166,167,168],"thead",{},[169,170,171,175,178],"tr",{},[172,173,174],"th",{},"Prompt 1",[172,176,177],{},"Prompt 2",[172,179,180],{},"Prompt 3",[182,183,184],"tbody",{},[169,185,186,193,199],{},[187,188,189],"td",{},[134,190],{"alt":191,"src":192},"Prompt: Can you summarize this issue's description?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099137/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750099137154.png",[187,194,195],{},[134,196],{"alt":197,"src":198},"Prompt: Can you provide a high-level summary of this issue?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099137/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750099137155.png",[187,200,201],{},[134,202],{"alt":203,"src":204},"Prompt: Why is this issue popular?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099137/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750099137156.png",[12,206,207],{},"The context, “this issue,” is common among the three prompts; this tells\nChat what resource to use in looking for answers. Prompt 1 gives additional context on what to focus on: the description of the issue. Prompt 2 is not limited in its scope, which means the LLMs will spend more time going through the description and all the comments to provide a more detailed summary of the whole issue. (Note: As of the publication of this blog, there were more than 90 comments in that issue.) Prompt 3 got a poorer response because not much expectation was set for the type of response expected.",[12,209,210],{},"Low-context communication\nis critical in crafting your prompt for the best responses, as all information needed for the LLMs to provide an informed response is provided.",[155,212,214],{"id":213},"simplicity","Simplicity",[12,216,217],{},"The wordiness of prompts can sometimes lead to incorrect or no responses. In the image below, you can see that rephrasing a prompt from “Customers have mentioned why this issue is important to them. Can you list the top 3 reasons they mentioned?” to “Why is this issue important to customers?” led to the expected response. When you don’t get the response you desire, simplifying or changing the words used in your prompt can improve the quality of responses.",[12,219,220],{},[134,221],{"alt":222,"src":223},"Wordy Chat prompts","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099137/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750099137158.png",[155,225,227],{"id":226},"follow-up-questions","Follow-up questions",[12,229,230],{},"GitLab Duo Chat can have follow-up conversations – an essential capability.\nIn the image below, I continued asking how the issue in question can be solved in GitLab's code along with a follow-up question asking for code samples.",[12,232,233],{},[134,234],{"alt":235,"src":236},"Streamlined Chat prompt shown","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099137/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750099137158.png",[12,238,239],{},"Follow-up questions allow the application to maintain context and provide faster responses. A recommendation is to provide parts of Chat’s previous responses in the next prompt. In the example above, I mentioned “Rails App,” as previously suggested.",[44,241,243],{"id":242},"get-started-with-gitlab-duo-chat","Get started with GitLab Duo Chat",[12,245,246],{},"GitLab Duo Chat does more than help you write better code, it helps you navigate through problems and quickly find solutions. With the right prompts and context, you can build secure software faster.",[32,248,249],{},[12,250,251,252,257],{},"Want to try GitLab Duo Chat? ",[16,253,256],{"href":254,"rel":255},"https://about.gitlab.com/gitlab-duo-agent-platform/#free-trial",[],"Start your free\ntrial"," today.",{"title":259,"searchDepth":260,"depth":260,"links":261},"",2,[262,263,264,265,271],{"id":46,"depth":260,"text":47},{"id":84,"depth":260,"text":85},{"id":126,"depth":260,"text":127},{"id":149,"depth":260,"text":150,"children":266},[267,269,270],{"id":157,"depth":268,"text":158},3,{"id":213,"depth":268,"text":214},{"id":226,"depth":268,"text":227},{"id":242,"depth":260,"text":243},"ai","2024-05-29","In this first article in our series learn how Chat can improve developer productivity – for example, by summarizing issues – and how to improve prompts to get better answers faster.","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099126/Blog/Hero%20Images/Blog/Hero%20Images/GitLab_Duo_Blog_Hero_1800x945_r2_B%20%281%29_6a2UB7TOQk3JKxyb5yqYtc_1750099126039.png",{},"/en-us/blog/gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant",{"ogTitle":5,"ogImage":278,"ogDescription":274,"ogSiteName":282,"noIndex":283,"ogType":284,"ogUrl":285,"title":5,"canonicalUrls":285,"description":274},"https://about.gitlab.com",false,"article","https://about.gitlab.com/blog/gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant","gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant","en-us/blog/gitlab-duo-chat-101-get-more-done-on-gitlab-with-our-ai-assistant",[289,290,291,292],"AI","DevSecOps platform","DevSecOps","tutorial","BlogPost","sVNdQhepcH7Occ2hfh62RNXamfHncQaFitsuvl27lRI",{"logo":296,"freeTrial":301,"sales":306,"login":311,"items":316,"search":643,"minimal":674,"duo":693,"switchNav":702,"pricingDeployment":713},{"config":297},{"href":298,"dataGaName":299,"dataGaLocation":300},"/","gitlab logo","header",{"text":302,"config":303},"Get free trial",{"href":304,"dataGaName":305,"dataGaLocation":300},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":307,"config":308},"Request a demo",{"href":309,"dataGaName":310,"dataGaLocation":300},"/sales/?contact-topic=request-demo","sales",{"text":312,"config":313},"Sign in",{"href":314,"dataGaName":315,"dataGaLocation":300},"https://gitlab.com/users/sign_in/","sign in",[317,346,446,451,565,621],{"text":318,"config":319,"menu":321},"Platform",{"dataNavLevelOne":320},"platform",{"type":322,"columns":323},"cards",[324,330,338],{"title":318,"description":325,"link":326},"The intelligent orchestration platform for DevSecOps",{"text":327,"config":328},"Explore our Platform",{"href":329,"dataGaName":320,"dataGaLocation":300},"/platform/",{"title":331,"description":332,"link":333},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":334,"config":335},"Meet GitLab Duo",{"href":336,"dataGaName":337,"dataGaLocation":300},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":339,"description":340,"link":341},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":342,"config":343},"Learn more",{"href":344,"dataGaName":345,"dataGaLocation":300},"/why-gitlab/","why gitlab",{"text":347,"left":277,"config":348,"menu":350},"Product",{"dataNavLevelOne":349},"solutions",{"type":351,"link":352,"columns":356,"feature":425},"lists",{"text":353,"config":354},"View all Solutions",{"href":355,"dataGaName":349,"dataGaLocation":300},"/solutions/",[357,381,404],{"title":358,"description":359,"link":360,"items":365},"Automation","CI/CD and automation to accelerate deployment",{"config":361},{"icon":362,"href":363,"dataGaName":364,"dataGaLocation":300},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[366,370,373,377],{"text":367,"config":368},"CI/CD",{"href":369,"dataGaLocation":300,"dataGaName":367},"/solutions/continuous-integration/",{"text":331,"config":371},{"href":336,"dataGaLocation":300,"dataGaName":372},"gitlab duo agent platform - product menu",{"text":374,"config":375},"Source Code Management",{"href":376,"dataGaLocation":300,"dataGaName":374},"/solutions/source-code-management/",{"text":378,"config":379},"Automated Software Delivery",{"href":363,"dataGaLocation":300,"dataGaName":380},"Automated software delivery",{"title":382,"description":383,"link":384,"items":389},"Security","Deliver code faster without compromising security",{"config":385},{"href":386,"dataGaName":387,"dataGaLocation":300,"icon":388},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[390,394,399],{"text":391,"config":392},"Application Security Testing",{"href":386,"dataGaName":393,"dataGaLocation":300},"Application security testing",{"text":395,"config":396},"Software Supply Chain Security",{"href":397,"dataGaLocation":300,"dataGaName":398},"/solutions/supply-chain/","Software supply chain security",{"text":400,"config":401},"Software Compliance",{"href":402,"dataGaName":403,"dataGaLocation":300},"/solutions/software-compliance/","software compliance",{"title":405,"link":406,"items":411},"Measurement",{"config":407},{"icon":408,"href":409,"dataGaName":410,"dataGaLocation":300},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[412,416,420],{"text":413,"config":414},"Visibility & Measurement",{"href":409,"dataGaLocation":300,"dataGaName":415},"Visibility and Measurement",{"text":417,"config":418},"Value Stream Management",{"href":419,"dataGaLocation":300,"dataGaName":417},"/solutions/value-stream-management/",{"text":421,"config":422},"Analytics & Insights",{"href":423,"dataGaLocation":300,"dataGaName":424},"/solutions/analytics-and-insights/","Analytics and insights",{"title":426,"type":351,"items":427},"GitLab for",[428,434,440],{"text":429,"config":430},"Enterprise",{"icon":431,"href":432,"dataGaLocation":300,"dataGaName":433},"Building","/enterprise/","enterprise",{"text":435,"config":436},"Small Business",{"icon":437,"href":438,"dataGaLocation":300,"dataGaName":439},"Work","/small-business/","small business",{"text":441,"config":442},"Public Sector",{"icon":443,"href":444,"dataGaLocation":300,"dataGaName":445},"Organization","/solutions/public-sector/","public sector",{"text":447,"config":448},"Pricing",{"href":449,"dataGaName":450,"dataGaLocation":300,"dataNavLevelOne":450},"/pricing/","pricing",{"text":452,"config":453,"menu":455},"Resources",{"dataNavLevelOne":454},"resources",{"type":351,"link":456,"columns":460,"feature":554},{"text":457,"config":458},"View all resources",{"href":459,"dataGaName":454,"dataGaLocation":300},"/resources/",[461,494,521],{"title":462,"items":463},"Getting started",[464,469,474,479,484,489],{"text":465,"config":466},"Install",{"href":467,"dataGaName":468,"dataGaLocation":300},"/install/","install",{"text":470,"config":471},"Quick start guides",{"href":472,"dataGaName":473,"dataGaLocation":300},"/get-started/","quick setup checklists",{"text":475,"config":476},"Learn",{"href":477,"dataGaLocation":300,"dataGaName":478},"https://university.gitlab.com/","learn",{"text":480,"config":481},"Product documentation",{"href":482,"dataGaName":483,"dataGaLocation":300},"https://docs.gitlab.com/","product documentation",{"text":485,"config":486},"Best practice videos",{"href":487,"dataGaName":488,"dataGaLocation":300},"/getting-started-videos/","best practice videos",{"text":490,"config":491},"Integrations",{"href":492,"dataGaName":493,"dataGaLocation":300},"/integrations/","integrations",{"title":495,"items":496},"Discover",[497,502,507,512,516],{"text":498,"config":499},"Customer success stories",{"href":500,"dataGaName":501,"dataGaLocation":300},"/customers/","customer success stories",{"text":503,"config":504},"Blog",{"href":505,"dataGaName":506,"dataGaLocation":300},"/blog/","blog",{"text":508,"config":509},"Demo Hub",{"href":510,"dataGaName":511,"dataGaLocation":300},"/demo-hub/","demo hub",{"text":513,"config":514},"The Source",{"href":515,"dataGaName":506,"dataGaLocation":300},"/the-source/",{"text":517,"config":518},"Remote",{"href":519,"dataGaName":520,"dataGaLocation":300},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":522,"items":523},"Connect",[524,529,534,539,544,549],{"text":525,"config":526},"GitLab Services",{"href":527,"dataGaName":528,"dataGaLocation":300},"/services/","services",{"text":530,"config":531},"Contribute",{"href":532,"dataGaName":533,"dataGaLocation":300},"https://contributors.gitlab.com","contribute",{"text":535,"config":536},"Community",{"href":537,"dataGaName":538,"dataGaLocation":300},"/community/","community",{"text":540,"config":541},"Forum",{"href":542,"dataGaName":543,"dataGaLocation":300},"https://forum.gitlab.com/","forum",{"text":545,"config":546},"Events",{"href":547,"dataGaName":548,"dataGaLocation":300},"/events/","events",{"text":550,"config":551},"Partners",{"href":552,"dataGaName":553,"dataGaLocation":300},"/partners/","partners",{"config":555,"title":558,"text":559,"link":560},{"background":556,"textColor":557},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":561,"config":562},"Read the latest",{"href":563,"dataGaName":564,"dataGaLocation":300},"/whats-new/","whats new",{"text":566,"config":567,"menu":569},"Company",{"dataNavLevelOne":568},"company",{"type":351,"columns":570},[571],{"items":572},[573,578,584,586,591,596,601,606,611,616],{"text":574,"config":575},"About",{"href":576,"dataGaName":577,"dataGaLocation":300},"/company/","about",{"text":579,"config":580,"footerGa":583},"Jobs",{"href":581,"dataGaName":582,"dataGaLocation":300},"/jobs/","jobs",{"dataGaName":582},{"text":545,"config":585},{"href":547,"dataGaName":548,"dataGaLocation":300},{"text":587,"config":588},"Leadership",{"href":589,"dataGaName":590,"dataGaLocation":300},"/company/team/e-group/","leadership",{"text":592,"config":593},"Handbook",{"href":594,"dataGaName":595,"dataGaLocation":300},"https://handbook.gitlab.com/","handbook",{"text":597,"config":598},"Investor relations",{"href":599,"dataGaName":600,"dataGaLocation":300},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":602,"config":603},"Trust Center",{"href":604,"dataGaName":605,"dataGaLocation":300},"/security/","trust center",{"text":607,"config":608},"AI Transparency Center",{"href":609,"dataGaName":610,"dataGaLocation":300},"/ai-transparency-center/","ai transparency center",{"text":612,"config":613},"Newsletter",{"href":614,"dataGaName":615,"dataGaLocation":300},"/company/contact/#contact-forms","newsletter",{"text":617,"config":618},"Press",{"href":619,"dataGaName":620,"dataGaLocation":300},"/press/","press",{"text":622,"config":623,"menu":624},"Contact us",{"dataNavLevelOne":568},{"type":351,"columns":625},[626],{"items":627},[628,633,638],{"text":629,"config":630},"Talk to sales",{"href":631,"dataGaName":632,"dataGaLocation":300},"/sales/","talk to sales",{"text":634,"config":635},"Support portal",{"href":636,"dataGaName":637,"dataGaLocation":300},"https://support.gitlab.com/hc/en-us","support portal",{"text":639,"config":640},"Customer portal",{"href":641,"dataGaName":642,"dataGaLocation":300},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":644,"login":645,"suggestions":652},"Close",{"text":646,"link":647},"To search repositories and projects, login to",{"text":648,"config":649},"gitlab.com",{"href":314,"dataGaName":650,"dataGaLocation":651},"search login","search",{"text":653,"default":654},"Suggestions",[655,657,661,663,667,671],{"text":331,"config":656},{"href":336,"dataGaName":331,"dataGaLocation":651},{"text":658,"config":659},"Code Suggestions (AI)",{"href":660,"dataGaName":658,"dataGaLocation":651},"/solutions/code-suggestions/",{"text":367,"config":662},{"href":369,"dataGaName":367,"dataGaLocation":651},{"text":664,"config":665},"GitLab on AWS",{"href":666,"dataGaName":664,"dataGaLocation":651},"/partners/technology-partners/aws/",{"text":668,"config":669},"GitLab on Google Cloud",{"href":670,"dataGaName":668,"dataGaLocation":651},"/partners/technology-partners/google-cloud-platform/",{"text":672,"config":673},"Why GitLab?",{"href":344,"dataGaName":672,"dataGaLocation":651},{"freeTrial":675,"mobileIcon":680,"desktopIcon":685,"secondaryButton":688},{"text":676,"config":677},"Start free trial",{"href":678,"dataGaName":305,"dataGaLocation":679},"https://gitlab.com/-/trials/new/","nav",{"altText":681,"config":682},"Gitlab Icon",{"src":683,"dataGaName":684,"dataGaLocation":679},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":681,"config":686},{"src":687,"dataGaName":684,"dataGaLocation":679},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":689,"config":690},"Get Started",{"href":691,"dataGaName":692,"dataGaLocation":679},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":694,"mobileIcon":698,"desktopIcon":700},{"text":695,"config":696},"Learn more about GitLab Duo",{"href":336,"dataGaName":697,"dataGaLocation":679},"gitlab duo",{"altText":681,"config":699},{"src":683,"dataGaName":684,"dataGaLocation":679},{"altText":681,"config":701},{"src":687,"dataGaName":684,"dataGaLocation":679},{"button":703,"mobileIcon":708,"desktopIcon":710},{"text":704,"config":705},"/switch",{"href":706,"dataGaName":707,"dataGaLocation":679},"#contact","switch",{"altText":681,"config":709},{"src":683,"dataGaName":684,"dataGaLocation":679},{"altText":681,"config":711},{"src":712,"dataGaName":684,"dataGaLocation":679},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":714,"mobileIcon":719,"desktopIcon":721},{"text":715,"config":716},"Back to pricing",{"href":449,"dataGaName":717,"dataGaLocation":679,"icon":718},"back to pricing","GoBack",{"altText":681,"config":720},{"src":683,"dataGaName":684,"dataGaLocation":679},{"altText":681,"config":722},{"src":687,"dataGaName":684,"dataGaLocation":679},{"title":724,"titleMobile":725,"button":726,"config":731},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":342,"config":727},{"href":728,"dataGaName":729,"dataGaLocation":730},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":732,"disabled":283},"release",{"data":734},{"text":735,"source":736,"edit":742,"contribute":747,"config":752,"items":757,"minimal":965},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":737,"config":738},"View page source",{"href":739,"dataGaName":740,"dataGaLocation":741},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":743,"config":744},"Edit this page",{"href":745,"dataGaName":746,"dataGaLocation":741},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":748,"config":749},"Please contribute",{"href":750,"dataGaName":751,"dataGaLocation":741},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":753,"facebook":754,"youtube":755,"linkedin":756},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[758,805,857,901,933],{"title":447,"links":759,"subMenu":774},[760,764,769],{"text":761,"config":762},"View plans",{"href":449,"dataGaName":763,"dataGaLocation":741},"view plans",{"text":765,"config":766},"Why Premium?",{"href":767,"dataGaName":768,"dataGaLocation":741},"/pricing/premium/","why premium",{"text":770,"config":771},"Why Ultimate?",{"href":772,"dataGaName":773,"dataGaLocation":741},"/pricing/ultimate/","why ultimate",[775],{"title":776,"links":777},"Contact Us",[778,781,783,785,790,795,800],{"text":779,"config":780},"Contact sales",{"href":631,"dataGaName":310,"dataGaLocation":741},{"text":634,"config":782},{"href":636,"dataGaName":637,"dataGaLocation":741},{"text":639,"config":784},{"href":641,"dataGaName":642,"dataGaLocation":741},{"text":786,"config":787},"Status",{"href":788,"dataGaName":789,"dataGaLocation":741},"https://status.gitlab.com/","status",{"text":791,"config":792},"Terms of use",{"href":793,"dataGaName":794,"dataGaLocation":741},"/terms/","terms of use",{"text":796,"config":797},"Privacy statement",{"href":798,"dataGaName":799,"dataGaLocation":741},"/privacy/","privacy statement",{"text":801,"config":802},"Cookie preferences",{"dataGaName":803,"dataGaLocation":741,"id":804,"isOneTrustButton":277},"cookie preferences","ot-sdk-btn",{"title":347,"links":806,"subMenu":814},[807,810],{"text":290,"config":808},{"href":329,"dataGaName":809,"dataGaLocation":741},"devsecops platform",{"text":811,"config":812},"AI-Assisted Development",{"href":336,"dataGaName":813,"dataGaLocation":741},"ai-assisted development",[815],{"title":816,"links":817},"Topics",[818,823,828,833,838,842,847,852],{"text":819,"config":820},"CICD",{"href":821,"dataGaName":822,"dataGaLocation":741},"/topics/ci-cd/","cicd",{"text":824,"config":825},"GitOps",{"href":826,"dataGaName":827,"dataGaLocation":741},"/topics/gitops/","gitops",{"text":829,"config":830},"DevOps",{"href":831,"dataGaName":832,"dataGaLocation":741},"/topics/devops/","devops",{"text":834,"config":835},"Version Control",{"href":836,"dataGaName":837,"dataGaLocation":741},"/topics/version-control/","version control",{"text":291,"config":839},{"href":840,"dataGaName":841,"dataGaLocation":741},"/topics/devsecops/","devsecops",{"text":843,"config":844},"Cloud Native",{"href":845,"dataGaName":846,"dataGaLocation":741},"/topics/cloud-native/","cloud native",{"text":848,"config":849},"AI for Coding",{"href":850,"dataGaName":851,"dataGaLocation":741},"/topics/devops/ai-for-coding/","ai for coding",{"text":853,"config":854},"Agentic AI",{"href":855,"dataGaName":856,"dataGaLocation":741},"/topics/agentic-ai/","agentic ai",{"title":858,"links":859},"Solutions",[860,862,864,869,873,876,880,883,885,888,891,896],{"text":391,"config":861},{"href":386,"dataGaName":391,"dataGaLocation":741},{"text":380,"config":863},{"href":363,"dataGaName":364,"dataGaLocation":741},{"text":865,"config":866},"Agile development",{"href":867,"dataGaName":868,"dataGaLocation":741},"/solutions/agile-delivery/","agile delivery",{"text":870,"config":871},"SCM",{"href":376,"dataGaName":872,"dataGaLocation":741},"source code management",{"text":819,"config":874},{"href":369,"dataGaName":875,"dataGaLocation":741},"continuous integration & delivery",{"text":877,"config":878},"Value stream management",{"href":419,"dataGaName":879,"dataGaLocation":741},"value stream management",{"text":824,"config":881},{"href":882,"dataGaName":827,"dataGaLocation":741},"/solutions/gitops/",{"text":429,"config":884},{"href":432,"dataGaName":433,"dataGaLocation":741},{"text":886,"config":887},"Small business",{"href":438,"dataGaName":439,"dataGaLocation":741},{"text":889,"config":890},"Public sector",{"href":444,"dataGaName":445,"dataGaLocation":741},{"text":892,"config":893},"Education",{"href":894,"dataGaName":895,"dataGaLocation":741},"/solutions/education/","education",{"text":897,"config":898},"Financial services",{"href":899,"dataGaName":900,"dataGaLocation":741},"/solutions/finance/","financial services",{"title":452,"links":902},[903,905,907,909,912,914,917,919,921,923,925,927,929,931],{"text":465,"config":904},{"href":467,"dataGaName":468,"dataGaLocation":741},{"text":470,"config":906},{"href":472,"dataGaName":473,"dataGaLocation":741},{"text":475,"config":908},{"href":477,"dataGaName":478,"dataGaLocation":741},{"text":480,"config":910},{"href":482,"dataGaName":911,"dataGaLocation":741},"docs",{"text":503,"config":913},{"href":505,"dataGaName":506,"dataGaLocation":741},{"text":915,"config":916},"What's new",{"href":563,"dataGaName":564,"dataGaLocation":741},{"text":498,"config":918},{"href":500,"dataGaName":501,"dataGaLocation":741},{"text":517,"config":920},{"href":519,"dataGaName":520,"dataGaLocation":741},{"text":525,"config":922},{"href":527,"dataGaName":528,"dataGaLocation":741},{"text":530,"config":924},{"href":532,"dataGaName":533,"dataGaLocation":741},{"text":535,"config":926},{"href":537,"dataGaName":538,"dataGaLocation":741},{"text":540,"config":928},{"href":542,"dataGaName":543,"dataGaLocation":741},{"text":545,"config":930},{"href":547,"dataGaName":548,"dataGaLocation":741},{"text":550,"config":932},{"href":552,"dataGaName":553,"dataGaLocation":741},{"title":566,"links":934},[935,937,939,941,943,945,949,954,956,958,960],{"text":574,"config":936},{"href":576,"dataGaName":568,"dataGaLocation":741},{"text":579,"config":938},{"href":581,"dataGaName":582,"dataGaLocation":741},{"text":587,"config":940},{"href":589,"dataGaName":590,"dataGaLocation":741},{"text":592,"config":942},{"href":594,"dataGaName":595,"dataGaLocation":741},{"text":597,"config":944},{"href":599,"dataGaName":600,"dataGaLocation":741},{"text":946,"config":947},"Sustainability",{"href":948,"dataGaName":946,"dataGaLocation":741},"/sustainability/",{"text":950,"config":951},"Diversity, inclusion and belonging (DIB)",{"href":952,"dataGaName":953,"dataGaLocation":741},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":602,"config":955},{"href":604,"dataGaName":605,"dataGaLocation":741},{"text":612,"config":957},{"href":614,"dataGaName":615,"dataGaLocation":741},{"text":617,"config":959},{"href":619,"dataGaName":620,"dataGaLocation":741},{"text":961,"config":962},"Modern Slavery Transparency Statement",{"href":963,"dataGaName":964,"dataGaLocation":741},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":966},[967,970,973],{"text":968,"config":969},"Terms",{"href":793,"dataGaName":794,"dataGaLocation":741},{"text":971,"config":972},"Cookies",{"dataGaName":803,"dataGaLocation":741,"id":804,"isOneTrustButton":277},{"text":974,"config":975},"Privacy",{"href":798,"dataGaName":799,"dataGaLocation":741},[977],{"id":978,"title":7,"body":276,"config":979,"content":981,"description":276,"extension":985,"meta":986,"navigation":277,"path":987,"seo":988,"stem":989,"__hash__":990},"blogAuthors/en-us/blog/authors/abubakar-siddiq-ango.yml",{"template":980},"BlogAuthor",{"name":7,"config":982},{"headshot":983,"ctfId":984},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660104/Blog/Author%20Headshots/abuango-headshot.jpg","abuango","yml",{},"/en-us/blog/authors/abubakar-siddiq-ango",{},"en-us/blog/authors/abubakar-siddiq-ango","u5Jv4JxCpfmcGQuXEU4Lr5xVBJP9LAB2NkXRMLeYwPE",[992,1000,1008],{"title":993,"description":994,"heroImage":995,"category":272,"date":996,"authors":997,"slug":999,"externalUrl":276},"How I built a demo generator with GitLab Duo Agent Platform","Demos haven't always looked like this. Looking back over my career, here's how they have evolved. Follow the tutorial to build your own demo and agent.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-08-13",[998],"Itzik Gan Baruch","agentic-click-through-demo",{"title":1001,"description":1002,"heroImage":1003,"category":272,"date":1004,"authors":1005,"slug":1007,"externalUrl":276},"How to govern agentic AI, MCPs, and AI code assistants","AI agents can write, push, and deploy without human review at each step. Learn a practical framework for controlling access, permissions, and audit trails.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png","2026-07-31",[1006],"Julie Griffin","govern-agentic-ai-mcps-code-assistants",{"title":1009,"description":1010,"heroImage":1011,"category":272,"date":1012,"authors":1013,"slug":1015,"externalUrl":276},"Claude Opus 5 on GitLab: Reasoning built for the hard tasks","Anthropic’s Claude Opus 5 is now available on GitLab Duo Agent Platform, delivering deeper reasoning without sacrificing speed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-07-27",[1014],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"promotions":1017},[1018,1031,1043,1055],{"id":1019,"categories":1020,"header":1021,"text":1022,"button":1023,"image":1028},"ai-modernization",[272],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1024,"config":1025},"Get your AI maturity score",{"href":1026,"dataGaName":1027,"dataGaLocation":506},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1029},{"src":1030},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1032,"categories":1033,"header":1035,"text":1022,"button":1036,"image":1040},"devops-modernization",[1034,841],"product","Are you just managing tools or shipping innovation?",{"text":1037,"config":1038},"Get your DevOps maturity score",{"href":1039,"dataGaName":1027,"dataGaLocation":506},"/assessments/devops-modernization-assessment/",{"config":1041},{"src":1042},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1044,"categories":1045,"header":1047,"text":1022,"button":1048,"image":1052},"security-modernization",[1046],"security","Are you trading speed for security?",{"text":1049,"config":1050},"Get your security maturity score",{"href":1051,"dataGaName":1027,"dataGaLocation":506},"/assessments/security-modernization-assessment/",{"config":1053},{"src":1054},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1056,"paths":1057,"header":1060,"text":1061,"button":1062,"image":1067},"github-azure-migration",[1058,1059],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":1063,"config":1064},"See how GitLab compares to GitHub",{"href":1065,"dataGaName":1066,"dataGaLocation":506},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1068},{"src":1042},{"header":1070,"blurb":1071,"button":1072,"secondaryButton":1077},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1073,"config":1074},"Get your free trial",{"href":1075,"dataGaName":305,"dataGaLocation":1076},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":779,"config":1078},{"href":631,"dataGaName":310,"dataGaLocation":1076},1786803748029]