1作者: rkka大约 1 个月前原帖
观察 大多数人工智能架构看起来是这样的: 应用程序 → 模型 → 输出 (加上日志记录、监控,可能还有保护措施) 你可以记录模型生成的内容。 你可以过滤输出。 你可以跟踪使用情况。 但通常你无法回答: 对于这个特定的人工智能决策,它是在什么版本的政策下被允许执行的? 授权往往是系统级别的(“我们批准了部署”),而不是决策级别的。 这个区别看似微不足道,直到人工智能系统开始: • 调用工具 • 触发工作流 • 访问内部API • 修改状态 此时,它们不再仅仅是生成文本。 它们正在执行动作。 实验 我构建了一个薄控制层,位于应用程序和模型之间: 应用程序 → 授权层 → 模型 每个请求在执行之前都要经过OPA(开放政策代理)。 政策引擎返回以下之一: • 重用(返回先前授权的结果) • 计算(允许模型执行) • 调整(根据政策修改响应) • 升级(需要人工审核) 只有在做出这个决定后,模型才被允许运行。 存储内容 对于每个请求,系统记录: • 政策ID和版本 • 政策包摘要(SHA-256) • 风险领域 + 分数 • 授权决策 • 不可变账本交易ID 追踪记录是可重放的。 模型本身并不知道这个层的存在。 技术栈: • FastAPI • OPA • immudb(仅追加账本) • Docker化部署 我想验证的内容 每个决策的授权是否过度设计? 在实践中,团队依赖于: • 提示约束 • 输出过滤 • 访问控制 • 人工审核工作流 也许这已经足够。 但如果人工智能系统变得更加自主,开始执行工具调用,我不确定事后日志记录是否足够。 云系统发展了身份和访问管理(IAM),因为“我们信任服务”并不足够。 人工智能是否需要类似的东西? 开放问题 • 你认为在大型语言模型(LLM)执行之前,运行时授权是否真的必要? • 基于政策的决策控制在受监管行业之外是否有用? • 不可变的可追溯性是必要的,还是仅仅日志记录就足够? • 这将如何与代理工具调用框架互动? 我真心想知道这是否解决了一个真实的问题,还是仅仅是基础设施的过度设计。 如果有用,乐意分享更多细节。
3作者: emilss大约 1 个月前原帖
你会使用一个只需定义模式、访问策略和函数的后端吗?<p>基本上就像在EVM上创建智能合约,但它们运行在一个超大规模云平台上,并具备常规后端的基本功能。<p>这是我想的一个模拟示例:<p>模式 User { email: 字符串 @私有(所有者) name: 字符串 @公开 balance: 数字 @私有(所有者, 管理员) }<p>策略 { User.read: 所有者 或 角色("管理员") User.update.balance: 角色("管理员") }<p>函数 transfer(from: User, to: User, amount: 数字) { assert(caller == from.owner 或 caller.role == "管理员") assert(from.balance >= amount) from.balance -= amount to.balance += amount }<p>我在玩OpenFGA和AWS Lambda的东西,这让我想到这个。<p>所以你会在一个超大规模云平台上“部署”这个合约,然后让用户通过你简洁的JavaScript前端访问它,方式如下:<p>const res = await fetch("https://api.hyperscaler-example.com/c/your-contract-id/transfer", { method: "POST", headers: { "Authorization": "Bearer <user-jwt>", "Content-Type": "application/json" }, body: JSON.stringify({ from: "user_abc", to: "user_xyz", amount: 50 }) });<p>运行时从JWT中解析调用者身份,检查策略规则,运行函数,处理字段的加密/解密,因此你的前端根本不接触这些。<p>就这样,你会使用它吗?有没有什么东西已经完全实现了这个功能?我有点想要构建这个。