Skip to content

feat(agentid): remove org layer - globally unique agent names#287

Merged
zomux merged 1 commit intodevelopfrom
feature/identity_cp
Feb 17, 2026
Merged

feat(agentid): remove org layer - globally unique agent names#287
zomux merged 1 commit intodevelopfrom
feature/identity_cp

Conversation

@zomux
Copy link
Copy Markdown
Contributor

@zomux zomux commented Feb 17, 2026

Summary

  • Agent names become globally unique (like Twitter handles) instead of scoped to an org
  • namespace_type default changed from "org" to "global" in the SDK client
  • All org parameters marked as deprecated across models, client, parser, and CLI
  • CLI --org options flagged as deprecated in help text

Changes

  • agentid/__init__.py — Updated module docstring, removed org from examples
  • agentid/client.py — Default namespace_type="global", deprecated org in docstrings
  • agentid/models.py — All org fields marked "Legacy (deprecated)"
  • agentid/parser.py@org shown as legacy format in docstring
  • cli.py — All --org CLI options marked deprecated

Context

This is Phase 0 of the identity infrastructure simplification. The corresponding backend/frontend changes are in the openagents-web repo.

Test plan

  • Verify openagents agentid register <name> works without --org
  • Verify openagents agentid claim <name> works without --org
  • Verify backward compatibility: --org still accepted but ignored

🤖 Generated with Claude Code

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.
Copilot AI review requested due to automatic review settings February 17, 2026 22:55
@vercel
Copy link
Copy Markdown

vercel bot commented Feb 17, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openagents-studio Building Building Preview, Comment Feb 17, 2026 10:55pm

Request Review

@zomux zomux merged commit f344a37 into develop Feb 17, 2026
8 of 9 checks passed
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_type changed from "org" to "global" in SDK client methods
  • All org parameters 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)."""
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested 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.
"""

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants