ralph-skill

star 0

企业级自治编程引擎,支持前后端全栈自动化开发(含E2E测试)

yjx3097890 By yjx3097890 schedule Updated 3/5/2026

name: ralph-skill version: 1.2.0 author: Ralph Team description: 企业级自治编程引擎,支持前后端全栈自动化开发(含E2E测试) keywords: [autonomous, coding, fullstack, ai, automation, vue3, go, python, e2e, playwright] category: development license: MIT

Ralph Skill - 企业级自治编程引擎

简介

Ralph Skill 是一个企业级的自治编程引擎,将用户需求自动转化为可执行的代码。

核心工作流程

  1. 用户描述需求 → Ralph 自动生成配置文件和任务列表
  2. 按依赖顺序执行任务
  3. 每个任务:调用 AI 引擎(Qwen/Claude/GPT-4)生成代码 → 运行测试验证 → 失败自动重试
  4. 所有代码变更自动提交到 Git,支持一键回滚

如何在 Kiro 中使用

方式 1:Agent 驱动模式(推荐)

最智能的方式:让 Agent 控制任务执行,智能处理失败。

import sys
from pathlib import Path

# 添加 Ralph Skill 到路径
skill_path = Path.home() / ".kiro" / "skills" / "ralph-skill"
sys.path.insert(0, str(skill_path / "src"))

from ralph import autonomous_develop, TaskConfig

# 启用 Agent 驱动模式
result = autonomous_develop(
    task_description="创建一个 Todo 应用",
    tech_stack={
        "frontend": {"framework": "vue3"},
        "backend": {"language": "go", "framework": "gin"}
    },
    requirements=[
        "支持添加、删除、完成待办事项",
        "包含单元测试"
    ],
    project_root=".",
    agent_driven=True  # 启用 Agent 驱动模式
)

# 获取引擎实例
engine = result["engine"]
config = result["config"]

# Agent 控制任务执行
completed_tasks = set()

for task_config in config.tasks:
    # 检查依赖
    if not all(dep in completed_tasks for dep in task_config.depends_on):
        continue
    
    print(f"\n执行任务: {task_config.name}")
    task_result = engine.execute_task(task_config)
    
    if task_result.success:
        completed_tasks.add(task_config.id)
        print(f"✅ 任务完成")
    else:
        print(f"❌ 任务失败: {task_result.message}")
        print(f"测试输出:\n{task_result.test_output}")
        
        # Agent 分析错误并创建修复任务
        if "database connection" in task_result.test_output:
            fix_task = TaskConfig(
                id=f"{task_config.id}-fix-db",
                name="修复数据库连接",
                description=f"修复数据库连接问题:\n{task_result.test_output}",
                depends_on=[task_config.id]
            )
            engine.add_task(fix_task)
            print("🔧 已添加修复任务")

print(f"\n完成 {len(completed_tasks)}/{len(config.tasks)} 个任务")

详细文档: 查看 Kiro Agent 集成指南

方式 2:自动模式(简单但不够智能)

适合简单任务,Skill 会自动处理所有事情。

import sys
from pathlib import Path

skill_path = Path.home() / ".kiro" / "skills" / "ralph-skill"
sys.path.insert(0, str(skill_path / "src"))

from ralph import autonomous_develop

# 自动模式(默认)
result = autonomous_develop(
    task_description="创建一个 Todo 应用",
    tech_stack={
        "frontend": {"framework": "vue3"},
        "backend": {"language": "go", "framework": "gin"}
    },
    requirements=[
        "支持添加、删除、完成待办事项",
        "包含单元测试"
    ],
    project_root="."
)

print(f"✅ 完成 {result['tasks_completed']}/{result['tasks_total']} 个任务")

方式 3:使用配置文件

如果用户已经有 ralph-config.yaml

# Agent 驱动模式
result = autonomous_develop(
    task_description="执行配置文件中的任务",
    config_file="ralph-config.yaml",
    project_root=".",
    agent_driven=True
)

