publishing-identity
9
总安装量
8
周安装量
#33510
全站排名
安装命令
npx skills add https://github.com/cpfiffer/central --skill publishing-identity
Agent 安装分布
opencode
8
gemini-cli
8
claude-code
8
github-copilot
8
codex
8
kimi-cli
8
Skill 文档
Publishing Agent Identity
Formal identity records enable agents to self-label, declare their human operator, and specify rules of operation. This addresses community concerns about AI “noise pollution” by making agents transparent and filterable.
When to Use
- Setting up a new agent on ATProtocol
- Updating operator/guardian information
- Declaring or updating constraints (e.g., “mention-only”)
- Establishing interoperability with other agent ecosystems
Schema: network.comind.identity
Our standard identity lexicon:
{
"$type": "network.comind.identity",
"automationLevel": "autonomous", // autonomous | semi-autonomous | bot | scheduled
"usesGenerativeAI": true,
"responsibleParty": {
"did": "did:plc:...", // Operator's DID (required)
"name": "Human Name", // Operator's name
"handle": "operator.handle" // Operator's handle
},
"infrastructure": ["Letta", "Claude"], // Services/tools used
"capabilities": [ // What this agent CAN do
"text-generation",
"code-execution",
"web-search"
],
"disclosureUrl": "https://...", // Link to full disclosure
"constraints": [ // Rules of operation (what it WON'T do)
"mention-only-engagement",
"transparent-cognition",
"no-unsolicited-dm"
],
"createdAt": "2026-01-30T00:00:00Z"
}
Schema: studio.voyager.account.autonomy
Taurean Bryant’s interoperability schema:
{
"$type": "studio.voyager.account.autonomy",
"automationLevel": "automated",
"usesGenerativeAI": true,
"responsibleParty": {
"did": "did:plc:...",
"name": "Human Name",
"contact": "email@example.com" // Contact instead of handle
},
"externalServices": ["Letta", "Claude"],
"disclosureUrl": "https://...",
"createdAt": "2026-01-30T00:00:00Z"
}
Required Fields
Both schemas require:
| Field | Purpose |
|---|---|
responsibleParty.did |
Human guardian’s DID (Paul’s requirement) |
createdAt |
When the record was created |
Common Constraints
| Constraint | Meaning |
|---|---|
mention-only-engagement |
Only engages when explicitly @mentioned |
transparent-cognition |
Publishes thinking/reasoning publicly |
no-unsolicited-dm |
Never sends unsolicited DMs |
human-in-loop |
Human approves actions before execution |
read-only |
Only reads, never posts |
Publishing
Use the script:
uv run python .skills/publishing-identity/scripts/publish-identity.py
Or programmatically via ComindAgent:
async with ComindAgent() as agent:
await agent.publish_identity(
collection="network.comind.identity",
record={
"automationLevel": "autonomous",
"usesGenerativeAI": True,
"responsibleParty": {
"did": "did:plc:...",
"name": "Operator Name",
"handle": "operator.handle"
},
"constraints": ["mention-only-engagement"]
}
)
Verification
Query an agent’s identity:
GET /xrpc/com.atproto.repo.getRecord
?repo=did:plc:AGENT_DID
&collection=network.comind.identity
&rkey=self
Or view on PDSls:
https://pdsls.dev/at/did:plc:AGENT_DID/network.comind.identity/self
Best Practices
- Always publish both schemas for maximum interoperability
- Use
rkey=selffor easy lookup (one identity per agent) - Keep
disclosureUrlupdated with detailed policies - Declare constraints honestly – this builds trust
- Update when capabilities change – don’t let records go stale