@ agenicprimitives/ 委托书
部分 代理先导 ——代理应用程序的开源信任底板:可以签名的身份,行为时间检查权限,所有者携带的证据. 开发者工具包 • 妇女 所有软件包
一个代表团模式,到处都是——权限,从来不是钥匙.
当代理人为人类行事时,多数人会把钥匙和希望交出来. 这个包交给了一个代表团:由一位聪明的代理人签署的EIP-712赠款,但受以下告诫的限制:链上执行者实际上检查——时间窗口、价值上限、允许的目标和方法、法定人数——以及随时可在链上撤销。 同样的原始横跨整个堆栈:一个网络应用程序会话,一个代理到代理的呼叫,以及一个 MCP 工具引用 全部校验对同一种 Delegation 结出. "这个会话可能把这两个工具叫做"到明天",我可以马上把它杀死"是一个签名的对象,而不是三个产品.
软件包还拥有会话周期: SessionManager 将代表团绑定在会议签名的密钥上,私人密钥信封通过电子邮件加密 @agenticprimitives/key-custody 在它接触存储器之前 核查通过设计被关闭——一个未知的执行者是拒绝,而不是警告——而铸造的道具带有JTI回放保护. 由于校长是智能代理地址,而不是证书,因此每个代表团都能在发行人证书的轮换中幸存下来;而且由于监护权是代表团的防火墙,任何代表都不可能升级为账户控制(A/CN.9/WG.III/WP.III/WPADR-0011 (英语)) (中文(简体) ).
部分 代理原始产品 ——代理经济的信托基底:一个有监护,授权,命名,证书,审计证据的犬类智能代理身份,设计成一个系统.
见 spec.md → specs/202-delegation.md 完整合同:8名链上执行人、3名链外哨兵、信使信封、交叉委托、两会变体.
快开始
浏览器( 发行 ):
import { DelegationClient, buildMcpToolScopeCaveat, encodeTimestampTerms, buildCaveat } from '@agenticprimitives/delegation';
const client = new DelegationClient({ signer, smartAccount, chainId, delegationManager });
const delegation = await client.issueDelegation({
delegate: sessionKeyAddress,
caveats: [
buildCaveat(enforcers.timestamp, encodeTimestampTerms(now, now + 86400)),
buildMcpToolScopeCaveat(['get_profile', 'update_profile']),
],
});
节点( 会话周期):
import { SessionManager } from '@agenticprimitives/delegation';
const sessions = new SessionManager({ keyCustody, store, accountClient });
const { sessionId, sessionKeyAddress } = await sessions.init(userAccount, chainId);
// ... user signs delegation, posts back ...
await sessions.package(sessionId, signedDelegation);
节点( 切入薄荷+ 验证) :
import { mintDelegationToken, verifyDelegationToken } from '@agenticprimitives/delegation';
const { token } = await mintDelegationToken(claims, sessionAccount.signMessage);
// At the MCP:
const result = await verifyDelegationToken(token, { chainId, delegationManager, rpcUrl, audience, enforcerMap, jtiStore });
if ('error' in result) throw new Error(result.error);
const { principal, grants } = result;
principal 是经核实的发包人的智能代理地址——每一个下游行动都归因于一个可控的链上身份,而不是API密钥.
怎么不一样
最相近的邻居是MetaMask的"代表团工具包"和智能账户SDK中的会话键功能——两者都是真实的,都是精心打造的,这里的提醒-增强器形状刻意地与ERC-7710方向相映射出,因此模型保持互通. 差异在于范围和姿态。 会话键一般在一个钱包堆栈和一个运输中活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活活 而评价员的姿态作为硬性变体被倒闭:未知的执行者意味着拒绝,没有允许的默认来悄悄地扩大权威. 保管业务在结构上被排除在外——这里的一个代表团永远不能轮换证书或更改账户控制,因为这个套件中不存在这个路径.
状态
阿尔法轨道-只试网. Spec + API 稳定; 在根上列出的门之前不要部署到生产中 README.md 状况科 包括第三方合同审计和治理关键轮换。 追踪所有安全发现 docs/audits/findings.yaml。 。 。 .
授权发言
一个人的证书由她的代理人出示,从未被它持有. 她签了一张 credential.present 有线
(单位:千美元)PRESENTATION_CAPABILITY说明其涵盖的受众、上游方案和发行方方面面;
createPresentationRelease 将孩子的任务赋予一份声明 并在设备密钥的签名内判断
召回——另一个会场的声明没有标志. createEs256EvidenceMinter 财务报告和审定财务报表 boundEvidenceFrom 转过来
关键服务在P-256设备关键标志前所需的证据:法官证明
判断。 同样的薄荷为发行运行时间服务,其发行证据取出摘要,面和类型等名称.
参考文献
出口. 洞穴: ROOT_AUTHORITY, (中文(简体) ), buildCaveat, (中文(简体) ), buildMcpToolScopeCaveat, (中文(简体) ), buildDataScopeCaveat, (中文(简体) ),
buildVaultKeyUseCaveat + 键 decodeVaultKeyUseTerms + 键 VAULT_KEY_USE_ENFORCER (第278段), buildVaultRecordScopeCaveat + 键
vaultRecordScopeAllows + 键 decodeVaultRecordScopeTerms + 键 VAULT_RECORD_SCOPE_ENFORCER (第317项,一条条)
记录/操作匹配者), buildDelegateBindingCaveat, (中文(简体) ), buildQuorumCaveat, (中文(简体) ), encodeTimestampTerms, (中文(简体) ), encodeValueTerms, (中文(简体) ),
encodeAllowedTargetsTerms, (中文(简体) ), encodeAllowedMethodsTerms, (中文(简体) ), encodeCallDataHashTerms。哈兴: hashDelegation, (中文(简体) ),
hashCaveats, (中文(简体) ), evaluateCaveats。浏览器 : DelegationClient。会话: SessionManager, (中文(简体) ), SessionStore键 :
mintDelegationToken, (中文(简体) ), verifyDelegationToken (与 requireQuorumForTier) (中文(简体) ). 链上 : isRevoked, (中文(简体) ), revokeDelegation。 。 。 .
方法授权: authorizeMethodDelegation, (中文(简体) ), methodSelector4. 授权: intentDigest, (中文(简体) ), deriveMandate, (中文(简体) ),
readMandate, (中文(简体) ), verifyMandateForStep, (中文(简体) ), registerSubsetHandler, (中文(简体) ), registerDefaultSubsetHandlers, (中文(简体) ),
buildDigestBindingCaveat, (中文(简体) ), readDigestBindings2. 专题介绍: PRESENTATION_RAR_TYPE, (中文(简体) ), presentationHandler, (中文(简体) ),
buildStandingWire, (中文(简体) ), deriveFromStanding, (中文(简体) ), presentationIntent, (中文(简体) ), createPresentationRelease, (中文(简体) ),
parseAudienceBoundChallenge, (中文(简体) ), createEs256EvidenceMinter, (中文(简体) ), boundEvidenceFrom。类型 : Delegation, (中文(简体) ), Caveat, (中文(简体) ),
DataScopeGrant, (中文(简体) ), VaultRecordScopeGrant, (中文(简体) ), DelegationTokenClaims, (中文(简体) ), EnforcerAddressMap, (中文(简体) ), JtiStore, (中文(简体) ), CaveatContext, (中文(简体) ),
VerifyOpts, (中文(简体) ), VerifyError, (中文(简体) ), SessionRow, (中文(简体) ), SessionPackage, (中文(简体) ), SessionMeta。 。 。 .
任务(第350节,第2节,第336节E4). 授权是一个代表团,其理由如下: DigestBindingEnforcer 约束它的告诫
到意向摘要(JCS,然后是keccak). MandateRequirementV1 是 RAR- 形状; 子集处理器按 type
(RFC 9396定义没有普遍"比"更窄";); deriveMandate 制作链条(孩子的 authority 是家长的
(一) 散装; verifyMandateForStep 这是每一步一次的检查, 从来没有一次在录取. src/mandate-handlers.ts 船舶
能力和付款处理者.
委托演示文稿(Spec 305 W2,zkID Z2). credential.present 限定哪个核查者,哪个程序是上游程序(通过
p-256设备密钥可能会导致个人的P-256设备密钥签名 Show 挑战,通过
页:1 PRESENTATION_SCOPE_ENFORCER 哨兵从链条上判断. deriveFromStanding 给孩子一个陈述;
createPresentationRelease 是设备签名的唯一道路: 它运行 verifyMandateForStep 每个签名,要求
挑战<scheme>:<audience>:<nonce>(b) 与任务涵盖的受众联系在一起,并 evidence 端口
证明它判断了什么(digest \ 地点 \ 上游程序 \ 演员)作为键的标志上下文 。 出具证据(第444项)
由发行的运行时间本身的密钥用相同的分数来计价. 聪明特工的港口 SessionGrantV1 + 键
WalletAction + 键 evaluateProofPolicy,而代表移动到一个被封存的密钥.
方法授权. authorizeMethodDelegation + 键 methodSelector 回答“可请这位代表执行方法
"TARGET",没有A2A信息(为另一代理发布,发放发现补助金). a2a是因为 skillSelector 实值
methodSelector 加上任何技能的哨兵.
共同任务. 一个新的提醒类型: 构建器和编码器 src/caveats.ts中,发送 src/evaluator.ts导出于
src/index.ts黄金测试 符号信封更改 : src/token.ts,并与 mcp-runtime6. 会议周期
方法 : src/sessions.ts 与整合测试.
相会相会. 审计活动: delegation.mint, (中文(简体) ), delegation.verify.accept, (中文(简体) ), delegation.verify.reject (图206)。 数字数据K
间:脱链 Caveat + 键 EnforcerAddressMap 镜像链上注册; 签名的提醒散列匹配
DelegationManager CAVAT TYPEHASH(强制剂+术语,无参数) - 第208区。 。 。 .
起居地点(第229段, ADR-0019 (英语), (中文(简体) ),
docs/relying-site-delegation.md: 依赖网站是个人的范围代表,从来不是保管人.