# 或自动模式
result = autonomous_develop(
    task_description="执行配置文件中的任务",
    config_file="ralph-config.yaml",
    project_root="."
)

方式 4:使用命令行(在终端中)

cd ~/.kiro/skills/ralph-skill
poetry run python -m ralph develop "创建一个 Todo 应用" \
    --tech-stack '{"frontend": {"framework": "vue3"}, "backend": {"language": "go"}}' \
    --requirements "支持添加、删除待办事项" "包含单元测试"

重要提示

不要手动创建项目结构或配置文件! Ralph 会自动:

  • 生成 ralph-config.yaml 配置文件
  • 创建项目目录结构
  • 生成代码
  • 运行测试
  • 提交到 Git

你只需要调用 autonomous_develop() 函数即可。

核心能力

1. 端对端测试支持(v1.2.0 新增)

Ralph Skill 完全支持端对端(E2E)测试,可以自动检测和执行 Playwright 或 Cypress 测试。

配置示例

project:
  frontend:
    framework: vue3
    test_runner: vitest
    e2e_runner: playwright  # 启用 E2E 测试

测试执行顺序

  1. 单元测试(后端 + 前端)
  2. E2E 测试(单元测试通过后执行)

智能跳过:如果单元测试失败,会自动跳过 E2E 测试,节省时间。

详细文档:查看 端对端测试支持文档

2. Agent 驱动的智能执行

Ralph Skill 采用 Agent 驱动 的执行模式,不再盲目重试:

# 执行任务
result = ralph_skill.execute_task(task_config)

if not result.success:
    # Agent 分析错误
    print(f"测试失败: {result.test_output}")
    print(f"错误信息: {result.errors}")
    print(f"代码变更: {result.files_changed}")
    
    # Agent 决定修复策略
    if "database connection" in result.test_output:
        # 创建修复任务
        fix_task = TaskConfig(
            id=f"{task_config.id}-fix-db",
            name="修复数据库连接",
            description=f"修复以下错误:\n{result.test_output}"
        )
        ralph_skill.add_task(fix_task)

新增 API

  • add_task(task_config): 动态添加任务
  • update_task(task_id, updates): 更新任务配置
  • get_task_status(task_id): 获取任务状态
  • rollback_task(task_id): 回滚任务代码
  • get_code_diff(task_id): 获取代码差异

优势

  • ✅ 不再盲目重试相同错误
  • ✅ Agent 可以分析具体错误原因
  • ✅ 动态生成针对性的修复任务
  • ✅ 保留代码现场供分析
  • ✅ 用户可以参与决策

2. 自治开发

根据需求描述自动生成代码,支持多种编程语言和框架。

示例

实现用户认证模块,要求:
- 支持邮箱和密码登录
- 使用 JWT 认证
- 包含单元测试
- 技术栈:Go + Gin + GORM

3. 自动服务管理

Ralph 会自动检测项目依赖的服务(如数据库),并自动启动 Docker 容器:

  • MongoDB: 自动启动 ralph-mongodb 容器(端口 27017)
  • PostgreSQL: 自动启动 ralph-postgres 容器(端口 5432)
  • Redis: 自动启动 ralph-redis 容器(端口 6379)

无需手动配置,Ralph 会在运行测试前自动检测并启动所需服务。

2. 测试生成

自动生成单元测试、集成测试和端到端测试。

示例

为用户服务层生成完整的测试套件,包括:
- 单元测试(覆盖率 > 80%)
- 集成测试
- Mock 数据

3. 代码重构

智能重构和优化代码,提升代码质量。

示例

重构用户服务层,要求:
- 提取公共逻辑
- 优化数据库查询
- 改善错误处理

4. Bug 修复

自动诊断和修复代码问题。

示例

修复登录失败的 bug:
- 用户输入正确密码但无法登录
- 错误信息:invalid credentials

5. 文档生成

