资讯动态

Vibecoding进阶教程-从能用到可控(三):安全、评测与流水线

发布时间:2026/8/29 16:11:17 来源:尧图企业网站定制
Vibecoding进阶教程-从能用到可控三安全、评测与流水线本篇是Vibecoding 系列教程第二部分进阶篇的第三篇也是第二部分的最后一篇。感谢佬友们一直以来的支持后面我也会继续产出一些 vibecoding 相关的教程和工具推荐。前篇环境搭建 基础闭环[Vibecoding基础教程]https://github.com/1EchA/how-to-vibecoding)上一篇多智能体 长任务治理写在前面到这里我们已经跑通了 MCP 工具链和 Skills 卡片也了解了多智能体分权和长任务治理机制。本篇是系列的收尾解决最后三个问题任务 1安全加固任务 2评测与可观测任务 3团队协作与流水线末尾附录包含一些模板参考和延伸资料。任务 1安全加固——第三方 MCP 不只是普通插件更代表着权限目标建立一套接入前的安全审查习惯。不管是用别人的 MCP server 还是自己开发都要先排查一下隐患。你把第三方 MCP 接到你的开发环境里本质上就是给了一个外部程序跟你一样的系统权限。它能碰到的网络、文件系统基本等于你能碰到的这是很夸张的。1.1 接入前需要考虑的 7 个问题读写边界它到底需要读什么需不需要写权限。权限范围默认权限是不是给太大了能不能把权限缩到最小目录。网络行为它在工作时会访问哪些网络请求会发到哪些域名。敏感距离它离你的环境变量、数据库凭据留有多少距离。审计日志它跑的时候有没有留下可追溯的日志。重试风险超时或报错后的重试会不会产生副作用。供应链作者靠谱吗是长期维护的项目还是可能有后门随时有跑路风险的项目。1.2 给已接入的 MCP 做一次安全审查可以拿出我们之前做好的 MCP 出来也可以拿一个比较常用的 MCP 来进行一次审查。MCP 审查表 Server 名称 1. 读写边界只读/读写 2. 权限范围已限制到子目录/全盘访问 3. 网络行为网络请求流向 4. 敏感距离无法访问 .env/数据库/可访问 5. 审计日志有日志/无 6. 重试风险操作幂等/有副作用风险 7. 供应链官方/知名维护者/个人项目1.3 需要确认的底线最小权限只给特定子目录的访问只开必要的端口。写入限制如果必须能写文件至少限制在src或tmp下避免碰到配置文件。可追溯最起码你得能看到它调了什么、改了哪几行。重试克制别让重试变成死循环。1.4 用 HTTP MCP 时的安全注意事项大部分人用的是本地 STDIO 模式就是在 config 里配command args那种这种模式 MCP 跑在你自己机器上安全风险相对可控。但如果你用的是 HTTP 模式MCP Server 在远程通过网络调用那安全要求就会变高这里说几个推荐大家注意的点认证必须用 OAuth 做身份验证裸跑的 HTTP MCP 等于把开发环境暴露在公网上。TokenAPI Token 只能放在请求的 Header 里Authorization: Bearer xxx不要拼在 URL 后面URL 会被日志和浏览器历史记录泄露。回调OAuth 回调只允许localhost或https://开头的地址防止 Token 被中间人截获。延伸阅读如果你要把 HTTP MCP 或第三方组件接入长期开发流程建议看看这几份安全指南。OWASP: Secure MCP Server Development — https://genai.owasp.org/resource/a-practical-guide-for-secure-mcp-server-development/OWASP: Securely Using Third-Party MCP Servers — https://genai.owasp.org/resource/cheatsheet-a-practical-guide-for-securely-using-third-party-mcp-servers-1-0/OWASP Top 10 for Agentic Applications (2026) — https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/任务 2评测与可观测——不再凭直觉对项目进行迭代这部分主要为了回答一个问题“改了工作流换了模型之后效果到底是真的变好了还是运气呢”没有认真的评测量化日常开发最容易陷入这种情况今天一切顺利“天才程序员诞生了”明天觉得模型降智“天才程序员陨落”其实多半是上下文膨胀了、工具链卡了、或者纯粹运气不好。我们需要一些量化后的证据来看看到底是为什么。2.1 自己做一套回归测试集跑和自己业务项目关系不大的 Benchmark 意义不大有时间的话自己搭一套质检题库是个不错的选择3 个有代表性的 Bugfix3 次 Feature 增量2 次重构2 次补核心链路测试每道题需要写清楚的是输入原始任务描述。预期通过条件。验证验证命令。存成 JSONL方便即拿即用附录 A 有最小 Schema2.2 先用最朴实无华的方式做 Tracing用 JSONL 把每次操作录下来trace_id任务标识操作时间调用的 Tool 名输入摘要注意脱敏去掉 API Key、密码等输出摘要耗时报错信息有了这种记录表才方便在问题出现的时候快速定位问题到底在哪。建议每条日志一定要带trace_id。一旦多个 Agent 并行跑或者长任务反复重试没有 trace_id 的日志直接就乱套了根本分不清上下游。2.3 往标准化靠拢如果打算把这套推给团队用建议字段命名向 OpenTelemetry (OTel) 的 GenAI semconv 标准看齐。哪怕现在没接 OTel 的全套体系也可以先统一命名以后迁移成本就会降低很多。参考OpenTelemetry GenAI Semantic Conventions — https://opentelemetry.io/docs/specs/semconv/gen-ai/2.4 进阶从日志到可视化看板纯看 JSONL 几十次调用确实难受。可以考虑加一层可视化底层还是存 JSONL这是保底的原始日志。上面接一个可视化平台Langfuse / Phoenix / LangSmith……。需要注意的有 4 个关键指标各类任务的通过率单次 Bug 修复的端到端耗时每个环节的Token 消耗失败时卡在哪一环之后就可以比较方便地拉出某次失败任务的完整链路了。改完prompt后也可以用数据来对比前后的通过率和耗时差异。延伸阅读想深入了解评测和追踪的实践Inspect AI (UK AISI) docs — https://inspect.aisi.org.uk/任务 3管理超大仓库与流水线第一次让两个 Agent 同时去修同一个文件的人通常会收获一份完美的合并冲突。本节适用于有 CI/CD 环境、多人协作的团队项目。如果你目前是单人本地开发可以直接跳过。3.1 沙盒Sandbox有一个现实是必须接受的幻觉导致的抽风瞎写发散是不可能完全消除的。所以我们能做的就是考虑怎么降低在幻觉出现时可能造成的负面影响。做法所有试运行、构建、测试都扔到无状态容器或临时沙盒里跑。只有测试全部通过之后才允许把 diff 补丁合回主干。高危操作删包、重建根目录、大规模推改要求 coding agent 申请人工审批。3.2 固定流水线中的关卡这里面举三个例子静态检查lint 类型检查语法级别的低级错误直接拦掉。业务逻辑跑一遍本次改动涉及的单测或集成测试确认功能没被改坏。安全扫描有没有硬编码密钥、有没有引入高危依赖发现了就打断。如果有关卡没过就退回重来。对修复主导权本篇也给出两套参考方案让 CI job 本身带修复能力跑挂了直接读 stderr 开始纠错循环修好了打一个 patch commit。CI 只负责跑测试和报告结果出了问题通过 Webhook 把错误现场发给远端的 Agent 服务Agent 打好补丁后 Push 分支等人来审。3.3 多 Agent 并发时的保护机制如果你有多个 Agent 同时干活需要注意这两个问题同一时刻只允许一个 Builder 有写权限其他角色Scout / Verifier在同一时刻只读。写入前必须同步最新的上游状态避免两个 Agent 各写各的然后互相覆盖。常见的实现方式文件锁在写入和跑测试的入口用flock之类的工具加锁另一个 Agent 过来发现被占了就直接排队或报错。Git 保护每次写入前强制git pull --rebase有冲突就中断当前轮次。如果你用的是 Codex 的 worktree 模式它已经帮你做了隔离每个 Agent 在独立的 worktree 里工作基本不会冲突。这节主要是给自己搭框架的团队看的。延伸阅读Codex Security沙箱 / 审批 / 网络策略— https://developers.openai.com/codex/securityDagger Docs容器化可复现流水线— https://docs.dagger.io/The Harness Problem — https://blog.can.ac/2026/02/12/the-harness-problem/附录 A模版案例参考A.1 项目规则模板放在根目录的 AGENTS.md## How to run - Install - Test - Build ## Collaboration rules协同规矩 - 动手前先给我 3-7 步计划标注每一步怎么验证。 - 改完必须贴 diff不要只给总结。 - 收工前自觉跑 lint、test、build。跑不了的说明原因。 - 任何情况都不许泄露 secrets.env、key、token、credentials。 - 最小化改动不要为了美观重构大片代码。 ## Stop conditions什么时候必须停手 - 要引入新依赖或做大版本升级。 - 改动超过 5 个文件。 - 连续 2 次排错失败找不到原因。A.2 需求描述模板## Context背景 说明仓库定位 / 相关模块 / 限制条件 ## Goal目标 一句话说清你想要什么效果 ## Acceptance criteria验收标准 - 使用什么命令可以校验结果 ## Constraints约束 - 不泄露 secrets - 最小化改动 ## Delivery必须交付 1) 计划 2) 代码改动 3) 关键 diff 4) 验证通过的输出A.3 MCP Server 开发 checklistSTDIO 模式绝不往 stdout 写日志调试信息走 stderr。先在本地跑通再对接远端或外部 API。每个 tool 都要定义清楚入参类型schema、返回结构、错误处理、超时限制。明确读写范围它能触及的目录有哪些是否有被限制在子目录中。写操作尽量做到多次调用不产生副作用。A.4 HTTP MCP 的授权 checklist通讯走 HTTPSredirect URI 严格校验Token 走 Authorization header不放 query string配置 PKCE按标准走 metadata discovery.well-known/oauth-authorization-serverA.5 多智能体角色模板见前一篇Vibecoding进阶教程-从能用到可控二拒绝coding agent既当裁判又当运动员A.6 评测回归库的 JSONL 模板记录好输入和验收标准每次升级后全部重跑。{id:bugfix-001,title:修复计算模块的单测崩溃,input:...,acceptance:[npm test 全部通过],verify:[npm test],tags:[bugfix,tests]}A.7 Tracing 的 JSONL 模板每条带时间戳、耗时和trace_id事后排查不用瞎猜。{trace_id:bugfix-123-run-1,ts:2026-03-03T10:00:00Z,tool:bash,input_summary:npm test,output_summary:passed,duration_ms:12345,error:null}附录 B延伸阅读与官方参考资料MCP 协议与 Server 开发MCP Introduction — https://modelcontextprotocol.io/introductionMCP Quickstart: Build a server — https://modelcontextprotocol.io/quickstart/serverMCP Specification — https://modelcontextprotocol.io/specification/modelcontextprotocol/typescript-sdk README — https://raw.githubusercontent.com/modelcontextprotocol/typescript-sdk/main/README.mdmodelcontextprotocol/python-sdk README — https://raw.githubusercontent.com/modelcontextprotocol/python-sdk/main/README.mdMCP 生态与官方参考modelcontextprotocol/registry README — https://raw.githubusercontent.com/modelcontextprotocol/registry/main/README.mdmodelcontextprotocol/servers README — https://raw.githubusercontent.com/modelcontextprotocol/servers/main/README.mdMCP Apps (interactive UI) — https://blog.modelcontextprotocol.io/posts/2026-01-26-mcp-apps/modelcontextprotocol/ext-apps README — https://raw.githubusercontent.com/modelcontextprotocol/ext-apps/main/README.mdIntroducing the Model Context Protocol (Anthropic) — https://www.anthropic.com/news/model-context-protocolDonating MCP and establishing the Agentic AI Foundation (Anthropic) — https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundationHTTP MCP 的 OAuth 授权看情况选读MCP Authorization (OAuth 2.1) — https://modelcontextprotocol.io/specification/basic/authorizationMCP 生产环境安全指南OWASP: Secure MCP Server Development — https://genai.owasp.org/resource/a-practical-guide-for-secure-mcp-server-development/OWASP: Securely Using Third-Party MCP Servers — https://genai.owasp.org/resource/cheatsheet-a-practical-guide-for-securely-using-third-party-mcp-servers-1-0/OWASP Top 10 for Agentic Applications (2026) — https://genai.owasp.org/resource/owasp-top-10-for-agentic-applications-for-2026/Teleport RFD 0209: MCP access — https://raw.githubusercontent.com/gravitational/teleport/master/rfd/0209-mcp-access.mdSkills 与规则标准anthropics/skills README — https://raw.githubusercontent.com/anthropics/skills/main/README.mdagentskills/agentskills README — https://raw.githubusercontent.com/agentskills/agentskills/main/README.mdAgent Skills Standard (agentskills.io) — https://agentskills.io/agents.md (AGENTS.md spec) — https://raw.githubusercontent.com/agentsmd/agents.md/main/README.mdupstash/context7 README — https://raw.githubusercontent.com/upstash/context7/master/README.md多智能体协作Claude 的高级工具调用Anthropic 工程文章— https://www.anthropic.com/engineering/advanced-tool-useBuilding effective agents — https://www.anthropic.com/research/building-effective-agentsHow we built our multi-agent research system — https://www.anthropic.com/engineering/multi-agent-research-systemopenai/swarm README — https://raw.githubusercontent.com/openai/swarm/main/README.mdOpenAI Agents SDK (Python) docs — https://openai.github.io/openai-agents-python/Effective context engineering for AI agents — https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agentsMeasuring AI agent autonomy in practice — https://www.anthropic.com/research/measuring-agent-autonomy长任务管理oh-my-opencode README — https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/dev/README.mdoh-my-claudecode README — https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claudecode/main/README.mdThe Harness Problem — https://blog.can.ac/2026/02/12/the-harness-problem/评测与可观测Inspect AI (UK AISI) docs — https://inspect.aisi.org.uk/OpenTelemetry GenAI Semantic Conventions — https://raw.githubusercontent.com/open-telemetry/semantic-conventions/main/docs/gen-ai/README.mdOpenTelemetry GenAI Agent Spans — https://raw.githubusercontent.com/open-telemetry/semantic-conventions/main/docs/gen-ai/gen-ai-agent-spans.mdSWE-bench benchmark repo — https://raw.githubusercontent.com/swe-bench/SWE-bench/main/README.mdSWE-bench-Live benchmark repo — https://raw.githubusercontent.com/microsoft/SWE-bench-Live/main/README.md跨平台协议与前沿实践A2A Protocol Specification — https://github.com/a2aproject/A2A/raw/main/docs/specification.mdopenclaw/openclaw README — https://raw.githubusercontent.com/openclaw/openclaw/main/README.md

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价