🎯 Feature Request: Agent 用户身份识别与基于用户的规则引擎
问题背景
当前 Clawith 平台的多 Agent 协作设计中,Agent 无法识别真实的人类用户身份 ,这导致以下问题:
安全问题 :无法实现"只对某个用户执行某个规则"的安全策略
隐私问题 :多人共用 Agent 时存在数据泄露风险(见 Issue [Security] 隐私漏洞 - 多人共用 Agent 时数据泄露风险 #709 )
隔离问题 :Agent 的记忆/上下文是共享的,无法按用户隔离
用户场景示例
场景 1:客服 Agent
- 用户 A 询问产品信息 → Agent 只返回公开信息
- 用户 B(VIP客户)询问 → Agent 返回专属折扣信息
- Agent 需要知道"当前对话的是谁"
场景 2:销售 Agent
- 销售员 C 询问 → 返回销售数据
- 销售经理 D 询问 → 返回团队汇总数据
- 财务人员 E 询问 → 返回财务详情
- Agent 需要基于用户身份提供不同权限的数据
场景 3:安全管理
- Agent 执行危险操作前,验证"是谁在请求"
- 某些敏感操作只允许特定人员触发
- 需要审计"某个用户的所有操作记录"
建议实现方案
1. 用户身份注入机制
# 每次用户请求时,自动注入用户身份
class UserIdentity :
user_id : str # 唯一用户标识
username : str # 用户名
roles : List [str ] # 角色列表
permissions : List [str ] # 权限列表
metadata : dict # 自定义元数据
# Agent 系统提示词自动注入
SYSTEM_PROMPT = """
当前用户信息:
- 用户ID: {user_id}
- 用户名: {username}
- 角色: {roles}
- 权限: {permissions}
请基于用户身份执行相应的规则和策略。
"""
2. 基于用户的规则引擎
class UserBasedRules :
# 格式:(用户/角色, 资源, 操作) -> 允许/拒绝
rules = [
("role:admin" , "*" , "all" ), # 管理员可操作所有
("user:vip_001" , "discount_codes" , "read" ), # VIP用户可读取折扣码
("role:sales" , "sales_data" , "read" ), # 销售人员可读取销售数据
("user:junior" , "financial_data" , "deny" ), # 初级用户禁止访问财务数据
]
3. 用户隔离的 Memory/Context
class IsolatedUserMemory :
# 每个用户的对话历史独立存储
def get_memory (self , user_id : str , agent_id : str ) -> UserMemory :
"""获取指定用户的独立记忆"""
# Agent 记忆按用户维度隔离
user_memories = {
"user_001" : Memory (...), # 用户 A 的记忆
"user_002" : Memory (...), # 用户 B 的记忆
}
4. 权限校验中间件
async def verify_user_permission (user_id : str , action : str , resource : str ) -> bool :
"""验证用户是否有权执行特定操作"""
user = await get_user (user_id )
return await permission_engine .check (user , action , resource )
优先级建议
High - 这是企业级应用的基础安全能力
相关 Issue
反馈时间 : 2026-07-23
反馈来源 : 用户反馈
🎯 Feature Request: Agent 用户身份识别与基于用户的规则引擎
问题背景
当前 Clawith 平台的多 Agent 协作设计中,Agent 无法识别真实的人类用户身份,这导致以下问题:
用户场景示例
建议实现方案
1. 用户身份注入机制
2. 基于用户的规则引擎
3. 用户隔离的 Memory/Context
4. 权限校验中间件
优先级建议
High - 这是企业级应用的基础安全能力
相关 Issue
反馈时间: 2026-07-23
反馈来源: 用户反馈