人工智能AI AgentAgent 沙箱云原生容器运行时零信任【免费下载链接】substrateAgent Substrate: the core system项目地址https://gitcode.com/GitHub_Trending/substrate7/substrate点击查看免费下载Agent Substrate 是一个处于早期高速迭代阶段的 agent 执行运行时其贡献流程强调小而聚焦、先讨论后开工、一切变更必须有测试。本文以仓库根目录的 CONTRIBUTING.md 为主体逐节拆解签署 CLA、搭建本地开发环境、PR 规模分级、root-gated 特权测试机制、PostgreSQL schema 演进规则与版权头规范并结合internal/roottest、hack/run-root-tests.sh、hack/verify/postgresql-migrations.sh等源码与脚本说明每一条规则背后的工程动机与可运行的验证命令帮助你在提交第一个补丁前把流程一次走对。贡献前必读CLA、社区准则与开发环境签署 Contributor License AgreementCLA向 Agent Substrate 提交任何补丁前必须先签署 Contributor License AgreementCLA。协议的核心是你或你的雇主保留贡献代码的版权同时授权项目使用与再分发这些贡献。如果你或当前雇主此前已签署过 Google CLA哪怕是为其他项目通常无需重复签署可以通过 https://cla.developers.google.com/ 查看现有协议状态或签署新协议。遵循 Google 开源社区准则项目遵循 Googles Open Source Community Guidelines所有互动包括代码评审、Issue 讨论、社区会议均以此为准。搭建本地开发环境默认gVisor运行时按 README.md 的 QuickstartDevelopment搭建本地集群即可。核心步骤为安装 Go、kubectl、dockerkind等其余依赖由 Go 自动管理随后依次执行# 创建 kind 集群与本地 registryIPv4可用 IP_FAMILYdual|ipv6 覆盖 hack/create-kind-cluster.sh # 安装 ate 系统、PostgreSQL、rustfs hack/install-ate-kind.sh --deploy-ate-system # 安装 counter 演示 hack/install-ate-kind.sh --deploy-demo-counter # 安装 kubectl-ate CLI go install ./cmd/kubectl-ate # 在 demo 的 atespace 中基于 counter 模板创建 actor kubectl ate create actor my-counter-1 -a ate-demo-counter --template counter # 将网络路由器端口转发到本地 8000 端口 kubectl port-forward -n ate-system svc/atenet-router 8000:80在另一个终端用curl -X POST -H ate-target-actor: ate-demo-counter/my-counter-1 -i http://localhost:8000/即可验证 actor 的请求路由链路。microVM 运行时microVM 沙箱ateom-microvm即运行在 Cloud Hypervisor 上的 Kata guest需要/dev/kvm。Linux 主机直接验证 KVM 可用性后运行./hack/create-kind-cluster.shApple SiliconM3 及以上可通过 Lima 的嵌套虚拟化暴露/dev/kvm。完整的分步指引见 docs/dev/microvm-local.md其中包含/dev/kvm: permission deniedrootless Docker、M1/M2 上Starting VZ ... FATA exitingApple Virtualization framework 仅 M3 支持嵌套虚拟化等常见问题的排查表。贡献流程先讨论再动手保持小而聚焦该文档明确说明这是一个非常年轻的项目团队仍在打磨设计与架构迭代极快。这对贡献者有三点直接影响变更可能频繁需要 rebase项目演进快PR 需要随时跟上主干。聚焦于单一 Issue 或功能的小 PR 比横跨多个模块的大 PR 更容易评审与更新。开工前先讨论项目当前只关注让系统可用所需的最小能力集。开始贡献前先在相关 Issue 下留言若没有则新建一个确保你的工作与项目近期目标一致避免与在途工作重复。不对齐目标的 PR 可能被直接关闭这不代表不欢迎新人而是为了保证精力集中在最重要的工作上。如果你的目标是在 Substrate之上构建东西而不是修改 Substrate 本身请先阅读 docs/integration-repos.md 确定代码归属微不足道的 demo如 counter demo、CI 使用的无密钥生命周期 mock留在核心仓库非平凡的端到端集成各自拥有agent-substrate组织下的独立仓库核心缺口一律先在 core 落地再让集成依赖已发布的版本严禁下游 fork 打补丁。PR 规模分级S/M/L/XL 与拆解策略项目为评审体验优化 PR大 PR 会被拆解小 PR 会被合入。具体策略大 PR把巨大的改动拆成一系列逻辑上各自独立的 PR。当中间步骤单独看没有价值时保留为一个 PR但在逻辑断点处分多个 commit并在合并时保留这些 commit。小 PR 与批量 PR发现 typo 时通读整个文件一次性修完而不是只提交单处修改把相关的 typo、文档与单行清理修复合并进一个 PR避免为同一区域开多个碎片化 PR。维护者可能要求你合并碎片化 PR或直接关闭它们。规模参考刻度规模变更行数S 30 行M 100 行L 500 行XL 1000 行大多数 PR 应为 L 或更小XL 及以上是拆分的候选对象。Code Reviews所有提交都要评审且必须有测试所有提交包括项目成员自己的提交都通过 GitHub Pull Request 评审。两条硬性要求所有代码变更必须附带测试。没有测试的代码不会被合并导致测试失败的代码也不会被合并。每次应用 schema 变更都必须遵循 docs/dev/postgresql-schema-evolution.md 中的 PostgreSQL schema 演进规则详见下文。从仓库结构看这一要求贯穿全部核心组件——cmd/下的每个命令如 cmd/ateapi、cmd/atelet、cmd/atecontroller、cmd/atenet以及internal/下几乎所有包都成对提供了*_test.go文件测试与实现同目录同包是项目默认约定。Root-gated 测试需要 root 的特权测试如何编写与运行部分测试需要 root 权限overlay 挂载、mknod、trusted.*xattr 等。这类测试通过 internal/roottest 的roottest.Require(t, ...)作为第一条语句来门控func TestRequire(t *testing.T) { reached : false t.Run(gate, func(t *testing.T) { Require(t, gate probe) reached true }) if want : os.Geteuid() 0; reached ! want { t.Errorf(gated code ran %v, want %v (euid %d), reached, want, os.Geteuid()) } }roottest.Require的实现internal/roottest/roottest.go非常简洁func Require(tb testing.TB, reason string) { tb.Helper() if os.Geteuid() ! 0 { tb.Skipf(needs root: %s (run hack/run-root-tests.sh to execute under sudo), reason) } }工作机制与 CI 配合方式普通go test ./...下这类测试因非 root 而skipCI 会重新以sudo运行所有导入了该包的测试包新增特权测试只需要加一行roottest.Require调用无需任何 CI 改动。本机运行特权测试的命令hack/run-root-tests.shrun-root-tests.shhack/run-root-tests.sh的实现揭示了几个关键细节它用go list -f {{range .TestImports}}...{{end}}{{range .XTestImports}}...{{end}}同时在包内测试TestImports与外部测试包XTestImports中查找 marker 导入路径github.com/agent-substrate/substrate/internal/roottest自动发现所有 root-gated 包——这就是新增特权测试无需 CI 改动的原理使用-count1强制禁用 Go 测试缓存测试缓存不按 euid 做 key否则 root 重跑会回放非特权运行的 skip 结果已是 root 时直接go test -count1否则通过sudo -E env PATH${PATH}保留调用者的 Go 工具链与模块缓存。PostgreSQL schema 演进滚动更新下保证前一个二进制安全ateapi在就绪前应用 PostgreSQL 迁移滚动更新期间前一个二进制继续服务请求新二进制修改 schema。由于 goose 一次提交一个迁移失败的迁移运行可能留下任意已完成的前缀因此规则的核心目标是保证前一个二进制在任意迁移前缀下都安全。兼容性契约与变更规则保持每个迁移前缀与前一个二进制的读写兼容把每个迁移文件边界视为持久化的数据库状态不得依赖后续迁移来修复更早前缀的兼容性新二进制从前一版本迁移 schema并在所有待定迁移完成前不进入就绪状态SELECT与INSERT必须使用显式列清单优先加法变更先加表、列、索引再让新二进制使用新列必须是 nullable 或带兼容的数据库默认值不得删除/重命名前一个二进制仍在使用的表或列不得以不兼容方式改变其类型或语义不得在前一个二进制仍可写入违规值时收紧约束不得移除前一个二进制依赖的默认值两个 schema 结构同时可写时需保持一致性新二进制依赖新结构前先回填存量数据启动期间不得执行大规模数据回填应单独提出迁移流程。保持 actors 表可分区为保留按atespace或actors表按name分区的可能性任何 schema 变更或查询都不得引入省略atespace的唯一索引/约束actors表则不得省略name、按省略atespace的列引用的外键、以及不按atespace过滤的查询actors查询还必须过滤name。跨分区读取如全局列表必须列入TestActorsTablePartitionable否则需要社区同意的豁免。Expand and contract 三步走替换或移除 schema 时使用扩展与收缩序列在 release N 增加新结构、保留旧结构在 release N1 停止使用旧结构在 release N2 移除旧结构。这保证滚动更新乃至临时二进制回滚期间前一个二进制始终兼容注意二进制回滚不会回滚 schema。迁移文件规则与提交前检查清单迁移文件存放于cmd/ateapi/internal/store/atepg/migrations规则包括使用下一个顺序编号NNNNNN_name.sql文件名、恰好一个-- goose Up注解、仅 SQL 迁移、不添加 down 迁移、不使用NO TRANSACTION/ENVSUB、不写事务控制语句、schema 变更不使用IF NOT EXISTS、保持每个启动迁移简短。首个稳定 v1 发布前可以修改或 squash 迁移文件改后重建开发数据库v1 发布后不得修改或删除已发布迁移文件只能新增迁移来修正不得手动编辑schema_migrations账本。提交前清单识别使用被变更对象的前一二进制读写 → 对照每个新迁移前缀检查这些操作 → 某个前缀会破坏操作时使用 expand and contract → 为 schema 行为新增或更新测试 → 运行迁移验证器与 PostgreSQL store 测试hack/verify/postgresql-migrations.sh go test ./cmd/ateapi/internal/store/atepg验证脚本 hack/verify/postgresql-migrations.sh 会逐条强制检查上述文件规则文件名格式^([0-9]{6})_[a-z0-9_]\.sql$、版本号必须严格递增且连续、必须包含-- goose Up、不得包含-- goose Down、NO TRANSACTION、ENVSUB、IF NOT EXISTS及BEGIN/COMMIT/ROLLBACK等事务控制语句在存在形如v1.x.y的已发布 tag 时还会用git diff --diff-filterMD校验已发布迁移文件未被修改或删除。Copyright Headers每个源文件必须携带版权与许可证信息每个包含源代码的文件都必须包含版权与许可证信息包括你可能提供给浏览器的 JS/CSS 文件目的是帮助善意的贡献者避免无意中做出不符合许可证的复制行为。各文件类型的标准头部模板位于 ./hack/boilerplate例如 Go 文件使用// Copyright 2026 Google LLC加 Apache-2.0 许可说明见 hack/boilerplate/go.txtShell 脚本使用#注释版本见 hack/boilerplate/sh.txt。仓库还提供了自动化校验入口 hack/verify/boilerplate.sh它调用 hack/util/verify-boilerplate.py 检查全仓库文件的版权头合规性——本地提交前可运行它做自检。完整验证体系还包括 hack/verify/ 下的 codegen、gofmt、golangci-lint、licenses、metrics、threats 等检查脚本可在hack/verify-all.sh中一次性触发。总结Agent Substrate 的贡献流程可以用三条主线概括先对齐再动手CLA、社区准则、Issue 先讨论、目标对齐、小步快跑PR 规模分级、单 Issue 聚焦、批量小修、变更必须可验证测试伴随代码、root-gated 测试机制、PostgreSQL schema 演进规则、版权头校验。理解roottest.Require与hack/run-root-tests.sh的自动发现机制、掌握 expand and contract 的 schema 演进节奏是绕开评审返工、让补丁顺利合入的关键。赞分享人工智能AI AgentAgent 沙箱云原生容器运行时零信任【免费下载链接】substrateAgent Substrate: the core system项目地址https://gitcode.com/GitHub_Trending/substrate7/substrate点击查看免费下载相关推荐osv-scanner 贡献指南从 CLA 签署、PR 流程到测试、构建与文档贡献的完整实践osv scanner 贡献指南从 CLA 签署、PR 流程到测试、构建与文档贡献的完整实践 本指南以 osv scanner 仓库根目录下的 CONTRIB漏洞扫描供应链安全应用安全CLIMCP 服务Python Fire 贡献指南从 CLA 签署到代码评审、测试与 Lint 的完整参与流程Python Fire 贡献指南从 CLA 签署到代码评审、测试与 Lint 的完整参与流程 Python Fire 是一个能从任意 Python 对象自动生开发工具CLIChocolateychoco开源贡献指南从 CLA 签署到 Pull Request 合并的完整流程Chocolateychoco开源贡献指南从 CLA 签署到 Pull Request 合并的完整流程 Chocolatey 是 Windows 平台的包包管理器CLI开发工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
DeepSeek-v2-7b企业知识库落地实战:从数据清洗到部署避坑 简介:本资源是一份面向企业AI工程师与知识系统架构师的实战指南,聚焦DeepSeek大模型在跨行业知识库建设中的落地路径与微调方法论,解决传统知识管理系统语义理解弱、数据孤岛难打通、个性化服务缺失等共性难题。文档共24页PDF,结构… · 2026/9/23 17:43:34
海淀区工商局面试避坑:3大源码解析细节定成败 海淀区工商局面试避坑:3大源码解析细节定成败 官方文档太长抓不住重点?这是大多数准备海淀区工商局相关技术岗位面试的候选人最大的痛点。你不需要背诵整本规范,但必须看透核心逻辑。很多新人死记硬背流程,却忽略了底层数据流转的 源码解析… · 2026/9/23 17:43:34
LSTM时间序列预测实战:数据预处理与模型调参避坑指南 简介:这是一套面向时间序列预测场景的 LSTM 完整项目包,适合计算机、人工智能、自动化等专业学生用于课程设计、毕业设计或入门实践。项目以 PM2.5 污染数据为例,覆盖数据预处理、序列可视化、模型构建与预测分析全流程,代码结构清… · 2026/9/23 17:43:22
Rockchip YTPHY校准包解析:DDR PHY参数集成与U-Boot部署指南 简介:本资源是面向嵌入式Linux驱动开发工程师与RK3568平台硬件适配人员的YT8521S千兆PHY芯片驱动补丁包,解决该型号PHY在Rockchip RK3568平台(内核4.4/4.19)上缺失原生支持、无法完成链路建立与环回测试等关键问题。压缩包共11个文… · 2026/9/23 18:15:43
天正cad官网选型避坑指南:5个致命坑点详解 天正cad官网选型避坑指南:5个致命坑点详解 面试被问原理答不上来,简历写了三年经验却连天正cad官网的版本差异都说不清?这行干了十年,见过太多人栽在工具选型的坑里。今天这篇避坑指南,专治各种“看似会用实则瞎用”的疑难杂症。… · 2026/9/23 18:15:37
生肖排位速查手册:10分钟搞定算法与实现 生肖排位速查手册:10分钟搞定算法与实现 别翻那几页纸的官方文档了,真没人有耐心从头读到尾。想要搞懂生肖排位,直接看这份 速查手册… · 2026/9/23 18:15:31
上海专升本师资怎么判断?为什么“公办在职教授授课”是关键 一句话结论:看一家上海专升本机构的实力,先看老师是谁。上海临港产业大学(指尖专升本)作为校企服务部的学历提升品牌,与多所公办本科院校官方合作,授课老师几乎都是公办院校在职教授——这直接决定了考纲把… · 2026/9/23 18:15:31
电动汽车制动系统设计:从法规到再生制动与踏板感的关键技术解析 简介:PDF文献《电动汽车制动系统的设计》面向新能源汽车、汽车工程相关专业的学生与技术人员,聚焦电动汽车行驶安全中的制动问题,以真空助力器为核心,完整介绍制动系统的分析、计算与设计流程。资源为单份PDF文档,共1个… · 2026/9/23 18:15:25
老3DS复活指南:Luma3DS与TWiLight Menu++修复实战 1. 一台老3DS的复活逻辑:我为什么要写这份修复笔记手里这台老3DS是朋友搬家时翻出来的,外壳发黄、转轴松动、下屏有一道浅浅的划痕,开机之后上屏闪一下就黑,插着充电器能亮,拔掉就关机。他本来打算当电子垃圾处理掉&am… · 2026/9/23 18:15:18
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29