feat(agentid): remove org layer - globally unique agent names#287
feat(agentid): remove org layer - globally unique agent names#287
Conversation
Agent names become globally unique identifiers (like Twitter handles). The org parameter is deprecated across the SDK - namespace_type defaults to "global", all org fields marked as legacy, and CLI --org options flagged as deprecated.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This pull request transitions the AgentID system from organization-scoped agent names to globally unique names (like Twitter handles), marking Phase 0 of identity infrastructure simplification. The change deprecates the org parameter throughout the codebase while maintaining backward compatibility for legacy agents.
Changes:
- Default
namespace_typechanged from"org"to"global"in SDK client methods - All
orgparameters marked as deprecated in docstrings across models, client, parser, and CLI - Module documentation updated to reflect globally unique agent naming convention
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
src/openagents/agentid/__init__.py |
Updated module docstring to explain global uniqueness and removed org references from examples |
src/openagents/agentid/parser.py |
Updated docstring to indicate @org suffix is legacy format for backward compatibility |
src/openagents/agentid/models.py |
Marked all org fields as "Legacy (deprecated)" and updated agent name descriptions to "globally unique" |
src/openagents/agentid/client.py |
Changed default namespace_type to "global", added deprecation notes to org parameters in docstrings, removed org from usage examples |
src/openagents/cli.py |
Updated CLI help text to mark --org options as "Legacy organization scope (deprecated)", simplified error message to remove org reference |
Comments suppressed due to low confidence (1)
src/openagents/cli.py:3709
- The PR description test plan mentions testing 'openagents agentid register' command, but this command does not exist in the CLI. The actual command is 'agentid claim' (defined at line 3701). The test plan in the PR description should be corrected to only reference the 'claim' command.
@agentid_app.command("claim")
def agentid_claim(
agent_name: str = typer.Argument(..., help="Agent name to claim"),
key: str = typer.Option(..., "--key", "-k", help="Path to public key PEM file"),
org: Optional[str] = typer.Option(None, "--org", "-o", help="Legacy organization scope (deprecated)"),
api_key: Optional[str] = typer.Option(None, "--api-key", "-a", help="API key for authentication"),
save_cert: Optional[str] = typer.Option(None, "--save-cert", "-c", help="Path to save the issued certificate"),
):
"""📝 Claim/register a new Agent ID"""
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| namespace_type: str = "org", | ||
| namespace_type: str = "global", | ||
| ) -> ClaimResponse: | ||
| """Claim/register a new agent ID (sync version).""" |
There was a problem hiding this comment.
The sync wrapper's docstring should be enhanced with comprehensive documentation about agent names being globally unique and deprecation information for parameters, similar to the async version's detailed docstring at lines 426-439. Currently it only says "(sync version)" which is insufficient for such an important API change.
| """Claim/register a new agent ID (sync version).""" | |
| """ | |
| Claim/register a new agent ID (sync version). | |
| This is the synchronous wrapper around :meth:`claim_agent_id_async`. | |
| Agent names are *globally unique* within AgentID. Attempting to claim a name | |
| that is already registered will fail. | |
| Args: | |
| agent_name: Globally unique agent name to claim/register. This replaces | |
| legacy organization-scoped names. | |
| public_key_pem: PEM-encoded public key for the agent. This key will be | |
| associated with the claimed agent ID. | |
| org: Deprecated. Legacy organization scope used by older versions of the | |
| API. This parameter will be removed in a future release. Prefer using | |
| globally unique ``agent_name`` values together with ``namespace_type``. | |
| api_key: Deprecated. Legacy API key used for older authentication flows. | |
| This parameter will be removed in a future release and should not be | |
| relied on by new integrations. | |
| namespace_type: Namespace in which to register the agent name. The | |
| recommended and default value is ``"global"``. Other values are kept | |
| only for backwards compatibility and may be removed or changed in | |
| future versions. | |
| Returns: | |
| ClaimResponse: Details of the claimed/registered agent ID. | |
| """ |
Summary
namespace_typedefault changed from"org"to"global"in the SDK clientorgparameters marked as deprecated across models, client, parser, and CLI--orgoptions flagged as deprecated in help textChanges
agentid/__init__.py— Updated module docstring, removed org from examplesagentid/client.py— Defaultnamespace_type="global", deprecated org in docstringsagentid/models.py— All org fields marked "Legacy (deprecated)"agentid/parser.py—@orgshown as legacy format in docstringcli.py— All--orgCLI options marked deprecatedContext
This is Phase 0 of the identity infrastructure simplification. The corresponding backend/frontend changes are in the openagents-web repo.
Test plan
openagents agentid register <name>works without--orgopenagents agentid claim <name>works without--org--orgstill accepted but ignored🤖 Generated with Claude Code