产品指出我写的不如 `docs/design/agent-architecture.md` §六。对比之后确实:
我只写了「按权限装出角色/现场/工具」这个**现象**,而那份写的是**判据** ——
为什么必须这么装、不这么装会怎样。照它的骨架重写。
补进来的四块:
· **哪几维必须按身份分**:会话、工具清单(看不见比看见被拒更安全)、数据范围
(下推到查询条件,⛔ 不是查全量再过滤)必须分;系统提示词分**但这是最不重要的一条**;
模型和代码实现不用分
· **为什么同一会话不能切换身份**:上下文是**单向**的,高权限会话里已载入的数据
不会因为一句「你现在是低权限角色」而消失 ——
**提示词不是删除操作,也从来不是安全边界**
· **「两个 agent」要拆开**:同一套实现按身份参数化;⛔ 这不是「多 agent 编排」——
编排指 agent 互相调用,而不同身份之间不需要通信,真要协作走业务对象
· **四条硬规则**(身份随调用传递 / 授权在工具内部 / 数据范围下推 / 工具清单按身份下发),
连同那条判据:**如果模型不传某个参数,越权就不可能发生 —— 那这个参数就不该是参数**
⚠ ️ 保留我原来那个推论(它没有"记性" ⇒ 动过手之后必须重新看那张单),
那条在原文里没有,而它正好解释了「看当前确认单」为什么存在。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .claude | Loading commit data... | |
| .design-sync | Loading commit data... | |
| apps | Loading commit data... | |
| clickhouse/config.d | Loading commit data... | |
| deploy | Loading commit data... | |
| docs | Loading commit data... | |
| packages | Loading commit data... | |
| scripts | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .gitlab-ci.yml | Loading commit data... | |
| .npmrc | Loading commit data... | |
| .prettierrc | Loading commit data... | |
| README.md | Loading commit data... | |
| docker-compose.expose.yml | Loading commit data... | |
| docker-compose.managed.yml | Loading commit data... | |
| docker-compose.prod.yml | Loading commit data... | |
| docker-compose.yml | Loading commit data... | |
| eslint.config.mjs | Loading commit data... | |
| liu.cjs | Loading commit data... | |
| package.json | Loading commit data... | |
| pnpm-lock.yaml | Loading commit data... | |
| pnpm-workspace.yaml | Loading commit data... | |
| tsconfig.base.json | Loading commit data... | |
| turbo.json | Loading commit data... |