拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Gentle AI Agent Builder 实战指南:从自然语言描述到多 Agent 技能的一站式生成与安装

【免费下载链接】gentle-aiGentle-AI configures the AI coding agents you already use: Claude Code, Cursor, OpenCode, Codex, Pi, and more. Choose persistent memory, Organic-Driven Development, curated skills, MCP servers, personas, and optional bounded review. Open source, no agent lock-in.项目地址https://gitcode.com/gh_mirrors/ge/gentle-ai点击查看免费下载导读本文基于 Gentle AI 仓库中的产品需求文档 PRD-AGENT-BUILDER.md完整解析 Create your own AgentAgent Builder功能的定位、六步 TUI 交互流程、生成引擎抽象、提示词策略、输出解析、跨 Agent 安装与 SDDSpec-Driven Dev集成方案。通过对照仓库内internal/agentbuilder包的源码实现与测试用例你将掌握自定义子代理从一句话需求到安装到所有 AI 客户端的完整技术链路并理解如何复用既有基础设施Agent 检测、技能目录、系统提示词注入来扩展自己的生成引擎。1. 为什么需要 Agent Builder问题与愿景Gentle AI 生态自带一批预构建的技能skills与 SDD 阶段但每个开发者的工作方式不同前端架构师需要设计系统评审 Agent安全工程师需要漏洞扫描 Agent技术文档作者需要文档生成 Agent。今天创建一个自定义子代理需要理解每种 AI Agent 的技能文件格式SKILL.md知道每个 Agent 的配置存放位置Claude Code 的~/.claude/skills/、OpenCode 的~/.config/opencode/skills/等手动编写系统提示词、触发条件与模式把同一份技能复制到使用的每个 AI Agent 上如果与 SDD 相关还要理解 orchestrator 配置并注册新阶段。PRD 将这一系列手工操作定义为不应存在的障碍只要能用自然语言描述想要 Agent 做什么生态就应该生成它、校验它并从一个 TUI 流程把它安装到你配置的全部 AI Agent 上。由此引出 Agent Builder 的核心愿景——一个引导式 TUI 体验借鉴 Claude/agents的 Create Agent 流程但更进一步跨 Agent生成一次安装到所有工具Claude Code、OpenCode、Gemini CLI、Cursor 等SDD 感知可选地作为新 SDD 阶段或对现有阶段提供支持生态原生生成的 Agent 可访问 Engram持久记忆与 MCP 服务器遵循 Gentle AI 技能格式安装前预览在触及文件系统之前你能看到将要生成的完整内容。仓库中 internal/agentbuilder 目录正是这一 PRD 的实现载体包含engine.go生成引擎、prompt.go提示词组合、parser.go输出解析、installer.go技能安装、registry.go自定义 Agent 注册表与配套测试本文后续章节将逐一对齐。2. 六步 TUI 流程从欢迎页到安装完成2.1 入口欢迎页顶级菜单Agent Builder 是欢迎页Welcome Screen上的顶级菜单项与既有选项平级┌──────────────────────────────────────────────────────────────────┐ │ Menu │ │ Start installation │ │ Upgrade tools │ │ Sync configs │ │ Upgrade Sync │ │ Configure models │ │ ★ Create your own Agent │ │ Manage backups │ │ Quit │ │ j/k: navigate • enter: select • q: quit │ └──────────────────────────────────────────────────────────────────┘当系统检测不到任何已安装的 AI Agent 时该菜单项会被禁用并标注(no agents)——因为生成引擎必须来自用户已安装的 Agent 二进制。2.2 六步流程全景PRD 规划了从引擎选择到安装完成的完整子流程仓库中每一步都有对应的 TUI 屏幕实现见 internal/tui/screens 下的agent_builder_*.go文件Step 1: Choose Your AI Engine → Step 2: Describe Your Agent ★ Claude Code (installed) ┌──────────────────────────┐ ○ OpenCode (installed) │ I want an agent that │ ○ Gemini CLI (installed) │ reviews my React │ ○ Codex (installed) │ components for │ └ 仅显示已安装的 Agent ─┘ │ accessibility compliance │ │ following WCAG 2.1 AA │ └──────────────────────────┘ │ Step 3: SDD Integration ◄────────────────┘ ★ Standalone ← 独立技能不属于 SDD ○ New SDD Phase ← 在管道中新增阶段 ○ Support for existing phase ← 增强现有 SDD 阶段 │ Step 4: Generating... ◄──────────────────┘ [████████████░░░░] 75% ◌ Analyzing your description ✓ Generating skill definition ◌ Creating trigger patterns Step 5: Preview Your Agent ◄──────────────┘ Name: a11y-reviewer Description: Reviews React components for WCAG 2.1 AA ... Trigger: When reviewing React/JSX files for accessibility SDD: Supports design phase Engram: ✓ (reads project patterns, saves a11y decisions) ── Generated Skill ── # A11y Reviewer / ## Description / ## Trigger ... Will be installed to: • ~/.claude/skills/a11y-reviewer/SKILL.md • ~/.config/opencode/skills/a11y-reviewer/SKILL.md [Install] [Edit] [Regenerate] [Back] Step 6: Installing ───────────────────────┘ ✓ Claude Code — skill installed ✓ OpenCode — skill installed ✓ Skill registered in catalog ✓ SDD integration configured Done! Your agent is ready.各步骤的交互要点Step 1 引擎选择仅列出已安装的 Agentagent_builder_engine.go 中的RenderABEngine会先对可用引擎做非空判断——若availableEngines为空直接渲染警告 No supported AI agent binaries found on PATH. 并只提供 Back 选项。Step 2 描述输入支持多行文本、滚动、自动换行、光标导航方向键 / Home / End与粘贴。PRD 明确建议复用 charmbracelet/textarea 这类 Bubbletea 多行输入组件避免自造文本编辑逻辑空描述时 Continue 按钮禁用并显示辅助文案 Describe what you want your agent to do。Step 3 SDD 集成选择独立 / 新阶段 / 阶段支持若选新阶段还需在explore → propose → spec → design → tasks → apply → verify → archive管道中选择插入位置。Step 5 预览展示名称、描述、触发条件、SDD 与 Engram 摘要并给出可滚动的 SKILL.md 内容面板。agent_builder_preview.go 的RenderABPreview把agent.Content按行切分依据终端高度预留头部/元数据/底部区域后计算可视行数支持↑/↓滚动并显示 lines X-Y of N 提示。预览页提供四个动作Install直接安装、Edit用$EDITOR打开生成的 SKILL.md关闭后回到预览、Regenerate用同一提示词重新生成、Back。Step 6 安装完成展示每个 Agent 的安装结果、目录注册与 SDD 配置情况并提示使用方式例如让 AI 评审某个组件的可访问性。PRD 同时说明V1 的管理自定义 Agent列出、编辑、删除、导出不在范围内但架构必须为它预留能力V1 中用户可手动编辑/删除SKILL.md文件来管理自定义 Agent。3. 生成引擎复用你已有的 AI CLIAgent Builder 架构上的关键决策是不自带 AI 模型而是把用户已安装的某个 AI Agent 当作生成引擎。每个受支持的 Agent 都暴露了不同的非交互 CLI 接口Agent命令模式Claude Codeclaude --print -p {prompt}管道输入提示词返回文本输出OpenCodeopencode run {prompt}Run 模式文本输出Gemini CLIgemini -p {prompt}Pipe 模式Codexcodex exec {prompt}Exec 模式3.1 GenerationEngine 接口PRD 定义一个统一的GenerationEngine接口源码实现位于 engine.gotype GenerationEngine interface { // Agent returns the AgentID this engine wraps. Agent() model.AgentID // Generate sends prompt to the AI CLI and returns the raw output. Generate(ctx context.Context, prompt string) (string, error) // Available reports whether the underlying binary is on PATH. Available() bool }3.2 四种引擎的 CLI 封装实现源码为四种引擎各实现一个 struct行为高度一致可用性检测统一走exec.LookPath如claude、opencode、gemini、codex二进制不在 PATH 上即返回 false——这正是 Step 1 只展示已安装引擎的底层依据生成调用统一走exec.CommandContext(ctx, binary, args...)并把 stderr 捕获进bytes.Buffer。一旦命令失败错误信息中会附带 stderr 内容满足 PRD 中显示引擎 stderr 并提供重试/换引擎的异常处理要求超时控制由调用方通过context.WithTimeout注入默认 120 秒可配置PRD 建议超时后提示以 2 倍时长重试。// ClaudeEngine drives Claude Code via claude --print -p {prompt}. type ClaudeEngine struct{} func (e *ClaudeEngine) Generate(ctx context.Context, prompt string) (string, error) { cmd : exec.CommandContext(ctx, claude, --print, -p, prompt) var stderr bytes.Buffer cmd.Stderr stderr out, err : cmd.Output() if err ! nil { return , fmt.Errorf(claude generate: %w\nstderr: %s, err, stderr.String()) } return string(out), nil }工厂函数NewEngine(agentID)同样位于 engine.go把model.AgentClaudeCode、model.AgentOpenCode、model.AgentGeminiCLI、model.AgentCodex映射到对应引擎未知 AgentID 返回 nil。这一点值得注意Cursor、VSCode 等虽有技能目录但 PRD 与实现均不把它们作为生成引擎——engine_test.go 中TestNewEngine_Cursor_ReturnsNil明确断言NewEngine(model.AgentCursor)返回 nil。AgentID 常量定义在 internal/model/types.go取值为claude-code、opencode、gemini-cli、codex。由于新增引擎只需实现 3 个方法PRD 的非功能需求 R-AB-NF-04 指出架构必须允许通过实现GenerationEngine接口来添加新引擎无需改动 TUI 与安装器。4. 提示词策略让生成结果一次成型4.1 系统提示词提示词是生成质量的关键。PRD 给出的系统提示词要求生成的结构严格遵循生态约定源码 prompt.go 中的systemPromptBase将其落地为六个固定小节# {Title} — 清晰描述性的技能标题 ## Description — 技能做什么及其目的 ## Trigger — 何时激活特定短语、上下文或条件 ## Instructions — 技能激活后 AI 必须遵循的分步指令 ## Rules — 硬约束与护栏必须/禁止做什么 ## Examples — 展示技能行为的真实示例约束条款包括技能必须自包含于单个 SKILL.md指令必须可执行且具体触发条件必须精确以避免误触发若用户提到 SDD 集成须包含该技能与所支持 SDD 阶段的交互说明必须包含 Engram 集成指令何时保存决策、何时搜索历史上下文要求调用mem_save、mem_search、mem_context并在 Instructions 中给出 PROACTIVE SAVE TRIGGERS 列表名称必须是派生自描述的 kebab-case。输出格式约定同样硬性写入系统提示词Return ONLY the SKILL.md content. No explanations, no wrapping, no code fences. Start directly with# {Name}。4.2 用户提示词组合PRD 的最终提示词由四部分拼接系统提示词 用户描述Step 2 SDD 集成上下文Step 3 已安装 Agent 与生态能力上下文。源码中的ComposePrompt(userInput string, installedAgents []model.AgentID) string实际实现为// Installed agents context. if len(installedAgents) 0 { sb.WriteString(installed_agents\n) sb.WriteString(This skill will be installed for the following agents:\n) for _, a : range installedAgents { sb.WriteString(fmt.Sprintf(- %s\n, promptEscape(string(a)))) } sb.WriteString(/installed_agents\n\n) } // Users intent. sb.WriteString(user_request\n) sb.WriteString(promptEscape(userInput)) sb.WriteString(\n/user_request\n)实现细节有两个值得学习的工程点显式 XML 标签包裹把已安装 Agent 列表与用户请求分别放入installed_agents、user_request包裹块便于生成模型区分权威系统指令与易变的用户数据降低提示词注入风险转义所有用户输入经html.EscapeString处理后拼入提示词防止描述中的特殊字符破坏提示词结构。4.3 生成运行时的 TUI 响应性Step 4 的生成过程是外部 CLI 子进程必须在 goroutine 中运行以保持 TUI 响应PRD 非功能需求 R-AB-NF-02生成期间 TUI 保持响应显示 spinner、可取消。PRD 给出的模式是返回tea.Cmd在命令内用context.WithTimeout包裹生成调用完成后回传携带结果或错误的AgentBuilderDoneMsgfunc (m Model) startGeneration() tea.Cmd { engine : m.AgentBuilder.selectedEngine prompt : m.AgentBuilder.composedPrompt return func() tea.Msg { ctx, cancel : context.WithTimeout(context.Background(), 120*time.Second) defer cancel() result, err : engine.Generate(ctx, prompt) if err ! nil { return AgentBuilderDoneMsg{Err: err} } agent, err : ParseGeneratedAgent(result) return AgentBuilderDoneMsg{Agent: agent, Err: err} } }5. 输出解析与校验把裸文本变成结构化的 GeneratedAgent生成引擎返回的是原始文本Agent Builder 必须完成四件事校验结构必须含 Description、Trigger、Instructions 三个必需小节、提取元数据技能名、描述、触发条件、清理输出去除 AI 可能添加的代码围栏、前言与尾注、生成 kebab-case 目录名。5.1 数据结构PRD 定义了GeneratedAgent与SDDIntegration结构源码 types.go 中的GeneratedAgent已实现包含 Name / Title / Description / Trigger / Content而SDDIntegration字段在当前 V1 实现中未落盘RegistryEntry只持久化 name、title、description、created_at、generation_engine、installed_agents。5.2 解析实现要点parser.go 的Parse(raw string) (*GeneratedAgent, error)是核心实现细节如下代码围栏剥离stripCodeFences用正则^[a-zA-Z]*\s*$匹配开栏、^\s*$匹配闭栏仅当开栏位于行首或前缀仅为空白且闭栏之后只剩空白时才剥离避免误删内容中的合法围栏标题提取extractTitle取第一个 H1^#\s(.)$parser_test.go 中TestParse_MultipleH1HeadingsUsesFirst验证了只取第一个 H1后续标题忽略的行为小节提取extractSection用(?ms)^##\s{Name}\s*\n(.*?)(?:^##\s|\z)提取每个##小节正文小节缺失或为空都返回明确错误如 parse: missing ## Trigger section必需性校验Description、Trigger、Instructions 三个小节缺失即解析失败——对应 PRD 边缘情况表生成的输出缺少必需小节 → 警告并建议手动编辑或重新生成kebab-case 命名titleToName小写化后仅保留 a-z/0-9 字符其余字符折叠为单连字符并去掉首尾连字符。测试用例覆盖了典型输入A11y Reviewer → a11y-reviewer、CSS Validator → css-validator、API Doc Generator! → api-doc-generator、 Leading Spaces → leading-spaces内容完整性解析后Content保留完整清理后的 SKILL.md 文本含 Rules、Examples 等额外小节因为安装时写入磁盘的就是Content。5.3 全流程集成测试integration_test.go 用一个端到端测试把整条链路串起来ComposePrompt(build an a11y CSS reviewer, ...)→MockEngine.Generate返回预置的cannedSKILL→Parse得到css-a11y-reviewer→Install写入两个临时技能目录 →LoadRegistry/Add/SaveRegistry→ 重新加载并FindByName验证记录存在。这为提示词 → 生成 → 解析 → 安装 → 注册的完整调用关系提供了可验证依据也是本文所述流程最直接的代码级演示。6. 技能安装一次生成处处生效6.1 各 Agent 的技能目录自定义 Agent 技能遵循与内置技能完全相同的安装模式通过 Agent 接口的SkillsDir()方法获取各 Agent 的正确路径Agent技能目录文件路径Claude Code~/.claude/skills/~/.claude/skills/{name}/SKILL.mdOpenCode~/.config/opencode/skills/~/.config/opencode/skills/{name}/SKILL.mdGemini CLI~/.gemini/skills/~/.gemini/skills/{name}/SKILL.mdCursor~/.cursor/skills/~/.cursor/skills/{name}/SKILL.mdVSCode~/.vscode/skills/~/.vscode/skills/{name}/SKILL.mdCodex~/.codex/skills/~/.codex/skills/{name}/SKILL.mdWindsurf~/.windsurf/skills/~/.windsurf/skills/{name}/SKILL.mdAntigravity~/.antigravity/skills/~/.antigravity/skills/{name}/SKILL.md安装器把同一份 SKILL.md写入初始安装时配置过的所有 Agent。目标 Agent 的检测方式PRD 给出三种方案并推荐 V1 采用方案 1扫描文件系统——如果某 Agent 的技能目录存在由主安装器创建即视为已配置其余方案包括读取安装器持久化的状态文件、或逐个重新运行agents.Adapter.Detect()。6.2 原子安装与回滚installer.go 的Install(agent *GeneratedAgent, adapters []AdapterInfo, _ string)实现了一个重要的可靠性特性——原子性R-AB-NF-06对每个 AdapterInfo构造{skillsDir}/{agent.Name}/SKILL.md路径os.MkdirAll(skillDir, 0755)自动创建缺失的父目录与主安装器行为一致再os.WriteFile(skillFile, []byte(agent.Content), 0644)写入内容维护written路径清单任一目录创建或文件写入失败时调用rollback(written)删除此前已写入的所有文件并把已有结果标记为失败——保证要么全部安装要么全部不装不会出现部分 Agent 装了、部分没装的中间态。installer_test.go 的TestInstall_RollbackOnSecondWriteFailure正是验证这一行为第二个目录中预置同名文件使MkdirAll失败断言第一个目录已写入的文件被回滚删除。每个 Agent 的安装结果以InstallResult{AgentID, Path, Success, Err}返回供 Step 6 逐项渲染。6.3 自定义 Agent 注册表为了跟踪用户创建过哪些自定义 Agent为未来的管理界面铺路本地维护一份版本化的注册文件~/.config/gentle-ai/custom-agents.jsonPRD 给出样例{ version: 1, agents: [ { name: a11y-reviewer, title: A11y Reviewer, description: Reviews React components for WCAG 2.1 AA accessibility compliance, created_at: 2026-04-03T14:30:00Z, generation_engine: claude-code, sdd_integration: { mode: phase-support, target_phase: design }, installed_agents: [claude-code, opencode] } ] }源码 registry.go 提供了完整的 JSON 管理能力LoadRegistry(path)文件不存在时返回空的 Version 1 注册表容错启动SaveRegistry(path, reg)以缩进 JSONjson.MarshalIndent写盘Add/FindByName/RemoveByName增查删三个基本操作RemoveByName返回是否找到并删除HasConflictWithBuiltin(name)内置技能冲突检测——内置技能名集合来自 internal/catalog/skills.go 的MVPSkills()包含sdd-init、sdd-apply、sdd-design、sdd-tasks、skill-creator、judgment-day、branch-pr等 25 个 p0 技能。从源码结构看这种动态取数的方式保证新增内置技能后冲突检测自动同步。该函数正是 PRD 边缘情况表技能名与内置技能冲突 → 追加-custom后缀并警告用户的检测前提与现有自定义 Agent 重名时则弹确认Agent 已存在是否替换。7. SDD 集成三种模式深入解析SDDSpec-Driven Dev集成是 Agent Builder 相对普通技能生成器的差异化能力PRD 定义了三种模式。7.1 Standalone独立模式最简单生成的技能就是普通技能文件无 SDD 感知像react-19、typescript一样基于文件上下文或用户调用来触发。7.2 Phase Support阶段支持模式自定义 Agent增强现有 SDD 阶段。以 a11y-reviewer 支持 design 阶段为例运行时工作方式SDD orchestrator 到达design阶段orchestrator 的系统提示词中包含对自定义 Agent 的引用When executing thedesignphase, also consider loading thea11y-reviewerskill for accessibility validation of the design.AI Agent 读取自定义技能把其指导融入 design 阶段输出自定义技能的 Engram 指令告诉 Agent 把可访问性决策存入记忆。被修改的内容Agent 的系统提示词CLAUDE.md、AGENTS.md 等新增一段标记包裹的引用小节自定义 SKILL.md 内含面向所支持阶段的具体指令。标记注入格式如下通过既有的StrategyMarkdownSections机制基于标记的注入不覆盖用户内容写入!-- gentle-ai:custom-agent:{name} -- ## Custom Agent: {Title} When executing the {target_phase} phase, also load and apply the {name} skill for additional validation/support. !-- /gentle-ai:custom-agent:{name} --7.3 New Phase新阶段模式自定义 Agent 成为 SDD 管道中的新阶段例如在 design 与 tasks 之间插入 a11y-auditorchestrator 的依赖图更新为proposal - specs - design - a11y-audit - tasks - apply - verify - archive自定义技能遵循 SDD 阶段契约读取上一阶段产物把自己的产物写入 Engramtopic key 形如sdd/{change}/a11y-audit返回标准阶段结果status、executive_summary、artifacts、next_recommended。被修改的内容按阶段技能模式创建新的 SDD 技能文件orchestrator 系统提示词中的依赖图被更新Engram topic key 格式写入技能内。PRD 特别强调V1 的新阶段模式完全由提示词驱动——把阶段引用注入 orchestrator 系统提示词即可orchestrator作为 AI会自行解读依赖图并执行无需改动 SDD 引擎的任何代码。7.4 SDD 阶段插入位置用户选择新阶段在管道中的插入位置PRD 给出完整映射表custom为插入的新阶段插入于结果管道explore 之后explore →custom→ propose → spec → design → tasks → apply → verify → archivepropose 之后explore → propose →custom→ spec → design → tasks → apply → verify → archivespec 之后explore → propose → spec →custom→ design → tasks → apply → verify → archivedesign 之后explore → propose → spec → design →custom→ tasks → apply → verify → archivetasks 之后explore → propose → spec → design → tasks →custom→ apply → verify → archiveapply 之后explore → propose → spec → design → tasks → apply →custom→ verify → archiveverify 之后explore → propose → spec → design → tasks → apply → verify →custom→ archive8. 技术架构包结构、屏幕与路由8.1 包结构PRD 规划的目录结构在仓库中已落地核心逻辑在 internal/agentbuilderTUI 屏幕在 internal/tui/screensinternal/ ├── agentbuilder/ # 核心 Agent Builder 逻辑 │ ├── engine.go # GenerationEngine 接口 4 个引擎实现 │ ├── parser.go # 输出解析与校验剥围栏、提小节、kebab 命名 │ ├── installer.go # 跨 Agent 技能安装含原子回滚 │ ├── registry.go # 自定义 Agent 注册表JSON 文件管理 内置冲突检测 │ ├── prompt.go # 提示词组合系统提示词 用户请求 安装上下文 │ └── types.go # GeneratedAgent / RegistryEntry / Registry 数据结构 ├── tui/ │ └── screens/ │ ├── agent_builder_engine.go # Step 1: 引擎选择 │ ├── agent_builder_prompt.go # Step 2: 描述输入 │ ├── agent_builder_generating.go # Step 4: 生成进度 │ ├── agent_builder_preview.go # Step 5: 预览 │ ├── agent_builder_installing.go # Step 6: 安装进度 │ └── agent_builder_complete.go # 安装完成8.2 屏幕常量、状态与路由PRD 规划了以Screen iota 100偏移新增的 8 个屏幕常量避免与既有屏幕冲突并为Model增加AgentBuilder AgentBuilderState字段承载各步骤的选中引擎、提示词文本与光标位置、SDD 模式与目标阶段、生成状态与错误、预览滚动位置、安装结果。路由表体现子流程独立于主安装流程的设计且每一步都支持 Esc 返回R-AB-20var agentBuilderRoutes map[Screen]Route{ ScreenAgentBuilderEngine: {Backward: ScreenWelcome}, ScreenAgentBuilderPrompt: {Backward: ScreenAgentBuilderEngine}, ScreenAgentBuilderSDD: {Backward: ScreenAgentBuilderPrompt}, ScreenAgentBuilderSDDPhase: {Backward: ScreenAgentBuilderSDD}, ScreenAgentBuilderGenerating: {Backward: ScreenAgentBuilderPrompt}, ScreenAgentBuilderPreview: {Forward: ScreenAgentBuilderInstalling, Backward: ScreenAgentBuilderPrompt}, ScreenAgentBuilderInstalling: {Forward: ScreenAgentBuilderComplete}, ScreenAgentBuilderComplete: {Backward: ScreenWelcome}, }8.3 既有基础设施的复用PRD 强调 Agent Builder 刻意复用既有基础设施这也是生态原生的落点能力复用机制Agent 检测agents.Adapter.Detect()—— 与主安装器相同技能路径agents.Adapter.SkillsDir()—— 与内置技能安装相同路径系统提示词注入model.StrategyMarkdownSections—— 用于 SDD 集成的标记注入TUI 模式相同的 Bubbletea Lipgloss 样式与键盘导航j/k、Enter、EscAgent 枚举agents.Registry—— 用于列出可用生成引擎9. 需求清单、边缘情况与演进路线9.1 功能需求要点P0 为核心PRD 用需求表约束了行为边界值得关注的核心条目R-AB-01/02/03欢迎页顶级菜单可达、只显示已安装引擎、接受自由格式自然语言描述R-AB-04/05/06用所选引擎生成合法 SKILL.md、安装前必须预览、安装到所有已配置 AgentR-AB-07/08支持三种 SDD 模式维护~/.config/gentle-ai/custom-agents.json本地注册表R-AB-10/11/12/13同提示词可重新生成每个技能必须含 Engram 集成指令引擎错误优雅处理生成超时可配置默认 120sR-AB-14生成的技能必须是自包含的单个 SKILL.md无外部依赖R-AB-15/16阶段支持模式用标记注入更新系统提示词新阶段模式更新系统提示词中的依赖图R-AB-18/19/20描述输入支持多行滚动预览支持长技能滚动每步支持 Esc 返回。非功能需求强调生成须在 120 秒内完成或报超时R-AB-NF-01、TUI 生成期间保持响应spinner、可取消、沿用 Bubbletea Lipgloss 样式、引擎可插拔、注册表格式版本化、安装原子性。9.2 边缘情况与错误处理PRD 的边缘情况表是 Agent Builder 健壮性的直接体现全表要点如下场景行为无任何 AI Agent 安装Create your own Agent 菜单禁用标注 (no agents)所选引擎生成失败显示引擎 stderr提供 Retry 或 Try different engine生成输出缺少必需小节警告列出缺失小节建议手动编辑或重新生成名称与内置技能冲突追加-custom后缀并警告检测逻辑见HasConflictWithBuiltin名称与既有自定义 Agent 冲突询问 Agent {name} already exists. Replace it?$EDITOR未设置Edit 动作回退到vivi也不可用则在可滚动面板中显示原文并给出复制指引技能目录不存在自动创建与主安装器一致见os.MkdirAll生成超时显示超时错误提供 2 倍时长重试 或换引擎用户提示词为空禁用 Continue显示辅助文案生成期间网络错误显示清晰错误所有引擎本地运行网络错误少见但 API 型 Agent 可能发生9.3 未来演进V1 范围外PRD 明确列出的后续方向包括Marketplace社区 Agent 分享与发现、TemplatesCode Reviewer、Doc Writer、Test Generator 等预置起点、Agent Management ScreenTUI 内列出/编辑/删除/导出、Team Sync通过 git 跨团队共享、Multi-model Generation如 Claude 生成 Gemini 精炼、Knowledge Files为自定义 Agent 附加参考文档、Agent Testing安装前沙箱试运行、Version Control版本追踪与回滚以注册表版本化为基础。9.4 成功指标PRD 用四个可量化指标定义成功均依赖注册表与未来遥测完成率80% 开始构建的用户完成创建、生成质量70% 生成的技能无需手动编辑即被使用、跨 Agent 安装100% 已配置 Agent 收到技能、SDD 集成使用率30% 的自定义 Agent 使用 SDD 集成按注册表sdd_integration.mode分布统计。10. 延伸阅读若想进一步理解 Agent Builder 在整个生态中的位置建议继续阅读仓库内相关文档与源码父级 PRDPRD.mdGentleman AI Installer 总体产品需求核心实现internal/agentbuilderengine / prompt / parser / installer / registry 及其测试TUI 屏幕internal/tui/screens/agent_builder_engine.go、agent_builder_preview.go数据模型internal/model/types.goAgentID 常量、internal/catalog/skills.go内置技能目录冲突检测的数据源端到端验证internal/agentbuilder/integration_test.go提示词→生成→解析→安装→注册全链路。赞分享【免费下载链接】gentle-aiGentle-AI configures the AI coding agents you already use: Claude Code, Cursor, OpenCode, Codex, Pi, and more. Choose persistent memory, Organic-Driven Development, curated skills, MCP servers, personas, and optional bounded review. Open source, no agent lock-in.项目地址https://gitcode.com/gh_mirrors/ge/gentle-ai点击查看免费下载相关推荐Mastra Agent Builder 深度指南用自然语言一键生成 Agents、Tools 与 WorkflowsMastra Agent Builder 深度指南用自然语言一键生成 Agents、Tools 与 Workflows mastra/agent build人工智能Agent 框架AI AgentRAG后端一句话生成完整 AI Agent 代码openJiuwen Agent Store 之 VibeAgent 自然语言生成实战一句话生成完整 AI Agent 代码openJiuwen Agent Store 之 VibeAgent 自然语言生成实战 在 openJiuwen Age示例工程基于 AAS 的 App Builder 技能从自然语言到全栈应用的 Agent 编排实战指南基于 AAS 的 App Builder 技能从自然语言到全栈应用的 Agent 编排实战指南 本文围绕 AASagentic awesome skillsAI 技能AI 插件上一篇推荐开源项目Rucky - 您的移动USB HID攻击工具下一篇【亲测免费】 使用ComicTagger管理您的数字漫画库创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门