CodeBuddy可通过自定义Python分析器实现高风险函数识别:在.codebuddy/analyzer/下创建auth_check.py,定义analyze函数基于AST或关键词扫描检测缺失权限校验等问题,再于config.yaml中启用并重载后触发分析。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让CodeBuddy不只是写代码,而是能按你团队的特定标准自动识别、标记、甚至重构高风险函数——比如把所有未加@Retryable注解的远程调用方法标为待审查,或把未校验用户权限的Controller方法直接归类为安全漏洞。这需要突破默认分析逻辑,注入你自己的判断规则。
创建自定义分析函数文件
在项目根目录下新建 【.codebuddy/analyzer/】 文件夹,这是CodeBuddy唯一识别自定义分析器的固定路径。
进入该目录,新建一个以 .py 结尾的文件,例如 【auth_check.py】,文件名将作为后续调用的唯一标识符。
文件开头必须包含标准模块声明:第一行写 #!/usr/bin/env python3,第二行空行,第三行开始写 Python 代码。缺一不可,否则CodeBuddy会跳过加载。
编写核心分析逻辑
函数必须命名为 【analyze】,且仅接收一个参数 ast_node(AST节点对象),返回值必须是字典类型,键名为 issues,值为列表。
方法一:基于AST节点类型精准匹配
检查当前节点是否为函数定义,且函数名含 “controller” 或 “handler”,再遍历其装饰器列表,若无 “@RequirePermission” 则记录问题:
def analyze(ast_node):<br> if not isinstance(ast_node, ast.FunctionDef):<br> return {"issues": []}<br> has_perm_decorator = any(<br> isinstance(dec, ast.Name) and dec.id == "RequirePermission"<br> for dec in ast_node.decorator_list<br> )<br> if not has_perm_decorator and ("controller" in ast_node.name.lower() or "handler" in ast_node.name.lower()):<br> return {"issues": [{"line": ast_node.lineno, "message": "缺少权限校验装饰器"}]}<br> return {"issues": []}
方法二:结合正则与上下文扫描
不依赖装饰器语法,而是扫描函数体内是否出现 request.user 或 current_user 等关键词,若未出现且函数名含 “delete” 或 “update”,则视为高危操作:
这一步容易漏掉字符串拼接或变量间接引用的情况,所以只适用于代码风格高度统一的项目。
CodeBuddy Code CLI 的安装、配置与使用指南。CodeBuddy Code 是腾讯推出的 AI 驱动 CLI 编程助手,支持自然语言驱动开发。 - 必备触发词:CodeBuddy, codebuddy, AI CLI, Tencent AI coding, @tencent-ai/codebuddy-code, terminal AI assistant - 适用场景:安装 CodeBuddy CLI、配置 CodeBuddy、使用 CodeBuddy 命令、排查 CodeBuddy 问题
注册并启用分析器
第一步:打开项目根目录下的 【.codebuddy/config.yaml】 文件;
第二步:在 analyzers: 节点下新增子项,格式为 auth_check: true;
第三步:保存文件后,在VS Code中执行命令 【CodeBuddy: Reload Analyzers】,或重启编辑器使配置生效。
注意:若 config.yaml 中未定义 analyzers 节点,需手动添加该顶层字段,不能嵌套在其他配置下。
触发自定义分析
方式1:右键点击任意Python文件 → 选择 “CodeBuddy: Run Custom Analyzers”;
方式2:在命令面板(Ctrl+Shift+P)中输入指令 “CodeBuddy Analyze Workspace”,系统会自动运行所有已启用的自定义分析器;
方式3:在编辑器中选中某段函数代码 → 按快捷键 Ctrl+Alt+A → 弹出菜单选择对应分析器名称(如 “auth_check”)。
分析结果将直接显示在 VS Code 的 Problems 面板中,错误级别为 “error”,可直接点击跳转到问题行。

















