CodeBuddy Coding

Polar Sponsor
爱发电 赞助
.NET 9.0

调用 CodeBuddy CLI,支持代码生成、重构、调试、文件操作及任务进度监控,提供结构化结果输出。

CodeBuddy Coding Skill

功能概述

CodeBuddy Coding Skill是一项面向实际任务的技能,主要用于版本: 1.0.0;创建时间: 2026-03-31;

核心要点

  • 作者: OpenClaw Team;
  • 📋 Skill 概述;
  • CodeBuddy Coding Skill 是一个通用的 AI 编程能力扩展,让任何 OpenClaw agent 都能调用 CodeBuddy CLI 的强大功能;

使用与执行

✅ AI 编程 - 代码生成、重构、调试、优化;✅ 文件操。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

CodeBuddy Coding Skill

版本: 1.0.0 创建时间: 2026-03-31 作者: OpenClaw Team

📋 Skill 概述

CodeBuddy Coding Skill 是一个通用的 AI 编程能力扩展,让任何 OpenClaw agent 都能调用 CodeBuddy CLI 的强大功能。

核心能力

  • ✅ AI 编程 - 代码生成、重构、调试、优化
  • ✅ 文件操作 - 创建、修改、删除文件
  • ✅ 命令执行 - 运行构建、测试、部署命令
  • ✅ 进度监控 - 实时报告任务进度和状态
  • ✅ 结构化输出 - JSON 格式的可解析输出

适用场景

  • Developer Agent - 编写代码、修复 Bug
  • Architect Agent - 生成项目脚手架
  • Tester Agent - 编写测试用例
  • 任何需要编程能力的 Agent - 通用编程支持

🚀 快速开始

基本用法

// 1. 加载 Skill
const codebuddy = require('./skill');

// 2. 执行编程任务
const result = await codebuddy.execute({
  task: '创建一个用户登录页面',
  context: {
    projectPath: '/path/to/project',
    techStack: 'Vue 3 + TypeScript'
  },
  options: {
    outputFormat: 'json',
    permissionMode: 'bypassPermissions'
  }
});

// 3. 获取结果
console.log(result.status);      // 'success'
console.log(result.filesModified); // ['src/views/Login.vue']
console.log(result.toolCalls);   // [{tool: 'write_to_file', ...}]

监听进度

// 订阅进度事件
codebuddy.onProgress((progress) => {
  console.log(`进度: ${progress.percentage}%`);
  console.log(`当前任务: ${progress.currentTask}`);
  console.log(`已用时间: ${progress.elapsedTime}s`);
});

🔧 配置说明

环境要求

  • CodeBuddy CLI v2.68.0+
  • Node.js v16.0.0+
  • OpenClaw coding-agent skill 框架

Skill 配置

{
  "name": "codebuddy-coding",
  "version": "1.0.0",
  "type": "coding",
  "capabilities": [
    "code-generation",
    "file-operations",
    "command-execution",
    "progress-monitoring"
  ],
  "dependencies": {
    "codebuddy-cli": ">=2.68.0"
  }
}

📚 API 文档

execute(options)

执行编程任务。

参数:

interface ExecuteOptions {
  task: string;           // 任务描述
  context?: {             // 任务上下文
    projectPath?: string; // 项目路径
    techStack?: string;   // 技术栈
    files?: string[];     // 相关文件
  };
  options?: {             // 执行选项
    outputFormat?: 'json' | 'text';  // 输出格式
    permissionMode?: 'default' | 'bypassPermissions'; // 权限模式
    timeout?: number;     // 超时时间(秒)
  };
}

返回:

interface ExecuteResult {
  status: 'success' | 'failed' | 'timeout';
  filesModified: string[];      // 修改的文件列表
  toolCalls: ToolCall[];        // 工具调用记录
  reasoning: string[];          // 推理过程
  duration: number;             // 执行时长(秒)
  error?: string;               // 错误信息
}

onProgress(callback)

订阅进度更新事件。

参数:

type ProgressCallback = (progress: {
  percentage: number;     // 完成百分比
  currentTask: string;    // 当前任务描述
  elapsedTime: number;    // 已用时间(秒)
  estimatedTime?: number; // 预计剩余时间(秒)
  filesModified: string[]; // 已修改文件
  toolCalls: number;      // 已调用工具次数
}) => void;

