后端微服务AI AgentRPC框架【免费下载链接】go-microA framework for building agents and services项目地址https://gitcode.com/gh_mirrors/go/go-micro点击查看免费下载导读go-micro 仓库用 VHS 为骨架完整拆解仓库内两盘磁带——无需任何 API 密钥的快速上手演示first-run.tape与需要ANTHROPIC_API_KEY的hero 演示prompt-demo.tape并结合 Makefile 的demo-gif目标与micro new、micro run、micro chat的源码实现让你既能复现录制流程也能理解这些演示背后真实跑通的脚手架生成 → 服务运行 → curl 调用与AI 设计 → 生成 → 编译 → 启动 → 对话中动态新增服务两条完整链路。一、演示策略为什么用 VHS 脚本化录制internal/demo/README.md 开门见山地说明了这套演示的组织方式Terminal demos for the README and website, scripted with VHS so they are reproducible and never rot: edit the.tape, re-record, commit the new GIF.核心诉求有三个可复现reproducible演示不是某次录屏的孤本而是一段可反复执行的录制脚本任何人在任何机器上都能得到行为一致的动画。永不腐化never rotCLI 行为或界面变化后演示无需重拍——改一行.tape脚本重新录制提交新 GIF 即可。与 CI 契约保持一致仓库的 CHANGELOG.md 记载README 以micro run --prompt演示作为门面而可复现的演示录制脚本放在internal/demo/与文档、测试共同构成对 CLI 行为的守护。这套做法的边界也很清晰演示脚本只负责把真实命令敲给真实的 CLI因此它要求被演示的microCLI 真实存在于PATH上并且磁带会真实地 scaffold 出服务目录——这正是后文强调请在 scratch 目录录制的原因。二、两盘磁带职责分工与密钥要求原文档用一张表格概括了两盘磁带的分工这里完整继承并补充产出物与适用场景磁带文件演示内容是否需要密钥产出物适用场景first-run.tape快速上手micro new→micro run→curl否first-run.gifREADME 快速开始、无密钥环境、兜底演示prompt-demo.tapeHero 演示micro run --prompt设计、构建、启动服务对话中途动态生成新服务是ANTHROPIC_API_KEYprompt-demo.gif官网首页、README 顶部AI 生成能力门面两盘磁带分别对应 go-micro CLI 的两种工作模式first-run.tape对应传统开发者体验手工micro new生成服务 →micro run启动 →curl调用全程不需要任何 AI 密钥。prompt-demo.tape对应AI 原生开发体验一句话描述系统 → CLI 用 LLM 设计服务架构 → 确认后生成代码并编译启动 → 在交互式控制台里用自然语言编排服务甚至对话中途生成全新服务。录制时长的差异也反映在脚本里无密钥的快速上手 8 秒左右即可完成服务启动而 prompt demo 仅等待设计提案就预留了 25 秒、代码生成 编译 启动预留 60 秒——因为真实生成耗时取决于在线模型。三、录制前的环境准备原文档给出的准备清单如下逐一说明go install github.com/charmbracelet/vhslatest make demo-gif # records first-run.gif (no key needed) vhs internal/demo/prompt-demo.tape # manual: live-provider timing, tune sleeps第一步安装 VHS 及其依赖。VHS 依赖ttyd提供终端模拟与ffmpeg把帧编码为 GIF安装 VHS 后还需确保这两个命令可用否则录制无法进行。Makefile 的demo-gif目标在启动前会主动探测demo-gif: command -v vhs /dev/null || { echo vhs not found — install with: go install github.com/charmbracelet/vhslatest (needs ttyd ffmpeg); exit 1; } vhs internal/demo/first-run.tape也就是说即便你跳过手动安装直接执行make demo-gifMake 也会给出明确的安装提示而不是抛出一段晦涩的报错。第二步确保microCLI 在PATH上。磁带中的micro new、micro run都是真实命令VHS 录制时会在模拟终端里逐一执行CLI 不在PATH上演示就会在第一步卡住。第三步在 scratch 目录录制。这是原文档特别强调的一点——the tapes scaffold real services where they runmicro new helloworld会真实创建helloworld/目录micro run --prompt会真实生成task/、project/、agent/等一批服务目录。在临时目录录制避免把演示产生的工程文件留在仓库工作区。四、两盘磁带的完整脚本与逐行解读VHS 脚本是可读的声明式 DSL。以下两段脚本原样取自仓库first-run.tape 与 prompt-demo.tape它们既是录制指令也是演示内容的权威规格说明。4.1 first-run.tape无密钥快速上手# VHS tape: the no-key quick start — scaffold → run → call. # Record with: vhs internal/demo/first-run.tape (see internal/demo/README.md) # Requires: vhs, ttyd, ffmpeg, and the micro CLI on PATH. No provider key needed. Output internal/demo/first-run.gif Set Shell bash Set FontSize 15 Set Width 1100 Set Height 620 Set TypingSpeed 40ms Set Padding 12 Type micro new helloworld Enter Sleep 4s Type cd helloworld Enter Sleep 500ms # Loopback bind → auth off → the curl below needs no token. Type micro run -d Enter Sleep 8s Type curl -s -X POST localhost:8080/api/helloworld/Helloworld.Call -H Content-Type: application/json -d {name:World} Enter Sleep 4s Hide Type kill %1 Enter Sleep 1s Show逐段拆解Set系列指令控制录制画布bash shell、15 号字体、1100×620 尺寸、40ms 输入速度、12px 内边距。这些参数决定了 GIF 在 README 上的观感。micro new helloworld脚手架生成。cmd/micro/cli/new/new.go 的Run会按默认模板生成main.go、handler/helloworld.go、Makefile、README.md、.gitignore与go.mod并自动执行go mod tidy解析依赖。值得注意默认模板是无 protobuf 的——handler 通过反射注册服务无需protoc工具链即可构建运行只有显式加--proto或选用crud/pubsub/api模板才走 protobuf 流程。micro run -d 后台运行 detach 模式。-d/--detach让 cmd/micro/run/run.go 跳过交互式控制台、只等待信号让命令在 shell 后台执行把终端还给后续的curl。micro run会自动发现目录下的main.gorun.go 的 auto-discover 逻辑并启动一个默认绑定127.0.0.1:8080的 HTTP 网关。curl -X POST localhost:8080/api/helloworld/Helloworld.Call网关路径规则是http://{addr}/api/{service}/{method}见 run.go 的启动横幅因此helloworld服务的Helloworld.Call方法被映射到该 URL。磁带注释点明了关键前提——loopback 绑定默认关闭鉴权Loopback bind → auth off → the curl below needs no token这与 run.go 的实现一致auth 跟随监听地址本机回环地址自动关闭登录要求而暴露到非 loopback 地址时鉴权会自动开启。Hide/kill %1/Show录制收尾时隐藏光标、杀掉后台服务保证 GIF 结尾干净。4.2 prompt-demo.tapeAI 生成系统的 Hero 演示# VHS tape: the hero demo — generate a system from a prompt and talk to it. # Record with: ANTHROPIC_API_KEY... vhs internal/demo/prompt-demo.tape # # MANUAL RECORDING ONLY: generation time depends on the live provider, so the # sleeps below are generous estimates — expect to tune them (or trim the video) # per recording. Record in an empty scratch directory. Output internal/demo/prompt-demo.gif Set Shell bash Set FontSize 15 Set Width 1100 Set Height 700 Set TypingSpeed 40ms Set Padding 12 Type micro run --prompt a task management system with categories --provider anthropic Enter # Wait for the design proposal (Services: task / project ... Generate? [Y/n]) Sleep 25s Type y Enter # Wait for codegen compile start console banner Sleep 60s Type Create a project called Launch, then add three tasks to it Enter # Tool calls stream: project_Project_Create, task_Task_Create x3 Sleep 30s Type I need to track shipping. Create a shipment for order 123 to London. Enter # The mid-conversation service generation moment — the money shot. Sleep 60s CtrlC Sleep 2s这段脚本是AI 原生开发闭环的完整实录四个关键节点对应源码中的四个真实环节节点一micro run --prompt a task management system with categories --provider anthropic→ 设计提案等待 25s。cmd/micro/run/run.go 的runWithPrompt会先调用 cmd/micro/cli/generate/generate.go 的Design把系统描述发给 LLM要求返回严格的 JSON 服务规格。该包内置的设计提示词generate.go约束了产出质量——服务名小写连字符且不带-service后缀、每个服务必须含 CRUD 端点Create/Read/Update/Delete/List、外加 1~3 个真实业务端点、2~4 个聚焦单一职责的服务、每个记录必带id/created/updated字段。设计完成后 CLI 打印每个服务的端点清单然后停下等待人工确认——这正是磁带中等待 25 秒后出现的Generate? [Y/n]提示run.go 的confirmGenerate回车或y都表示确认。节点二输入y→ 代码生成 编译 启动等待 60s。generate.Generategenerate.go为每个服务生成proto/main.go/Makefile/go.mod结构与占位 handler然后用 LLM 编写带真实业务逻辑的 handlerhandlerPrompt 强制要求用go-micro.dev/v6/store持久化而非内存 map、必须含文档注释与example、控制在 200 行内最后进入最多 3 轮的编译-修复循环compileFixgenerate.gogo build失败就把编译错误发给 LLM 修复直到构建通过或达到尝试上限。生成收尾时还会自动生成一个管理所有服务的agent服务generateAgent。随后runWithPrompt把 provider 与 API key 写入环境变量转回普通micro run流程发现并启动全部服务控制台横幅出现。节点三Create a project called Launch, then add three tasks to it等待 30s。此时进入交互式控制台。磁带注释Tool calls stream: project_Project_Create, task_Task_Create x3对应 run.go 中流式打印工具调用的输出格式→ toolName(args)/← result模型把自然语言拆解为对project与task服务的多次 RPC 调用——先创建项目再连续三次创建任务。控制台在启动时会通过注册中心发现所有服务、把每个端点暴露为模型可调用的工具run.go并在系统提示词中列出可用服务清单。节点四I need to track shipping. Create a shipment for order 123 to London.等待 60s全场高光。磁带注释称这是mid-conversation service generation moment — the money shot对话中途用户需要现有系统没有的能力tracking shipping系统随即生成并启动新的 shipping 服务。这一能力在当前源码中有明确落点micro chat的开发代理暴露了micro_generate_service工具cmd/micro/chat/chat.go其系统提示词明确写道If a capability is missing, use micro_generate_servicechat.go工具处理器handleGeneratechat.go会依次完成设计generate.Design、生成generate.Generate、编译go build -o、启动进程并轮询注册中心等待新服务注册成功最多 5 秒然后提示新服务的工具将在下一条消息时可用Their tools will be available on the next user message。与此同时micro run的守护进程会每 5 秒扫描新出现的main.go目录并自动构建启动discoverNewServicesrun.go 及其调用点 run.go新服务还会被动态加入文件监听集合watcher/watcher.go因此对话中生成的 shipping 服务可以无缝接入正在运行的系统。节点五CtrlC。终止整个 demo磁带结束。磁带头部同时注明了两点录制纪律手动录制、按真实生成耗时调 sleepexpect to tune them (or trim the video) per recording以及在空 scratch 目录录制——因为脚本会真实生成一批服务目录。五、嵌入 README 与官网格式与体积约束录制完成后原文档给出的嵌入方式是在README 顶部Overview 之下与官网首页各放一张micro run --prompt demo引用路径以仓库根目录为起点该 GIF 由录制产生首次使用前需先执行第五节中的录制命令生成。同时原文档给出了两条硬性约束直接影响录制参数的取舍GIF 控制在 ~10MB 以内以保证 GitHub 能内联渲染。这解释了为什么prompt-demo.tape使用 1100×700 画布且录制者需要权衡TypingSpeed与Sleep时长——每一帧、每一秒都在增加体积。first-run.gif是兜底方案如果 prompt demo 体积超标或录制不便比如没有可用的ANTHROPIC_API_KEY就用无密钥的快速上手 GIF 顶上保证 README 始终有一张能渲染的演示图。如果对 GIF 体积不满意可以回到.tape脚本本身做调整缩窄画布Set Width、提高TypingSpeed、压缩Sleep时长再重新录制即可——这正是脚本即产物、改脚本重录模式的价值所在。六、总结一套可持续维护的演示流水线internal/demo/的本质是一套最小可维护的演示流水线由三层构成规格层两盘.tape脚本first-run.tape、prompt-demo.tape是演示内容的唯一权威来源兼具文档价值——任何人读完脚本就知道 CLI 的核心路径长什么样。执行层make demo-gifMakefile封装无密钥录制vhs internal/demo/prompt-demo.tape用于需要密钥的手动录制前者还能作为 CI 对CLI 快速开始路径是否可用的间接验证。展示层产出的 GIF 嵌入 README 顶部与官网首页受 10MB 渲染约束并以first-run.gif作为低成本兜底。而支撑这两盘磁带的内容是 go-micro CLI 真实的实现micro new的 protoless 默认模板与 AI--prompt生成new.go、micro run的服务发现 / loopback 免鉴权网关 / 5 秒新服务扫描run.go、generate包的设计约束与编译-修复循环generate.go以及micro chat的micro_generate_service对话中动态生成能力chat.go。正因如此这些演示永不腐化——它们不是表演而是把真实可用的能力以最直观的方式呈现在 README 与官网首页上。赞分享后端微服务AI AgentRPC框架【免费下载链接】go-microA framework for building agents and services项目地址https://gitcode.com/gh_mirrors/go/go-micro点击查看免费下载相关推荐用 VHS 为 Ruby cli-ui 录制终端演示从 Tape 脚本到 GIF 的完整实战用 VHS 为 Ruby cli ui 录制终端演示从 Tape 脚本到 GIF 的完整实战 本指南以 examples/cli ui/README.md h开发工具VHS 录制终端幻灯片演示用 Tape 脚本编排 slides 翻页动画VHS 录制终端幻灯片演示用 Tape 脚本编排 slides 翻页动画 VHS 的 examples/slides https://link.gitcode开发工具用 VHS 录制 Glow 终端 Markdown 阅读器演示Tape 脚本从入门到进阶实战用 VHS 录制 Glow 终端 Markdown 阅读器演示Tape 脚本从入门到进阶实战 本篇文章以开源仓库中的 examples/glow/README开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?