@ agenticprimitives/ agent-profile( 代理主控) @ agent- profile
部分 代理先导 ——代理应用程序的开源信任底板:可以签名的身份,行为时间检查权限,所有者携带的证据. 开发者工具包 • 妇女 所有软件包
一个剖面描述身份;它永远不会成为身份. 代理发现正在合并——链上注册、DNS/PKI代理命名、Hedera型配置、A2A卡和MCP注册。 每个标准都想成为一个"活"的代理商 这个软件包采取了另一个位置:每个代理都已经住在一个Canonic ERC-4337 Smart Agent地址,一个配置是一个AP-native,打出,内容被遮住的显示 关于 该地址(ADR-0010 (英语)) (中文(简体) ). 任何标准的注册条目都是外部预测/面来回链接到同一个锚上——所以一个身份服务于他们所有人,任何注册都无法悄悄地叉掉代理是谁.
部分 代理原始产品 ——代理经济的信托基底:一个有监护,授权,命名,证书,审计证据的犬类智能代理身份,设计成一个系统.
何处 agent-naming 地图名称 – 地址, 此软件包地图地址 – 键入配置文件以及可选的端点控制证明: CanonicalAgentProfileV1 cAIP-10 用于链上锚定的确定性散列内容 nativeId 用于交叉注册的后链接的助手。 由于Spec 347,它也拥有 A2A 1.0 代理卡型号 (单位:千美元)./a2a)——一个不同的对象,见下文.
图层 : 发现——一个简介 侧 (不登录——即
connect-auth;不是犬科特征——即:agent-account) (中文(简体) ). 条形键 : 智能代理地址描述.
配置 QQ A2A 卡
CanonicalAgentProfileV1 (基层) | A2AAgentCardV1 (单位:千美元)./a2a(中文(简体) ) | |
|---|---|---|
| 答复 | 这个经纪人是谁,谁操作它, 它声称什么 | 这个A2A服务器做什么,我怎么跟它说话 |
| 形状 | AP-原生、受歧视 type | A2A 1.0 代理卡(supportedInterfaces, (中文(简体) ), capabilities, (中文(简体) ), skills, (中文(简体) ), securitySchemes, (中文(简体) ), signatures(中文(简体) ) |
| 条形字节 | 分类-克克克(JSON)profileContentHash,链上 metadata-hash(中文(简体) ) | RFC 8785 JCS 减 signatures - sha256 (法语)cardContentDigest(中文(简体) ) |
| 证据 | SignedCanonicalProfileBundleV1 (南非的ERC-1271) | ES256 JWS(任何A2A客户端验证) 加号 SmartAgentCardBindingV1 (EIP-712, ERC-1271 — 杀伤人员地雷核查员) |
AgentCard, (中文(简体) ), SignedAgentCardBundleV1, (中文(简体) ), hashAgentCard, (中文(简体) ), buildSignedAgentCardBundle, (中文(简体) ), verifySignedAgentCardBundle 仍然编译为 已贬值的别名 一次释放(347 第0.3节, (中文(简体) ), ADR-0062 (英语)) (中文(简体) ).
使用这个当
- 您创建或验证
CanonicalAgentProfileV1(人物, org, 服务, 金库, MCP 服务器, multisig). - 您继承、管理、验证、签署、释放或导入 A2A 代理卡 (单位:千美元)
./a2a),并有外地出处和智能代理绑定. - 你需要一个决定论
profileContentHash用于链上metadata-hash锚-所以被篡改的剖面可以被持有散列的人所察觉. - 你需要CAIP-10(英语:CAIP-10)
nativeId编码/解码(cript encode,允许解码)作为可移植回路连接到舟子座SA(ADR-0008 (英语)) (中文(简体) ). - 您需要端点验证方法( DNS TXT, 已签名的 URL, HTTP 挑战, 可验证的演示文稿) – 第2阶段+.
- 您正在构建编码调用以注册或更新链上配置文件主锚 .
不使用此选项
.agent姓名或名称agent-naming。 。 。 .- 智能代理部署 / userOps -
agent-account。 。 。 . - 密码/SIWE/JWT -
connect-auth。 。 。 . - 信任的边缘——
agent-relationships。 。 。 . - UAID 字符串生成——设计拒绝(ADR-0008 (英语)我们揭露
nativeId消费者在当地获得UAID.
安装
工作空间- 内部;尚未出版.
pnpm add @agenticprimitives/agent-profile
60秒快速启动
import {
canonicalProfileJson,
profileContentHash,
buildCaip10Address,
type CanonicalAgentProfileV1,
} from '@agenticprimitives/agent-profile';
const canonicalAddr = '0x0000000000000000000000000000000000000003' as const;
const profile: CanonicalAgentProfileV1 = {
type: 'person',
displayName: 'Alice',
};
const hash = profileContentHash(profile);
const nativeId = buildCaip10Address({
namespace: 'eip155',
reference: '84532',
address: canonicalAddr,
});
// Anchor hash + nativeId on chain via agent-naming records or profile resolver.
60秒内刷出A2A卡
import {
inheritCardBase, draftFromBase, applyOverride, createRelease, transition, attachSignature,
generateA2ACardSigningKey, signA2ACard, verifyA2ACardSignatures, importA2ACard,
} from '@agenticprimitives/agent-profile/a2a';
const now = new Date().toISOString();
const base = inheritCardBase({
profile, names: { primary: 'alice.svc.agent' },
surfaceCards: toCardProjectionSet(catalog), // surface-catalog — the only source of inherited skills
runtimeCapabilities: { streaming: false, pushNotifications: false },
deployment: { host: 'https://alice.agent.example', a2aUrl: 'https://alice.agent.example/api/a2a' },
agentVersion: '2.0.0', now,
});
let draft = draftFromBase(base, { cardResourceId: 'card_01', now });
draft = applyOverride(draft, '/description', 'Curated copy.', { now }); // recorded, reviewable
let release = createRelease(draft, { releaseNumber: 1, agentVersion: '2.0.0', now,
validation: { environment: 'production', catalogSkills: base.card.skills, runtimeCapabilities: {} } });
release = transition(release, 'approvalPending', { now });
release = transition(release, 'approved', { now, approval }); // ApprovalRefV1 names the exact digest
const key = await generateA2ACardSigningKey(); // ES256, kid = RFC 7638 thumbprint
const signed = await signA2ACard(release.unsignedCard, { privateKey: key.privateKey, kid: key.kid });
release = attachSignature(release, { signedCard: signed.card, signature: signed.signature });
// A non-AP client:
await verifyA2ACardSignatures(signed.card, { keys: (kid) => (kid === key.kid ? key.publicJwk : undefined) });
// Importing someone else's card: bytes kept, signatures verified BEFORE normalizing, unknown fields flagged.
const { imported, diagnostics } = await importA2ACard(bytes, { verifyKeys });
怎么不一样
参考点为登记和代理卡生态系统,但本套件定义了AP-native原始:
- 锚,不是权威. 在登记册第一设计中,登记册条目 实值 并且每个登记簿都会刻出自己的身份概念。 给
AgentCardaP-内置类型 JSON 受到歧视type,每个外部注册面都必须通过 CAIP-10 连接到犬科智能代理nativeId(单位:千美元)第220页第4节) (中文(简体) ). 一个代理,许多注册,零身份叉. - 坦佩尔的证据.
profileContentHash是决定性的 Cononical JSON ——排序的密钥,固定的数字格式——匹配链上metadata-hash上观相. 两种相似的相位相位相位相位相位相位相位相位相位相位相位相位相位相位相位相位相位相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相. - 端点索赔不是端点证明. 概况 索赔 a. MCP或A2A URL;
VerificationMethod是明确,呼叫者选择的证明 智能特工控制它。 我们从来没有默默地选择一种核查方法——你总是知道“核查”的含义. - CAIP-10严格完成. 编码器拒绝未知的命名空间(第1阶段:eip155,hedera,solana);解码器接受任何语法验证的CAIP-10字符串进行前向相容.
主要概念
- Canonical Agent ProfileV1 (英语)AP - 本地字型 JSON 歧视
type,带有特定类型子对象(AiAgentProfile, (中文(简体) ),McpServerProfile, (中文(简体) ),MultisigProfile, (中文(简体) ),ServiceProfile) (中文(简体) ). - A2A 代理卡 (单位:千美元)
./a2a:A2AAgentCardV1+ 草稿/发布/FieldBindingV1来源(inherit | override | computed | manual),纯度validateA2ACard(稳定)DIAGNOSTIC_CODES,包含.CATALOG_DIVERGENCE财务报告和审定财务报表CAPABILITY_UNVERIFIED),生命周期draft → validated → approvalPending → approved → signed → published → superseded | deprecated | revoked。 。 。 . - 分发 (单位:千美元)
AgentDistributionV1, spec 347 第8.5节:如何隐藏和运行代理软件——acp?(非加太国家符合,东道非加太国家的资格标志)registry.json, (中文(简体) ),version?(执行成像),npx编号 :uvx{ package, args?, env? }, (中文(简体) ),binary[<ACP_PLATFORMS>] { archive (https, no .dmg/.pkg/.deb/.rpm), cmd, sha256?, args?, env? }- 非加太国家登记册的实地名称逐字记录agent.schema.json。存储为 SA 键DISTRIBUTION(单位:千美元)atl:distribution) JCS 形式的字符串属性 :validateDistribution(纯粹,string[]· 问题encodeDistribution(推到无效) ^decodeDistribution(未关闭)null·buildSetDistributionCall. 以构建方式提供公开的链上数据——从不保密env。 。 。 . - 配置文件侧面数字 :
metadata-uri+ 键metadata-hash指着警犬SA. - 第10条
nativeId:交叉注册回接;必须在EVM链上与SA相匹配. - 核查:证明一个MCP/A2A URL是由SA控制的(与命名的区别).
见 docs/concepts.md。 。 。 .
子路径导出
@agenticprimitives/agent-profile/caip10——CAIP-10只帮助人(无客户行李).@agenticprimitives/agent-profile/profile——可口JSON+内容散列.@agenticprimitives/agent-profile/card- 签名的cononical profile捆绑.@agenticprimitives/agent-profile/a2a—— A2A 1.0 代理卡型:JCS Canonical字节,ES256 JWS,EIP-712 Smart 代理装订,场出处,验证,进口,放行生命周期.
安全变化因素
- 简介内容-hash是决定论(canonical JSON).
- 纸币字节为 RFC 8785 JCS(从未排序过的键)
canonicalizeJson; 签名和装订的核查是失败的; 在其正常化前进行导入验证; 验证拒绝在卡片中提供秘密材料,私人URL和金库参考. - 配置中没有原始的密码材料——只
credentialIdDigest。 。 。 . - 核查方法是明确的,而不是自动选择的.
- 无 UAID 生成( N)ADR-0008 (英语)) (中文(简体) ).
见 docs/security.md 财务报告和审定财务报表 AUDIT.md。 。 。 .
文件地图
docs/concepts.md——剖面对克能克SA.docs/api.md——公共API指南.docs/security.md- 变化无常.docs/troubleshooting.md——常见错误.docs/migration.md——移民笔记.CLAUDE.md——代理线路.spec.md- 光谱指针.
验证
pnpm check:agent-profile
pnpm check:forbidden-terms
状态
第1阶段——纯助人+客户骨架. 计划、CAIP-10帮助者和内容散列是真实的和经过检验的; AgentIdentityClient 读取掷出 I Phase 2 写出 I Phase 4 ——它们从设计上来说是根茎,形状被锁定在今天的作曲上. 此外:测试网/已准备就绪;生产发射在根部的公开核对表上盖门 README.md,包括第三方合同审计和治理关键轮换. 追踪所有安全发现 docs/audits/findings.yaml。 。 。 .
许可证
失败.