getStatus()

获取当前任务状态。

返回:

interface TaskStatus {
  state: 'idle' | 'running' | 'completed' | 'failed';
  taskId?: string;
  startTime?: Date;
  progress?: Progress;
}

🎯 使用示例

示例1:创建新组件

const codebuddy = require('./skill');

// 创建登录组件
const result = await codebuddy.execute({
  task: '创建一个用户登录组件,包含用户名、密码输入框和登录按钮',
  context: {
    projectPath: '/path/to/vue-project',
    techStack: 'Vue 3 Composition API + TypeScript'
  }
});

if (result.status === 'success') {
  console.log('组件创建成功!');
  console.log('创建的文件:', result.filesModified);
}

示例2:修复 Bug

const codebuddy = require('./skill');

// 修复登录验证 Bug
const result = await codebuddy.execute({
  task: '修复用户登录时的验证逻辑,密码应该至少8位且包含数字和字母',
  context: {
    projectPath: '/path/to/project',
    files: ['src/views/Login.vue', 'src/utils/validator.ts']
  }
});

console.log('修复完成:', result.filesModified);

示例3:监听长时间任务进度

const codebuddy = require('./skill');

// 订阅进度
codebuddy.onProgress((progress) => {
  console.log(`[${progress.percentage}%] ${progress.currentTask}`);
  console.log(`  已修改 ${progress.filesModified.length} 个文件`);
  console.log(`  已执行 ${progress.toolCalls} 次操作`);
  console.log(`  用时 ${progress.elapsedTime}s`);
});

// 执行长时间任务
const result = await codebuddy.execute({
  task: '重构整个用户管理模块,使用更清晰的架构',
  context: {
    projectPath: '/path/to/project'
  },
  options: {
    timeout: 600  // 10分钟超时
  }
});

🔍 进度监控原理

JSON 输出解析

CodeBuddy CLI 支持 --output-format json 输出结构化数据:

codebuddy -p "任务描述" --output-format json --permission-mode bypassPermissions

输出格式:

{
  "status": "running",
  "tool_calls": [
    {
      "tool": "write_to_file",
      "parameters": {
        "filePath": "src/Login.vue",
        "content": "..."
      },
      "result": "success"
    }
  ],
  "files_modified": ["src/Login.vue"],
  "reasoning": [
    "分析任务需求",
    "设计组件结构",
    "编写代码"
  ],
  "progress": {
    "percentage": 45,
    "current_task": "编写登录表单"
  }
}

进度解析流程

graph LR
  A[CodeBuddy CLI] -->|JSON Stream| B[Progress Monitor]
  B -->|Parse JSON| C[Progress Data]
  C -->|Emit Event| D[Event Callbacks]
  D -->|Update| E[Agent UI]

⚙️ 高级配置

自定义输出解析器

const codebuddy = require('./skill');

// 自定义解析器
codebuddy.setOutputParser((jsonLine) => {
  // 自定义解析逻辑
  return {
    percentage: jsonLine.progress?.percentage || 0,
    task: jsonLine.progress?.current_task || '处理中'
  };
});

超时和重试

const result = await codebuddy.execute({
  task: '复杂重构任务',
  options: {
    timeout: 1200,        // 20分钟超时
    retryCount: 3,        // 失败重试3次
    retryDelay: 5000      // 重试间隔5秒
  }
});

🐛 调试和日志

启用详细日志

const codebuddy = require('./skill');

// 启用调试模式
codebuddy.setDebugMode(true);

// 所有 CLI 输出会被记录到控制台
const result = await codebuddy.execute({
  task: '创建测试文件'
});

查看执行日志

// 获取最近的执行日志
const logs = codebuddy.getExecutionLogs();
console.log(logs);
// [
//   { time: '11:30:01', event: 'CLI_START', command: '...' },
//   { time: '11:30:02', event: 'TOOL_CALL', tool: 'write_to_file' },
//   { time: '11:30:05', event: 'CLI_END', status: 'success' }
// ]

🚨 错误处理

错误类型

enum CodeBuddyErrorType {
  CLI_NOT_FOUND = 'CLI_NOT_FOUND',        // CodeBuddy CLI 未安装
  INVALID_TASK = 'INVALID_TASK',          // 无效的任务描述
  TIMEOUT = 'TIMEOUT',                     // 执行超时
  PERMISSION_DENIED = 'PERMISSION_DENIED', // 权限被拒绝
  CLI_ERROR = 'CLI_ERROR'                  // CLI 执行错误
}

错误处理示例

try {
  const result = await codebuddy.execute({
    task: '创建文件'
  });
} catch (error) {
  if (error.type === 'CLI_NOT_FOUND') {
    console.error('请先安装 CodeBuddy CLI');
  } else if (error.type === 'TIMEOUT') {
    console.error('任务超时,请增加超时时间');
  } else {
    console.error('执行失败:', error.message);
  }
}

📦 集成到 Agent

Developer Agent 集成

// developer/agent.js
const codebuddy = require('codebuddy-coding');

class DeveloperAgent {
  async implementFeature(task) {
    // 使用 CodeBuddy 实现功能
    const result = await codebuddy.execute({
      task: task.description,
      context: {
        projectPath: this.projectPath,
        files: task.relatedFiles
      }
    });

    return result;
  }
}

Architect Agent 集成

// architect/agent.js
const codebuddy = require('codebuddy-coding');

class ArchitectAgent {
  async generateProjectScaffold(requirements) {
    // 使用 CodeBuddy 生成脚手架
    const result = await codebuddy.execute({
      task: `创建项目脚手架:${requirements}`,
      options: {
        permissionMode: 'bypassPermissions'
      }
    });

    return result;
  }
}

🧪 测试

运行测试

# 运行所有测试
npm test

# 运行特定测试
npm test -- --grep "CLI Wrapper"

测试覆盖

  • ✅ CLI Wrapper 单元测试
  • ✅ Progress Monitor 单元测试
  • ✅ Integration 集成测试
  • ✅ E2E 端到端测试

📄 许可证

MIT License

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📞 支持

如有问题,请联系:

  • GitHub Issues: [OpenClaw Repository]
  • Email: support@openclaw.ai

让每个 Agent 都拥有 AI 编程能力! 🚀

相关专题

更多
CodeBuddy使用教程
CodeBuddy使用教程

PHP中文网为您精心整理了CodeBuddy腾讯AI智能编码工具使用教程合集。本合集涵盖CodeBuddy从安装配置到智能代码补全、错误检测及自然语言生成代码等核心功能的全方位实操指南。无论您是编程新手还是资深开发者,都能通过本教程快速掌握这款高效AI编程助手,提升开发效率,轻松驾驭智能编码新时代。

2026.07.09

152

15

CodeBuddy接口调试方法大全
CodeBuddy接口调试方法大全

PHP中文网精选CodeBuddy接口调试方法大全,涵盖从安装配置、API Key获取到IDE与CLI实战的全流程指南。本文集汇总了多模型对接、上下文管理及企业级集成等核心技巧,帮助开发者快速掌握高效调试方案,轻松解决开发难题,提升编程效率。

2026.07.08

72

10

Playwright 测试失败怎么办
Playwright 测试失败怎么办

Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。

2026.10.21

0

15

Playwright 页面操作指南
Playwright 页面操作指南

Playwright页面操作专题汇集元素定位、点击与输入、等待响应、多页面切换、Iframe、事件监听及文件处理的已审核文章,便于按操作场景查阅示例与常见问题。

2026.10.21

0

16

Playwright 入门教程
Playwright 入门教程

Playwright入门专题汇集测试框架安装、VS Code配置、录制脚本、编写首个用例、运行调试及查看报告的已审核文章,帮助初学者搭建端到端测试流程。

2026.10.21

0

16

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

0

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

0

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

0

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CodeBuddy 开放平台
CodeBuddy 开放平台

共0课时 | 0人学习

Codebuddy 插件
Codebuddy 插件

共0课时 | 0人学习

CodeBuddy官方文档
CodeBuddy官方文档

共0课时 | 0人学习