生成 API 文档、代码注释和使用说明。

示例

为用户 API 生成 OpenAPI 文档,包括:
- 所有端点说明
- 请求/响应示例
- 错误码说明

6. 前端开发

支持 Vue3/React 组件开发和测试。

示例

实现登录表单组件(Vue3),要求:
- 表单验证
- 错误提示
- 响应式设计
- Vitest 单元测试

7. 后端开发

支持 Go/Python 服务开发和测试。

示例

实现 RESTful API,要求:
- CRUD 操作
- 参数验证
- 错误处理
- 单元测试

技术栈支持

前端

  • 框架: Vue3, React, Angular
  • 测试: Vitest, Jest, Playwright, Cypress
  • 构建: Vite, Webpack
  • 包管理: npm, yarn, pnpm

后端

  • 语言: Go, Python, Node.js
  • 框架: Gin, Echo, FastAPI, Express
  • 测试: Go testing, Pytest, Jest
  • 数据库: PostgreSQL, MySQL, Redis

DevOps

  • 容器: Docker, Docker Compose
  • 版本控制: Git
  • CI/CD: GitHub Actions, GitLab CI

配置要求

必需配置

# 项目基本信息
project:
  name: "项目名称"
  type: "fullstack"  # fullstack, frontend, backend

# AI 引擎配置(至少配置一个)
ai_engines:
  claude:
    type: "claude"
    api_key: "${CLAUDE_API_KEY}"
    model: "claude-3-5-sonnet-20241022"

可选配置

# 前端配置
project:
  frontend:
    framework: "vue3"
    test_runner: "vitest"
    e2e_runner: "playwright"

# 后端配置
project:
  backend:
    language: "go"
    framework: "gin"
    test_runner: "testing"

# 系统设置
settings:
  max_context_size: 100000
  git_auto_commit: true
  enable_hooks: true

使用方法

在 Kiro 中使用

1. 安装

# 用户级别
mkdir -p ~/.kiro/skills/
cd ~/.kiro/skills/
git clone https://github.com/your-org/ralph-skill.git
cd ralph-skill
poetry install

2. 配置

cp config.example.yaml config.yaml
# 编辑 config.yaml 设置 API 密钥

3. 使用

在 Kiro 聊天中直接描述需求:

使用 Ralph Skill 实现用户登录功能

或在 Spec 中引用:

使用 #ralph-skill 进行自治开发

在 OpenClaw 中使用

from openclaw import Agent, Task

agent = Agent(name="developer")

task = Task(
    description="实现用户认证模块",
    agent=agent,
    skills=["ralph-skill"],
    context={
        "requirements": "支持邮箱和手机号登录",
        "tech_stack": "Go + Gin + GORM"
    }
)

result = task.execute()

Function Calling Schema

Ralph Skill 提供以下函数接口:

1. autonomous_develop

自治开发功能。

参数

  • task_description (string, required): 任务描述
  • tech_stack (object, optional): 技术栈配置
  • requirements (array, optional): 具体需求列表
  • constraints (array, optional): 约束条件

返回

  • success (boolean): 是否成功
  • files_changed (array): 修改的文件列表
  • commit_hash (string): Git 提交哈希
  • message (string): 执行消息

2. generate_tests

生成测试代码。

参数

  • target_files (array, required): 目标文件列表
  • test_type (string, optional): 测试类型 (unit, integration, e2e)
  • coverage_target (number, optional): 覆盖率目标 (默认 80)

返回

  • success (boolean): 是否成功
  • test_files (array): 生成的测试文件
  • coverage (number): 测试覆盖率

3. refactor_code

重构代码。

参数

  • target_files (array, required): 目标文件列表
  • refactor_goals (array, required): 重构目标
  • preserve_behavior (boolean, optional): 是否保持行为不变 (默认 true)

返回

  • success (boolean): 是否成功
  • files_changed (array): 修改的文件列表
  • improvements (array): 改进说明

4. fix_bug

