From 3da189e856f29423e8199f1909268428cd4cc06c Mon Sep 17 00:00:00 2001 From: Aska Date: Sun, 6 Sep 2026 05:14:17 +0800 Subject: [PATCH] =?UTF-8?q?docs(AGENTS):=20=E8=BF=BD=E5=8A=A0=20=C2=A79=20?= =?UTF-8?q?=E5=85=A8=E7=90=83=E7=BA=A2=E7=BA=BF=20+=20=C2=A710=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81/=E6=B5=81=E7=A8=8B=E7=A1=AC=E6=80=A7=E8=A7=84?= =?UTF-8?q?=E8=8C=83=EF=BC=88=E6=A8=A1=E5=9D=97=E6=8B=86=E5=A4=9A=E6=96=87?= =?UTF-8?q?=E4=BB=B6/=E6=AF=8F=E9=98=B6=E6=AE=B5=20push/=E9=81=87=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=86=B2=E7=AA=81=E9=98=BB=E5=A1=9E=E8=AF=A2=E9=97=AE?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 77e557d..1f46f91 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -34,3 +34,22 @@ - 子代理 prompt 必须**自包含**:写清目标、已知信息、精确文件路径、必须遵守的编码约束(02-development-constraints.md)、验收命令;不要让它去搜已经知道的东西。 - **只有真正独立才并行**;有依赖的串行。避免两个子代理同时改 `go.mod/go.sum`——若都要改,指定其中一个负责或先把依赖拉好。 - 目的:防主会话上下文超限触发压缩;压缩后靠本文件 + `工作小结.md` 恢复锚点,继续当监工。 + +## 9. 全球红线(跨里程碑,必须遵守;违反即架构偏离) +- **单二进制、单端口 `:8080`、零跨进程 IPC**:模块间同步走**进程内接口 + 依赖注入**(直接方法调用),异步走**进程内 `bus`**;**不另开监听端口、不 HTTP 互调**。 +- **身份识别靠 channel 层强类型 `actor` 元数据 + 策略引擎**,**绝不靠提示词/LLM 判断**(主人/群聊/陌生人判定与权限永远由 actor 元数据 + 白名单 + policy engine 决定)。 +- **人格 = 身份**(**不限制能力**);**行为模式 = 呈现**(≠边界,可热切换、不构成能力边界);**能力全局全能**;**前端(Web)是第一公民**。 +- **IM 是镜像**:只 chat 文本,Web 不回流 IM;输出一律 chat 文本。 +- **前端(用户端 + 管理面板)统一 Miuix 设计语言**(小米 HyperOS Miuix / Miuix Console),实现须对齐六大核心(Smooth Corner/多层 Surface/弹簧动效/深色优先/毛玻璃/Liquid Glass),不混用其他 UI 语言。 +- **存储**:SQLite 默认 + PG/pgvector **可选增强**;**配置了增强必须真实走语义/向量路径**(非空壳)。 +- **工具循环上限 8 轮**;任务:后台声明 / 前台 2s 转后台 / 消息队列回输出。 +- **记忆三类作用域隔离**:用户习惯(全局共享)/ 角色日常(他角色只读)/ 项目(人人读写 + 项目索引分层);**群聊 / 陌生人:查记忆只读不写、不入主会话上下文、不泄露主人敏感信息**。 +- **敏感操作主代理代审 + 审计日志 + 前端小字**(「xxx 想要干什么,我审查后批准了」)。 +- **模型**:per-role 路由 + 接口报错自动降级(主→备→本地);多模态/流式。 + +## 10. 代码与流程硬性规范(压缩后仍需遵守) +- 🔴 **文件 ≤500 行、函数 ≤80 行**;**模块按职责拆成多个源文件,严禁把整个模块塞进一个超大文件**;**三次复制必须抽取**共享。 +- 🔴 禁 `interface{}`(用 `any`)、禁包级全局变量(除 `var ErrXxx`)、禁裸 `return err`、禁魔法数字;错误一律 `%w` wrap;SQL 全参数化、表名单数、主键 `id`、时间戳 `created_at/updated_at`、索引 `idx_{table}_{col}`;敏感信息打日志。 +- 🔴 每阶段完成(或里程碑归档)后:**`git push origin dev`** 同步远端。 +- 🔴 **遇到开发文档冲突 / 意义不明 / 规格矛盾时**:**阻塞会话**,用 `AskUserQuestion` 询问主人,**不得自行猜测**;文档清、不冲突则自主推进。 +- 🔴 阶段验证:后端 `go build ./...` + `go vet ./...` + `go test ./...` 全绿 + windows/darwin 交叉编译;前端(M9+)`tsc --noEmit` + `vite build` 通过。