Nexent 工程规范全解:面向 AI Agent 的仓库地图、编码约束与开发验证流程
AI AgentAI 应用后端前端大模型RAG【免费下载链接】nexentNexent is a zero-code platform for auto-generating production-grade AI agents using Harness Engineering principles — unified tools, skills, memory, and orchestration with built-in constraints, feedback loops, and control planes.项目地址https://gitcode.com/gh_mirrors/ne/nexent点击查看免费下载本文基于 Nexent 开源仓库根目录下的 AGENTS.md 编写。它定义了 AI 编码 Agent 与人类开发者共享的工程契约仓库各目录的职责边界、五类代码/测试/交付技能skill的加载规则、后端与 SDK 的配置集中管理约束、SQL 迁移不可变规则以及从环境搭建到测试验证、再到 Docker 兼容性的一整套开发闭环。读完本文你将清楚在 Nexent 中改后端、改前端、维护测试、走需求交付流程时分别该读哪些规范文档、执行哪些命令并能理解每条约束背后对应的真实源码实现。一、仓库地图先定位再动手AGENTS.md的第一节用一张地图划定了 Nexent 各模块的职责边界这也是 Agent 在接到任务后决定加载哪份技能的依据目录职责backend/FastAPI HTTP API后端服务、数据库访问、业务编排sdk/nexent/Agent 框架SDK供上层调用与独立使用frontend/Next.js UI页面、组件、hooks、API 服务、类型与本地化deploy/、deploy/docker/、deploy/k8s/部署资源SQL 迁移、Docker Compose、Helm 等test/backend/、test/sdk/Python 测试Legacy UT 套件从源码结构看前后端与测试的分离是清晰的后端依赖声明在 backend/pyproject.tomlPython3.11,3.12含 FastAPI、SQLAlchemy、Supabase、Redis 等SDK 依赖声明在 sdk/pyproject.toml含 smolagents、openai、elasticsearch 等。而test/目录下除了backend、sdk还有ext_components、automation、cases、changes、manifests等子目录——后者属于另一套需求驱动的 D1-D5 正式测试资产与 Legacy UT 严格分离详见下文第五节。二、共享约束四条不可逾越的红线AGENTS.md用一整节规定了所有代码改动都适用的约束是仓库里最重要的工程共识。2.1 注释与文案的语言策略代码注释、docstring、TODO 与配置注释一律使用英文面向用户的字符串可以使用项目支持的语言这不限制对话语言本身。这保证了代码库的可读性与国际化 UI 的解耦前端本地化资源frontend/public/locales/、frontend/app/[locale]/只承载用户可见文案。2.2 环境变量读取的集中管理最具操作性的约束规则原文后端/SDK 的 Python 代码中环境变量读取必须集中在 backend/consts/const.py后端调用方从consts.const导入SDK 代码只接受参数不得读取环境变量也不得引入from_env()方法。这条约束的落地可以从两个层面验证后端侧backend/consts/const.py是整个后端唯一的os.getenv集中点。文件开头通过load_dotenv(overrideFalse)加载环境变量并明确注释显式注入的部署变量优先于开发者的.env文件避免覆盖运维提供的服务地址。随后以模块级常量形式导出各类配置例如向量库与数据服务ES_HOST、ES_API_KEY、RUNTIME_SERVICE_URL默认http://localhost:5014上传限制MAX_FILE_SIZE 100MB、MAX_KNOWLEDGE_FILE_SIZE_MB可通过同名环境变量覆盖默认 100、MAX_CONCURRENT_UPLOADS 5Agent 自动化运行参数AGENT_AUTOMATION_ENABLED默认开启、轮询间隔、最大并发运行数默认 2、租约时长120 秒、默认超时1800 秒应用版本APP_VERSION通过_resolve_app_version()按APP_VERSION_FILE环境变量 → 容器路径/opt/nexent/VERSION→ 仓库根目录VERSION→ 内置默认值的顺序解析仓库根目录的 VERSION 当前为v2.7.0。配套的 nexent-backend 配置参考 进一步规定新增变量要同步更新deploy/env/.env.example或对应组件的示例文件改完要检查受影响路径内是否存在游离在const.py之外的os.getenv()。SDK 侧SDK 设计为被注入而非自取——配置通过构造器/函数参数传入。虽然当前sdk/nexent下仍能找到个别os.environ读取点主要位于工具类与容器客户端中这属于需要逐步收敛的历史残留规范的意图仍是SDK 保持纯净、可测试、可嵌入不同宿主。2.3 SQL 迁移文件不可变规则原文deploy/sql/下已合并进目标分支的每一个 SQL 文件都不可变包括初始化与 Supabase SQL不得编辑、重命名或删除新增变更必须放在deploy/sql/migrations/下应用版本由backend/consts/const.py中的APP_VERSION标识。这条规则背后的工程原因可以从 deploy/sql/migrations/README.md 中看到完整设计迁移运行器以文件名作为迁移 ID并将当前文件校验和存入nexent.schema_migrations无迁移记录的文件执行后标记为applied校验和一致的文件跳过校验和变化的文件会重新执行最关键的机制是级联重放cascading re-apply当任一文件因校验和变化被重放后本次会话中其后的所有文件都会被标记为 dirty 并逐一重放——因为前链中的破坏性语句如DROP COLUMN可能把 schema 回滚到后续文件所补偿的状态跳过会导致不一致deploy/sql/init.sql每次启动无条件执行、不参与级联因此其中的语句必须保持幂等。当前 deploy/sql/migrations/ 目录下的文件按版本聚合v1_merged_migrations.sql至v2.7.0_merged_migrations.sql加上少量独立补丁如v2.6.1_002_agent_protocol_repair_retry.sql。正因为改动已合并文件会触发整条迁移链重放所以即使只改一个注释也会付出高昂代价——这就是不可变约束的硬核原因。2.4 保留既有 HTTP 契约新增代码遵循新约定时不得破坏既有 HTTP 路由、请求/响应载荷与契约。这与各 skill 中反复强调的不因遵守规则而重构无关的遗留行为一脉相承属于典型的改动最小化工程纪律。三、Load rules for the task按任务加载对应技能AGENTS.md规定在编辑或审查以下领域之前必须读取对应的 skill路径相对仓库根目录若客户端没有 skill 加载器则直接读文件无需下载任何包跨层任务需加载每份相关技能纯文档工作无需加载无关编码技能。下表是完整的任务 → 入口映射任务或影响区域入口 skill后端端点、服务、数据库访问、后端/SDK 配置、SQL 迁移.agents/skills/nexent-backend/SKILL.md前端页面、UI、hooks、API 服务、类型、样式、本地化.agents/skills/nexent-frontend/SKILL.md需求或缺陷生命周期、SPEC 可追溯性、交付关卡.agents/skills/nexent-spec-coding/SKILL.md需求驱动功能清单、D1-D5 用例、自动化、manifest、生成的 Excel 基线.agents/skills/nexent-test-assets/SKILL.md维护既有实现导向的 Python 单元测试.agents/skills/nexent-python-tests/SKILL.md这些 skill 文件是被维护的权威规则AGENTS.md提到的.cursor/rules/兼容入口与docs/agent-rules-migration.md迁移决策文档在当前仓库快照中尚未随仓库一起提供属于原文档规划中的引用项维护时需注意补全。每个 skill 都采用先看边界 → 只读匹配的参考文档 → 保留契约 → 验证 → 报告的结构nexent-backend强调分层边界——apps 处理 HTTP、services 编排业务、database 模块负责持久化按工作类型选择 HTTP、Services、Database、Configuration、Thread lifecycle 等参考并提醒单元测试 mock 不能替代联调验收。nexent-frontend要求改动前先读 architecture 与frontend/package.json按 Pages、Components and UI、Hooks、API services、Types 分领域加载保持路由入口精简、复用既有 UI。nexent-spec-coding描述从 SPEC 分析、D1-D5 用例设计、产品实现、固定测试实现、本地验证到交付证据的六步门禁流程并定义了明确的停止条件存在未解决的行为冲突、授权范围外验证等时必须暂停。nexent-test-assets维护需求或缺陷 → 功能 → D1-D5 用例 → manifest → 固定脚本 → 结果的可追溯链test/generated/Nexent_测试基线.xlsx是确定性只读视图规定了active/blocked/manual/skipped_by_policy/retired五种用例状态并明确指出 OAuth 与 CAS 旅程当前保持skipped_by_policy。nexent-python-tests管理test/backend、test/sdk、test/ext_components下的 Legacy UT与 D1-D5 系统严格隔离给出具体的 pytest 规范——文件/函数以test_开头、类以Test开头、单文件控制在 500 行内、mock 必须 patch 实际导入路径如backend.services.example_service.fetch而非依赖定义模块。四、开发与验证环境搭建、定向测试与全量回归AGENTS.md给出了前后端两条可落地的开发流水线结合仓库实测配置如下。4.1 后端环境Python 3.11 uv在backend/目录下执行uv sync --extra>pytest test/backend/app/test_agent_app.py -v # 定向 python test/run_all_test.py # 全量AGENTS.md中示例路径test/backend/apps/test_agent_app.py在当前快照中对应实际存在的是 test/backend/app/test_agent_app.py路径后缀以仓库实际为准。全量运行器 test/run_all_test.py 是一个并发测试调度器值得展开默认目标目录为test/backend、test/sdk、test/ext_components可用NEXENT_PYTEST_TARGETS环境变量覆盖空格分隔的路径列表通过NEXENT_PYTEST_WORKERS默认auto即max(1, min(cpu 数, 文件数))控制并发通过NEXENT_PYTEST_FILE_TIMEOUT默认 600 秒控制单文件超时每个测试文件以独立 pytest 子进程运行并注入--cov、--cov-branch覆盖率统计backend 与 sdk 双源读取 test/.coveragerc 作为覆盖率配置启动时会校验 pytest-cov、coverage、pytest-asyncio 是否安装缺失则直接退出并提示安装命令。测试开始前应先确认解释器可用。验证必须匹配实际改动的行为对于纯指令类编辑例如只改规范/文档只需校验路径、skill 元数据、作用域与规则覆盖无需跑应用级测试套件。4.3 前端环境与检查在frontend/目录下npm run dev # 启动开发服务器 npm run check-all # 依次执行 type-check、lint、format:check、buildfrontend/package.json 的 scripts 完整定义如下dev: node server.js, build: next build, start: NODE_ENVproduction node server.js, lint: eslint ., lint:fix: eslint . --fix, format: prettier --write ., format:check: prettier --check ., type-check: tsc --noEmit, test:components: vitest run, test:workbench: vitest run --config vitest.workbench.config.ts, test:e2e:external-memory: playwright test e2e/external-memory-provider.spec.ts, check-all: npm run type-check npm run lint npm run format:check npm run build4.4 代码风格Python 导入顺序遵循标准库 → 第三方 → 项目内的顺序SDK 的 Ruff 配置sdk/pyproject.toml使用119 字符行宽并开启E、F、I、W规则忽略 F403、E501isort 将nexent识别为一等方first-party模块、导入后空两行。五、Legacy UT 与 D1-D5 正式测试资产两套并行的质量体系阅读 nexent-python-tests 与 nexent-test-assets 可以发现Nexent 刻意维持了两套并行的测试体系这是理解仓库测试布局的关键Legacy UTtest/backend/、test/sdk/、test/ext_components/实现导向的 Python 单元测试由nexent-python-tests规范维护使用 pytest 全家桶fixtures、pytest-mock、pytest.mark.parametrize、pytest.mark.asyncio核心纪律是隔离外部 I/O 与 API、不 mock 掉被断言的行为。它们不得被登记为正式 D1-D5 用例。正式测试资产test/automation/d1至d5、test/manifests/d1-d5.yaml、test/changes/下的需求/缺陷/重构/测试修复变更记录、test/tools/validate_test_assets.py校验器需求驱动的可追溯链由nexent-test-assets规范维护。正式用例必须在产品实现之前设计脚本与 manifest 在产品实现之后固化每次只更新受影响的 manifest 条目然后整体校验并通过python test/tools/validate_test_assets.py --phase design --generate-excel与--phase implementation --generate-excel重新生成 Excel 基线。AGENTS.md之所以把两套体系分别挂到两个 skill是为了避免实现导向的旧套件与需求导向的正式基线互相污染确保交付证据manifest、用例、脚本、结果严格一致。六、Docker 兼容性约束向下兼容老引擎的部署纪律AGENTS.md最后规定了容器化部署的兼容性底线支持 Docker Engine 18.09 / API v1.39Compose CLI 可以是较新版本新 daemon 能力GPU 设备请求、cgroup namespace 模式、healthcheckstart_interval必须先做 Engine 版本检查并提供 18.09 兼容的降级方案不得直接依赖Compose 的environment映射中布尔类与数值类值要加引号但 schema 层的布尔字段如privileged、external保持布尔类型不能改写成字符串。从部署脚本看deploy/docker/compose/docker-compose.yml、docker-compose.prod.yml、docker-compose.dev.yml中确实存在privileged: true这类 schema 布尔字段deploy/docker/deploy.sh 中也包含对docker compose与docker-compose两种 CLI 的版本探测逻辑印证了Compose CLI 可能为当前版本、需探测兼容的设计。任何部署相关工作都应先查看当前部署脚本与deploy/env/下的示例文件如 monitoring.env.example且实际部署执行始终限定在用户授权范围内。七、总结把规范变成可执行的工程流程综观 AGENTS.md它本质上是 Nexent 的AI 协作操作系统先用仓库地图 任务到 skill 的映射表让 Agent 在动手前精准定位规范再用四条共享约束语言策略、环境变量集中管理、SQL 不可变、HTTP 契约保留守住架构底线最后用前后端可执行命令与两套测试体系给出验证闭环。对开发者而言遵循这份规范的直接收益是改后端知道去哪改配置、改前端知道跑什么检查、写测试知道该归入 Legacy UT 还是 D1-D5、部署知道如何兼容老 Docker 引擎——这正是大型 AI 辅助开发项目最需要的确定性。赞分享AI AgentAI 应用后端前端大模型RAG【免费下载链接】nexentNexent is a zero-code platform for auto-generating production-grade AI agents using Harness Engineering principles — unified tools, skills, memory, and orchestration with built-in constraints, feedback loops, and control planes.项目地址https://gitcode.com/gh_mirrors/ne/nexent点击查看免费下载相关推荐Infinite Canvas 的 AGENTS.md 工程规范全解面向 AI 协作开发的仓库约束体系Infinite Canvas 的 AGENTS.md 工程规范全解面向 AI 协作开发的仓库约束体系 导读 AGENTS.md 是 Infinite CanAI 应用媒体生成前端AI AgentAI 技能魔兽世界 3.3.5 私服怎么搭才不用熬夜AzerothCore-WoTLK 两条命令、10 分钟可登录完整指南魔兽世界 3.3.5 私服怎么搭才不用熬夜AzerothCore WoTLK 两条命令、10 分钟可登录完整指南 登录框弹出的那一刻服务器列表里挂着「我的艾游戏开发后端pyinfra 仓库开发指南面向开发者与 AI 编码 Agent 的架构解析、规范与贡献流程pyinfra 仓库开发指南面向开发者与 AI 编码 Agent 的架构解析、规范与贡献流程 导读 本文以 pyinfra 仓库的 CLAUDE.md htDevOps配置管理运维上一篇明日方舟游戏资源库2000高清素材的完整技术解析与专业应用指南下一篇获取明日方舟2000高清游戏素材从角色立绘到技能图标的完整资源库创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考