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 是一个企业级的自治编程引擎,将用户需求自动转化为可执行的代码。
核心工作流程:
- 用户描述需求 → Ralph 自动生成配置文件和任务列表
- 按依赖顺序执行任务
- 每个任务:调用 AI 引擎(Qwen/Claude/GPT-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 测试
测试执行顺序:
- 单元测试(后端 + 前端)
- 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
解决方案:
- 检查 skill.md 文件是否存在
- 检查目录结构是否正确
- 重启 Kiro
问题 2: API 调用失败
症状: 错误信息显示 API 认证失败
解决方案:
- 检查 API 密钥是否正确
- 检查环境变量是否设置
- 查看日志文件:
~/.kiro/skills/ralph-skill/logs/ralph.log
问题 3: 代码生成质量不佳
症状: 生成的代码不符合预期
解决方案:
- 提供更详细的需求描述
- 指定明确的技术栈和约束
- 尝试分步执行
- 调整 AI 引擎的 temperature 参数
问题 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 前,请确保已阅读并理解配置要求和安全特性。