修复 Bug。

参数

  • bug_description (string, required): Bug 描述
  • error_message (string, optional): 错误信息
  • affected_files (array, optional): 受影响的文件

返回

  • success (boolean): 是否成功
  • fix_description (string): 修复说明
  • files_changed (array): 修改的文件列表

5. generate_docs

生成文档。

参数

  • doc_type (string, required): 文档类型 (api, readme, comments)
  • target_files (array, optional): 目标文件列表
  • format (string, optional): 文档格式 (markdown, openapi, jsdoc)

返回

  • success (boolean): 是否成功
  • doc_files (array): 生成的文档文件

安全特性

1. Git 版本控制

所有代码修改都会自动提交到 Git,支持回滚。

# 查看修改历史
git log

# 回滚到上一个版本
git reset --hard HEAD~1

2. 安全沙箱

代码执行在隔离的沙箱环境中,防止恶意操作。

3. 上下文防爆

智能管理上下文大小,防止 token 超限。

4. 错误恢复

自动检测和恢复错误,支持重试机制。

最佳实践

1. 明确需求

提供清晰的需求描述,包括功能、技术栈、约束条件。

好的示例

实现用户注册功能,要求:
- 支持邮箱注册
- 发送验证邮件
- 密码强度验证
- 技术栈:Go + Gin + GORM + Redis
- 包含单元测试和集成测试

不好的示例

做一个注册功能

2. 分步执行

对于复杂任务,建议分解为多个小任务逐步完成。

任务 1: 实现用户模型和数据库迁移
任务 2: 实现注册 API
任务 3: 实现邮件发送服务
任务 4: 编写测试

3. 代码审查

Skill 生成的代码建议人工审查后再合并到主分支。

4. 测试验证

运行生成的测试确保功能正确性。

# 前端测试
npm run test

# 后端测试
go test ./...

5. 配置管理

使用环境变量管理敏感信息。

# .env 文件
CLAUDE_API_KEY=your-api-key
DATABASE_URL=postgresql://localhost/mydb

故障排查

问题 1: Skill 无法加载

症状: Kiro 无法识别 Ralph Skill

解决方案:

  1. 检查 skill.md 文件是否存在
  2. 检查目录结构是否正确
  3. 重启 Kiro

问题 2: API 调用失败

症状: 错误信息显示 API 认证失败

解决方案:

  1. 检查 API 密钥是否正确
  2. 检查环境变量是否设置
  3. 查看日志文件:~/.kiro/skills/ralph-skill/logs/ralph.log

问题 3: 代码生成质量不佳

症状: 生成的代码不符合预期

解决方案:

  1. 提供更详细的需求描述
  2. 指定明确的技术栈和约束
  3. 尝试分步执行
  4. 调整 AI 引擎的 temperature 参数

问题 4: 测试失败

症状: 生成的测试无法通过

解决方案:

  1. 检查测试环境配置
  2. 查看测试错误信息
  3. 手动修复测试代码
  4. 向 Skill 反馈错误信息

性能优化

1. 上下文管理

  • 只包含相关文件
  • 使用 .gitignore 排除无关文件
  • 定期清理临时文件

2. 并行执行

  • 独立任务可以并行执行
  • 使用任务依赖管理执行顺序

3. 缓存利用

  • 复用已生成的代码
  • 缓存 AI 响应结果

更新日志

v1.0.0 (2024-03-04)

  • 初始版本发布
  • 支持 Vue3/Go 全栈开发
  • 集成 Claude/GPT-4/Qwen 引擎
  • 实现安全沙箱和 Git 版本控制

支持与反馈

  • 文档: README.md
  • 问题反馈: GitHub Issues
  • 讨论: GitHub Discussions

许可证

MIT License


注意: 使用本 Skill 前,请确保已阅读并理解配置要求和安全特性。

Install via CLI
npx skills add https://github.com/yjx3097890/ralph-skill --skill ralph-skill
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator