In plugins, please use the logging module to record logs, do not use print statements (this will cause logs to not be output in the container environment).
import logginglogger = logging.getLogger(__name__) # Import logging module at the beginning of any Python file and define logger objectlogger.info('This is an info message') # Use logger.info to record info level logslogger.warning('This is a warning message')logger.error('This is an error message')
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"LangBot","description":"Production-grade No-code AI Bot Platform. Connect DeepSeek, Dify, GPT-4 \u0026 Claude to WeChat, Discord, Telegram, Slack, Lark \u0026 DingTalk in 5 minutes.","colors":{"primary":"#4692dd","light":"#4692dd","dark":"#4692dd"},"logo":{"light":"https://mintcdn.com/langbot/QYjgLjeAOuhpD2cV/logo/langbot-logo-0.5x.png?fit=max\u0026auto=format\u0026n=QYjgLjeAOuhpD2cV\u0026q=85\u0026s=c123d6c24d59912e750fa7def26c93ec","dark":"https://mintcdn.com/langbot/QYjgLjeAOuhpD2cV/logo/langbot-logo-0.5x.png?fit=max\u0026auto=format\u0026n=QYjgLjeAOuhpD2cV\u0026q=85\u0026s=c123d6c24d59912e750fa7def26c93ec","href":"https://langbot.app"},"favicon":"https://mintcdn.com/langbot/BZuGA47SaPPwv_j7/favicon.ico?fit=max\u0026auto=format\u0026n=BZuGA47SaPPwv_j7\u0026q=85\u0026s=336d704047db55b128a8e42a43904a11","navbar":{"links":[{"href":"https://langbot.app/en","label":"Home"},{"href":"https://space.langbot.app/cloud?language=en","label":"Cloud"},{"href":"https://space.langbot.app/market?language=en","label":"Extensions"},{"href":"https://langbot.app/en/blog","label":"Blog"},{"href":"https://langbot.app/en/roadmap","label":"Roadmap"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/langbot-app/LangBot"}},"footer":{"socials":{"github":"https://github.com/langbot-app/LangBot"}},"seo":{"metatags":{"og:site_name":"LangBot Docs","twitter:card":"summary_large_image","og:image":"https://langbot.app/og-image.png"},"indexing":"all"},"fonts":{"family":"Source Sans Pro"},"banner":{"content":"This documentation has moved to [langbot.app/docs](https://langbot.app/docs/en). This legacy site is no longer updated.","dismissible":false,"type":"warning"},"metadata":{"timestamp":false},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","banner":{"content":"This documentation has moved to [langbot.app/docs](https://langbot.app/docs/en). This legacy site is no longer updated.","dismissible":false,"type":"warning"},"navbar":{"links":[{"href":"https://langbot.app/en","label":"Home"},{"href":"https://space.langbot.app/cloud?language=en","label":"Cloud"},{"href":"https://space.langbot.app/market?language=en","label":"Extensions"},{"href":"https://langbot.app/en/blog","label":"Blog"},{"href":"https://langbot.app/en/roadmap","label":"Roadmap"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/langbot-app/LangBot"}},"href":"en/insight/guide"},{"language":"cn","banner":{"content":"本文档已迁移至 [langbot.app/docs](https://langbot.app/docs/zh),此旧站不再更新。","dismissible":false,"type":"warning"},"navbar":{"links":[{"href":"https://langbot.app/zh","label":"首页"},{"href":"https://space.langbot.app/cloud?language=zh","label":"云服务"},{"href":"https://space.langbot.app/market?language=zh","label":"扩展"},{"href":"https://langbot.app/zh/blog","label":"博客"},{"href":"https://langbot.app/zh/roadmap","label":"路线图"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/langbot-app/LangBot"}},"href":"zh/insight/guide"},{"language":"jp","banner":{"content":"ドキュメントは [langbot.app/docs](https://langbot.app/docs/ja) に移行しました。この旧サイトは今後更新されません。","dismissible":false,"type":"warning"},"navbar":{"links":[{"href":"https://langbot.app/ja","label":"ホーム"},{"href":"https://space.langbot.app/cloud?language=ja","label":"クラウド"},{"href":"https://space.langbot.app/market?language=ja","label":"拡張機能"},{"href":"https://langbot.app/ja/blog","label":"ブログ"},{"href":"https://langbot.app/ja/roadmap","label":"ロードマップ"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/langbot-app/LangBot"}},"href":"ja/insight/guide"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"langbot","hasAudioNarration":false,"actualSubdomain":"langbot","customDomains":["docs.langbot.app"],"gitSource":{"type":"github","owner":"langbot-app","repo":"langbot-docs","deployBranch":"archive/mintlify-legacy-2026-09-04","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{},"buildId":"6a9af4902b8e8714c49a1563","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"cn","tag":"指南","count":66},{"language":"en","tag":"API Reference","count":61},{"language":"jp","tag":"API リファレンス","count":61},{"language":"cn","tag":"API 参考","count":61},{"language":"en","tag":"HTTP API Reference","count":59},{"language":"jp","tag":"HTTP API Reference","count":59},{"language":"cn","tag":"HTTP API Reference","count":59},{"language":"en","tag":"Guides","count":57},{"language":"jp","tag":"ガイド","count":57},{"language":"cn","tag":"开发者","count":28},{"language":"en","tag":"Developers","count":23},{"language":"jp","tag":"開発者","count":23},{"language":"cn","tag":"配置机器人","count":22},{"language":"en","tag":"Configure Bots","count":20},{"language":"jp","tag":"ボットを設定","count":20},{"language":"cn","tag":"配置 AI 能力","count":15},{"language":"en","tag":"Plugin Development","count":14},{"language":"en","tag":"AI Configuration","count":14},{"language":"jp","tag":"プラグイン開発","count":14},{"language":"jp","tag":"AI 設定","count":14},{"language":"cn","tag":"插件开发","count":14},{"language":"en","tag":"Articles","count":13},{"language":"jp","tag":"記事","count":13},{"language":"cn","tag":"文章","count":13},{"language":"cn","tag":"进阶运维","count":13},{"language":"cn","tag":"核心开发","count":10},{"language":"en","tag":"Installation","count":9},{"language":"en","tag":"Knowledge Bases","count":9},{"language":"jp","tag":"インストール","count":9},{"language":"jp","tag":"Knowledge Bases","count":9}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"en/plugin/dev/style","slug":"/en/plugin/dev/style","pageMetadata":{"title":"Code Style Guide","description":null,"href":"/en/plugin/dev/style"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`logging`,children:`Logging`}),`\n`,_jsxs(_components.p,{children:[`In plugins, please use the `,_jsx(_components.code,{children:`logging`}),` module to record logs, do not use `,_jsx(_components.code,{children:`print`}),` statements (this will cause logs to not be output in the container environment).`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`7`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` logging`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`logger `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` logging.getLogger(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`__name__`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Import logging module at the beginning of any Python file and define logger object`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`logger.info(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'This is an info message'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Use logger.info to record info level logs`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`logger.warning(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'This is a warning message'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`logger.error(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'This is an error message'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Code Style Guide","description":null,"href":"/en/plugin/dev/style"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Logging","slug":"logging","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"langbot","siteName":"LangBot","title":"Code Style Guide - LangBot","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/plugin/dev/style","matchLevel":0},"cn":{"href":"/zh/plugin/dev/style","matchLevel":1},"jp":{"href":"/ja/plugin/dev/style","matchLevel":1}}},"lastModified":"2026-09-04T16:41:08.082Z","originalFileLocation":"en/plugin/dev/style.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"LangBot\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/langbot/3KTSJlg0K2Rv91g2/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/langbot/3KTSJlg0K2Rv91g2/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/langbot/3KTSJlg0K2Rv91g2/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/langbot/3KTSJlg0K2Rv91g2/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/langbot/3KTSJlg0K2Rv91g2/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/langbot/3KTSJlg0K2Rv91g2/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/langbot/3KTSJlg0K2Rv91g2/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/langbot/3KTSJlg0K2Rv91g2/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/langbot/3KTSJlg0K2Rv91g2/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Code Style Guide - LangBot\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LangBot Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.langbot.app/en/plugin/dev/style\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://langbot.app/og-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Code Style Guide - LangBot\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://langbot.app/og-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/langbot/3KTSJlg0K2Rv91g2/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LangBot\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4692dd\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.langbot.app/en/plugin/dev/style\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/plugin/dev/style.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.langbot.app/en/plugin/dev/style\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.langbot.app/zh/plugin/dev/style\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.langbot.app/ja/plugin/dev/style\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.langbot.app/en/plugin/dev/style\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.langbot.app/#organization\",\"name\":\"LangBot\",\"url\":\"https://docs.langbot.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/langbot/QYjgLjeAOuhpD2cV/logo/langbot-logo-0.5x.png?fit=max\u0026auto=format\u0026n=QYjgLjeAOuhpD2cV\u0026q=85\u0026s=c123d6c24d59912e750fa7def26c93ec\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.langbot.app#website\",\"name\":\"LangBot\",\"url\":\"https://docs.langbot.app\",\"publisher\":{\"@id\":\"https://docs.langbot.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.langbot.app/en/plugin/dev/style#webpage\",\"url\":\"https://docs.langbot.app/en/plugin/dev/style\",\"name\":\"Code Style Guide\",\"dateModified\":\"2026-09-04T16:41:08.082Z\",\"isPartOf\":{\"@id\":\"https://docs.langbot.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.langbot.app/en/plugin/dev/style#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.langbot.app/en/plugin/dev/style#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Plugin Development\",\"item\":\"https://docs.langbot.app/en/plugin/dev/tutor\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Code Style Guide\",\"item\":\"https://docs.langbot.app/en/plugin/dev/style\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.langbot.app/en/plugin/dev/style#article\",\"headline\":\"Code Style Guide\",\"name\":\"Code Style Guide\",\"url\":\"https://docs.langbot.app/en/plugin/dev/style\",\"mainEntityOfPage\":{\"@id\":\"https://docs.langbot.app/en/plugin/dev/style#webpage\"},\"image\":\"https://langbot.app/og-image.png\",\"dateModified\":\"2026-09-04T16:41:08.082Z\",\"publisher\":{\"@id\":\"https://docs.langbot.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.langbot.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"LangBot\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"LangBot\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/en/plugin/dev/style.md","siteName":"LangBot","nav":{"global":null,"languages":[{"language":"en","banner":{"content":"This documentation has moved to [langbot.app/docs](https://langbot.app/docs/en). This legacy site is no longer updated.","dismissible":false,"type":"warning"},"navbar":{"links":[{"href":"https://langbot.app/en","label":"Home"},{"href":"https://space.langbot.app/cloud?language=en","label":"Cloud"},{"href":"https://space.langbot.app/market?language=en","label":"Extensions"},{"href":"https://langbot.app/en/blog","label":"Blog"},{"href":"https://langbot.app/en/roadmap","label":"Roadmap"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/langbot-app/LangBot"}},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/en/insight/guide"}]},{"tab":"Developers","groups":[{"group":"Plugin Development","pages":[{"title":"Plugin Development Tutorial","href":"/en/plugin/dev/tutor"},{"title":"Completing Plugin Configuration Information","href":"/en/plugin/dev/basic-info"},{"title":"Plugin Directory Structure","href":"/en/plugin/dev/directory-structure"},{"group":"Component Development","pages":[{"title":"Adding Components","href":"/en/plugin/dev/components/add"},{"title":"Component: Event Listener","href":"/en/plugin/dev/components/event-listener"},{"title":"Component: Command","href":"/en/plugin/dev/components/command"},{"title":"Component: Tool","href":"/en/plugin/dev/components/tool"},{"title":"Component: Knowledge Engine","href":"/en/plugin/dev/components/knowledge-engine"},{"title":"Component: Parser","href":"/en/plugin/dev/components/parser"},{"title":"Component: Page","description":null,"href":"/en/plugin/dev/components/page"}]},{"title":"Code Style Guide","href":"/en/plugin/dev/style"},{"title":"Migration Guide","description":null,"href":"/en/plugin/dev/migration"},{"group":"Publish Plugin","pages":[{"title":"Publish to Plugin Marketplace","href":"/en/plugin/dev/publish/market"},{"title":"Distribute Plugins via GitHub","href":"/en/plugin/dev/publish/github"}]}]},{"group":"Plugin SDK API","pages":[{"title":"Plugin Common APIs","href":"/en/plugin/dev/apis/common"},{"title":"Pipeline Events and APIs","href":"/en/plugin/dev/apis/pipeline-events"},{"title":"Message Platform Entities","href":"/en/plugin/dev/apis/messages"},{"title":"Plugin Technical Details","href":"/en/plugin/dev/apis/tech-details"}]},{"group":"Core Development","pages":[{"title":"AI Assistant Context","href":"/en/develop/agent-context"},{"title":"Development Configuration","href":"/en/develop/dev-config"},{"title":"Debugging Plugin Runtime, CLI, SDK","href":"/en/develop/plugin-runtime"},{"title":"Component Architecture","href":"/en/develop/comp-arch"},{"title":"Implementing a Message Platform Adapter","href":"/en/workshop/impl-platform-adapter"}]}]},{"tab":"Articles","pages":[{"title":"Articles","href":"/en/articles"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/en/tags/readme"}]}]},{"language":"cn","banner":{"content":"本文档已迁移至 [langbot.app/docs](https://langbot.app/docs/zh),此旧站不再更新。","dismissible":false,"type":"warning"},"navbar":{"links":[{"href":"https://langbot.app/zh","label":"首页"},{"href":"https://space.langbot.app/cloud?language=zh","label":"云服务"},{"href":"https://space.langbot.app/market?language=zh","label":"扩展"},{"href":"https://langbot.app/zh/blog","label":"博客"},{"href":"https://langbot.app/zh/roadmap","label":"路线图"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/langbot-app/LangBot"}},"pages":[{"title":"cn","href":"/zh/plugin/dev/style"}]},{"language":"jp","banner":{"content":"ドキュメントは [langbot.app/docs](https://langbot.app/docs/ja) に移行しました。この旧サイトは今後更新されません。","dismissible":false,"type":"warning"},"navbar":{"links":[{"href":"https://langbot.app/ja","label":"ホーム"},{"href":"https://space.langbot.app/cloud?language=ja","label":"クラウド"},{"href":"https://space.langbot.app/market?language=ja","label":"拡張機能"},{"href":"https://langbot.app/ja/blog","label":"ブログ"},{"href":"https://langbot.app/ja/roadmap","label":"ロードマップ"}],"primary":{"type":"button","label":"GitHub","href":"https://github.com/langbot-app/LangBot"}},"pages":[{"title":"jp","href":"/ja/plugin/dev/style"}]}]},"basePath":"","title":"Code Style Guide - LangBot","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["10e4515597"],"chunks":["BannerMarkdown-6DXXLlfN.js","dist-CmKHfscc.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-C3kuh_dz.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}