feat(rust,python,typescript): unique agent names with upsert-by-name#79
Merged
feat(rust,python,typescript): unique agent names with upsert-by-name#79
Conversation
Agent `name` is now the unique addressable slug (e.g. "customer-support"), matching the harness naming pattern. New `display_name` field provides the human-readable label for UI (falls back to `name`). Changes across all three SDKs: - validate_agent_name() with shared addressable-name validation logic - display_name field on Agent and CreateAgentRequest - apply_by_name() / applyByName() for upsert-by-name semantics - Client-side name validation on create/apply methods - Updated OpenAPI spec to latest upstream https://claude.ai/code/session_01NzGMP8Fx97UXhp91bZNsmf
…yle agent names
Agent name is now a unique addressable slug. Update all examples and
cookbooks from display-style names ("Dad Jokes Bot") to slug-style
("dad-jokes-bot").
https://claude.ai/code/session_01NzGMP8Fx97UXhp91bZNsmf
Switch examples and cookbooks from create() to apply_by_name() / applyByName() for idempotent CI runs. With unique agent names, repeated create() calls fail on name conflicts. https://claude.ai/code/session_01NzGMP8Fx97UXhp91bZNsmf
…xamples Agent delete is an archive — archived agents still hold the unique name. Sequential CI runs across languages (Rust → Python → TypeScript) would conflict on shared names like "example-assistant". Suffix with language tag (-rs, -py, -ts) to avoid name collisions. Also revert to create() since POST /v1/agents does not support upsert-by-name yet (server has the method but it's not wired to the REST endpoint). https://claude.ai/code/session_01NzGMP8Fx97UXhp91bZNsmf
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
nameis now a unique addressable slug ([a-z0-9]+(-[a-z0-9]+)*, max 64 chars), matching the harness naming pattern. Newdisplay_namefield provides a human-readable UI label (falls back toname).validate_agent_name()with shared addressable-name validation logic across all three SDKs, andapply_by_name()/applyByName()for upsert-by-name semantics.Test Plan
just pre-pushgreen)Checklist