treg token本质解析(user, org)成员身份如何决定你能调用什么【免费下载链接】tregOpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn项目地址: https://gitcode.com/GitHub_Trending/treg/tregtreg 是一个“面向 agent 工具的 OpenRouter”一个 token 就能让 AI agent 调用数百家的工具 API。但在 treg 里token 的本质不是一串随机字符串而是一个 (user, org) 成员身份。本文带你快速看懂 treg token它从哪来、如何解析出你的团队与角色以及它凭什么决定你能调用哪些工具、每天能调多少次、哪些资源你不能碰。一个 token 的本质(user, org) 对treg 的身份模型只有三张表但分工非常清晰定义见 src/treg/models.py表职责一句话理解User全局身份只有邮箱没有 token、没有角色Org租户团队真正拥有工具、凭证、调用记录的一方Membership成员身份token 的本体唯一约束(user_id, org_id)关键结论token 一个 (user, org) 对。一个人加入 N 个团队就有 N 条 Membership也就是 N 个各自独立的 token——每个 token 都“烘焙”进了它所属的团队天然带着角色、配额和权限。所以 treg token 不是“账号钥匙”而是“某人在某团队中的工位牌”牌上写着你是谁、属于哪个组、什么级别。你的 token 决定了这 5 件事一次请求进来treg 会把它解析成Callersrc/treg/domain/identity/access.py后面所有判断都围绕这个身份展开。具体来说① 你能看到哪个团队的数据org 隔离每个资源工具、凭证、调用记录都带org_id字段。require_member依赖会把你的 token 解析成 Membership然后所有列表查询按caller.org_id过滤所有新建资源自动盖上你的org_id代理转发时只加载本团队的凭证换句话说拿着 A 团队的 token 查 B 团队的工具得到的不是“越权提示”而是和查一个不存在的 id 一模一样的404——连“对方存在”这件事都不泄露。② 你的角色能管理什么owner admin member viewer角色存在 Membership 上排序规则ROLE_RANK为owner admin member viewer角色能做什么owner管理一切 改角色 删团队admin管理全团队的工具/凭证member只能管理自己创建的资源viewer只能call 查看列表注册一律 403角色判断的代码在 src/treg/domain/governance/access.py跨团队资源返回 404角色不够返回 403两种情况刻意区分方便你排查。③ 你能调用哪些工具tool_access 白名单Membership 上有一个tool_access字段规则很直白NULL默认 全部工具新工具上线自动可用没人被“升级后掉权限”工具名列表 只允许列表里的是一份显式白名单——自定义过的成员不会自动拿到新工具owner 永远豁免防止把团队锁死在门外admin 和 member 可以被限制。管理端点见 src/treg/routers/orgs.py 的set_member_accessPATCH /orgs/{id}/members/{user}/access仅 admin。这个白名单同时管住三条路径代理转发call_tool、服务端run_tool_server、本地运行grant_local_run——没有后门。④ 你每天最多能调多少次daily_call_cap每个成员独立带daily_call_cap-1表示不限默认。它由团队管理员单独设置和团队总余额互不干扰——给实习生一个低配额既省钱又不影响你自己。⑤ 你能否在本地跑local_run_enabled成员级开关。关闭后你的工具调用只能走 treg 服务端执行不能treg run --local——敏感凭证因此永远不会落到某个成员自己的机器上。认证怎么走从 token 到 Caller 的 3 步treg 的认证流程docs/context/architecture/auth-secrets.md刻意分成两步“先认钥匙再认人”认钥匙token 做 SHA-256 后去ApiKey表找记录数据库只存哈希不存明文。找到后检查状态——disabled返回 401 disabled keyrevoked返回 401 revoked key认人钥匙记录指向一条 Membership即你的 (user, org) 身份组 Caller(membership, user, org, api_key)打包成一个Caller对象后续的org_id/role/email全部从这里读这个设计的直接好处禁用和吊销即时生效且不需要动角色、配额、计费任何数据。钥匙坏了人还在想恢复就重新启用钥匙。浏览器和 CLI 走的是同一套规则dashboard 用 session cookie X-Treg-Org头选择团队CLI/agent 的 token 自带团队新版签名 token 的org声明是权威的用X-Treg-Org去“指”另一个团队会直接 403防止 A 团队的钥匙被挪去扣 B 团队的余额。Agent也是一种“成员”treg 支持给机器签发agent 身份——本质就是一条特殊的 Membership邮箱域名是保留的机器域_is_machine_email判定不能扮演“用户”不能创建团队、不能接受邀请否则 agent 可以自创一个自己是 owner 的团队绕开所有白名单——owner 是豁免的永远不能是 owner完整继承daily_call_cap、tool_access、local_run_enabled——所以每个 agent 都有独立的配额和工具面给 agent 发一个 scope 过的 token比把团队主 token 塞给爬虫安全得多。快速排查常见 401/403 对照返回原因怎么办401 invalid token哈希查无此人重新treg login401 disabled key钥匙被停用请 owner/admin 重新启用401 revoked key钥匙被吊销或轮换过重新登录获取新 token403 not a member of this orgtoken 和团队对不上用该团队自己的 token404资源在别的团队或角色不够先确认自己看的是哪个团队CLI 常用组合treg call tool试调用、treg balance看余额、treg tool ls列出你当前身份能看到的工具——列出来的就是你能调的白名单效果一目了然。小结treg token 的本质是(user, org) 成员身份不是单纯的凭证字符串一个 token 同时决定五件事团队边界、角色、工具白名单、每日配额、本地运行权限认证“先认钥匙再认人”让禁用/吊销即时生效且不伤及权限数据团队隔离是硬边界跨团队查询一律 404agent 也是带全套限制的成员想深入细节可以读官方架构文档多租户设计 与 数据模型代码入口在 src/treg/domain/identity/ 目录。【免费下载链接】tregOpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn项目地址: https://gitcode.com/GitHub_Trending/treg/treg创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考