.env.example` 标准模板**(复制即可用,字段占位,不生效) `dna_validate.py` 启动校验器**(读环境变量或 `.env`,缺键或违规立即退出)
我们按照“不给 AI 自由发挥只给工程确定性”的原则为您提供一套可直接落地的Python 版 DNA 治理脚本。包含.env.example标准模板复制即可用字段占位不生效dna_validate.py启动校验器读环境变量或.env缺键或违规立即退出所有逻辑与您给出的 Node.js 示例保持一致并做了 Python 工程化增强。1..env.example模板可直接对外分发请将以下内容保存为项目根目录的.env.example文件作为“结构契约”发布。######################################## # SYSTEM DNA — ENV EXAMPLE # This file defines REQUIRED keys only # Values here are placeholders ######################################## # META DNA_VERSION__REQUIRED__ DNA_STATUSACTIVE DNA_SCOPEGLOBAL DNA_MACHINE_READABLEtrue DNA_LAST_REVIEWYYYY-MM-DD # CORE PRINCIPLES DNA_NO_DISCRIMINATIONtrue DNA_NO_FABRICATIONtrue DNA_NO_FLATTERYtrue DNA_GRACEFUL_REFUSALtrue # NON-NEGOTIABLE RULES DNA_ALLOW_HUMAN_DECISION_REPLACEMENTfalse DNA_ALLOW_LEGAL_CONCLUSIONfalse DNA_ALLOW_MEDICAL_DIAGNOSISfalse DNA_ALLOW_MEDICAL_TREATMENTfalse DNA_ALLOW_FINANCIAL_ADVICEfalse DNA_ALLOW_FINANCIAL_PREDICTIONfalse # HIGH RISK DOMAINS DNA_DOMAIN_LEGALRESTRICTED DNA_DOMAIN_MEDICALRESTRICTED DNA_DOMAIN_FINANCIALRESTRICTED DNA_DOMAIN_PRIVACYSTRICT DNA_DOMAIN_ETHICSSTRICT # REFUSAL POLICY DNA_REFUSE_ON_INSUFFICIENT_PERMISSIONtrue DNA_REFUSE_ON_HIGH_RISKtrue DNA_REFUSE_ON_INCOMPLETE_INFOtrue DNA_REFUSE_ON_OUT_OF_SCOPEtrue DNA_REFUSAL_TONECALM DNA_REFUSAL_EXPLANATION_REQUIREDtrue DNA_REFUSAL_ALTERNATIVE_ALLOWEDtrue # PRIVACY DATA DNA_DATA_COLLECTIONMINIMAL DNA_LONG_TERM_STORAGEfalse DNA_USER_PROFILINGfalse DNA_CROSS_SESSION_TRACKINGfalse DNA_BLOCK_SENSITIVE_DATAtrue # AUTOMATION DNA_ON_RULE_VIOLATIONDOWNGRADE_OR_REFUSE DNA_ON_UNCERTAINTYDOWNGRADE DNA_LOG_MODERULE_ONLY DNA_LOG_CONTENTfalse # UPDATE DNA_UPDATE_MODEPULL_ONLY DNA_SIGNATURE_REQUIREDtrue # AUDIT DNA_AUDIT_ENABLEDtrue DNA_AUDIT_CONTENT_LOGfalse ######################################## # END OF EXAMPLE ########################################2. DNA 校验脚本dna_validate.py脚本会自动加载.env文件如果存在不会加载.env.example校验所有必需键是否存在强制DNA_ALLOW_LEGAL_CONCLUSION和DNA_ALLOW_MEDICAL_DIAGNOSIS不能为true不区分大小写失败时打印错误并exit(1)成功则打印✅ System DNA validation passed.#!/usr/bin/env python3# -*- coding: utf-8 -*- dna_validate.py DNA 启动校验器用于确保所有必需的环境变量均已定义且值合法。 使用方式 1. 将 .env.example 复制为 .env 并填入真实值发布侧填写对外不暴露 2. 在应用启动前执行本脚本 python dna_validate.py 3. 如果校验通过则继续启动否则阻止启动。 也可以作为模块导入并调用 validate_dna()失败时抛出异常。 importosimportsysfrompathlibimportPath# ---------- 必需键列表从 .env.example 中提取 ----------REQUIRED_KEYS[DNA_VERSION,DNA_STATUS,DNA_SCOPE,DNA_MACHINE_READABLE,DNA_LAST_REVIEW,DNA_NO_DISCRIMINATION,DNA_NO_FABRICATION,DNA_NO_FLATTERY,DNA_GRACEFUL_REFUSAL,DNA_ALLOW_HUMAN_DECISION_REPLACEMENT,DNA_ALLOW_LEGAL_CONCLUSION,DNA_ALLOW_MEDICAL_DIAGNOSIS,DNA_ALLOW_MEDICAL_TREATMENT,DNA_ALLOW_FINANCIAL_ADVICE,DNA_ALLOW_FINANCIAL_PREDICTION,DNA_DOMAIN_LEGAL,DNA_DOMAIN_MEDICAL,DNA_DOMAIN_FINANCIAL,DNA_DOMAIN_PRIVACY,DNA_DOMAIN_ETHICS,DNA_REFUSE_ON_INSUFFICIENT_PERMISSION,DNA_REFUSE_ON_HIGH_RISK,DNA_REFUSE_ON_INCOMPLETE_INFO,DNA_REFUSE_ON_OUT_OF_SCOPE,DNA_REFUSAL_TONE,DNA_REFUSAL_EXPLANATION_REQUIRED,DNA_REFUSAL_ALTERNATIVE_ALLOWED,DNA_DATA_COLLECTION,DNA_LONG_TERM_STORAGE,DNA_USER_PROFILING,DNA_CROSS_SESSION_TRACKING,DNA_BLOCK_SENSITIVE_DATA,DNA_ON_RULE_VIOLATION,DNA_ON_UNCERTAINTY,DNA_LOG_MODE,DNA_LOG_CONTENT,DNA_UPDATE_MODE,DNA_SIGNATURE_REQUIRED,DNA_AUDIT_ENABLED,DNA_AUDIT_CONTENT_LOG,]# ---------- 强制为 false 的键不区分大小写 ----------FORBIDDEN_TRUE_KEYS[DNA_ALLOW_LEGAL_CONCLUSION,DNA_ALLOW_MEDICAL_DIAGNOSIS,]defload_dotenv_file(env_path:PathNone): 手动解析 .env 文件并注入 os.environ。 若未指定路径则在当前工作目录查找 .env 文件。 若文件不存在静默跳过。 ifenv_pathisNone:env_pathPath.cwd()/.envifnotenv_path.exists():returnwithopen(env_path,r,encodingutf-8)asf:forlineinf:lineline.strip()ifnotlineorline.startswith(#):continueifinline:key,valline.split(,1)keykey.strip()valval.strip().strip().strip()ifkey:os.environ[key]valdefvalidate_dna(env_source:stros.environ)-bool: 执行 DNA 校验。 返回 True 表示通过False 表示失败。 也可直接在主程序中调用失败时 sys.exit(1)。 failedFalse# 1. 检查所有必需键forkeyinREQUIRED_KEYS:ifos.getenv(key)isNone:print(f[DNA ERROR] Missing required key:{key})failedTrue# 2. 检查特定键不能为 true不区分大小写forkeyinFORBIDDEN_TRUE_KEYS:valueos.getenv(key)ifvalueisnotNoneandvalue.lower()true:print(f[DNA ERROR]{key}must be false (got {value}))failedTruereturnnotfaileddefmain():# 自动加载 .env如果有load_dotenv_file()ifvalidate_dna():print(✅ System DNA validation passed.)sys.exit(0)else:print(❌ System DNA validation failed. Abort startup.)sys.exit(1)if__name____main__:main()3. 使用方式工程集成3.1 本地开发 / CI 使用复制模板可对外分发cp.env.example .env填入真实值仅发布侧填写不提交到版本库确保所有__REQUIRED__被替换且DNA_ALLOW_LEGAL_CONCLUSION和DNA_ALLOW_MEDICAL_DIAGNOSIS为false推荐小写。启动前校验python dna_validate.pypython your_app.py或直接放在应用入口的最顶部importdna_validate dna_validate.validate_dna()# 失败则抛出 RuntimeError3.2 容器 / 云原生环境将.env内容通过 Kubernetes Secret 或环境变量注入。在Dockerfile的ENTRYPOINT或CMD前运行校验。COPY dna_validate.py . RUN chmod x dna_validate.py ENTRYPOINT [python, dna_validate.py] CMD [python, app.py]3.3 作为 Python 模块导入更细粒度控制fromdna_validateimportload_dotenv_file,validate_dna load_dotenv_file()# 手动加载 .envifnotvalidate_dna():raiseSystemExit(1)# 或自行处理4. 为什么这是“不给 AI 自由发挥”的工程确定性设计点效果所有必需键硬编码进脚本缺一个字段启动直接失败无法绕过强制某些键必须为false从根源杜绝法律/医疗结论等高风险行为不依赖外部库除标准库随处可用无第三方风险.env.example作为“结构契约”对外发布所有实例、CI、AI 都对齐同一套配置结构失败即退出非 0 退出码上层编排systemd/k8s可捕获并触发告警或自愈5. 后续扩展Phase 2预览暂不实现dna.snapshot.local/—— 本地违规快照dna.diff.log—— DNA 版本差异日志dna.rollback.flag—— 一键回退开关这些可在当前骨架基础上轻松叠加不影响核心校验逻辑。6. 验证示例正确与错误✅ 正确.env部分示例DNA_VERSION1.0.0 DNA_ALLOW_LEGAL_CONCLUSIONfalse DNA_ALLOW_MEDICAL_DIAGNOSISfalse ...运行✅ System DNA validation passed.❌ 错误.env# 缺少 DNA_VERSION DNA_ALLOW_LEGAL_CONCLUSIONtrue运行[DNA ERROR] Missing required key: DNA_VERSION [DNA ERROR] DNA_ALLOW_LEGAL_CONCLUSION must be false (got true) ❌ System DNA validation failed. Abort startup.您只需将上述两个文件放入项目即可立即获得“启动即防线”的能力。所有逻辑均用纯 Python 实现无外部依赖维护成本极低。