RFC: Agent identity / persona layer — generated per-user, not committed? #661
Replies: 2 comments
|
Thank you for moving this into a discussion, and for such a thoughtful review of the PR. I agree with the central point: a single committed identity set would turn a consumer-facing branding choice into canonical catalog data, while also creating a second roster that could drift from the agents themselves. Generating identities on demand feels like a much better boundary. It keeps the useful part of the idea -- one agent having a coherent, recognizable identity in a UI -- while letting each installer, app, or team decide what that identity should look and sound like. Based on your proposal, I could imagine the implementation taking this shape:
That would make the identity layer closer to a reproducible recipe than a canonical dataset. It also gives new agents a path automatically: once an agent exists in the roster, the next generation run includes it without someone manually updating a second list. I would be happy to reshape the current generator around this model after the direction is agreed. Thanks again for separating the architectural question from the implementation review -- the on-demand/per-user framing is stronger than the original committed-manifest approach. |
Uh oh!
There was an error while loading. Please reload this page.
Opening this to move the discussion from #645 (thanks @Axer-wyh) into the open, where a direction decision belongs.
The proposal (from #645)
An identity layer for the roster: each agent gets a stable display name, a role glyph, a generated 128×128 avatar, and a short fictional persona (
background,memory,hobbies,selfIntroduction). #645 implements it as a committed 4,850-lineagent-identities/glyph-v3.jsoncovering all 218 agents, plus a dependency-free Node generator for the avatars. The work is genuinely careful — no bulk edits to agent files, no committed image output, usesdivisions.jsoncolors.Why this is a direction question, not a merge
The concept has real appeal for UIs — pickers, sidebars, roster cards. But baking one canonical identity set into the repo runs into a core issue:
Each consumer will want their own version. An installer, the desktop app, a sidebar roster, and someone's internal tool will each want different names, art styles, tones, and persona depth (or none at all). There is no single "Juno Chen is the Anthropologist" that's correct for everyone — that's a branding decision that belongs to whoever is building the surface, not to the shared catalog.
That points away from a committed manifest and toward generation: ship the recipe (a deterministic generator that reads the existing
divisions.json+ agent frontmatter), and let each consumer generate the identity set they want, the way we already treatintegrations/output as generated-not-committed.Concretely, a committed manifest also carries costs we've been actively working to remove elsewhere in the repo:
What I'd love input on
My lean: the glyph/avatar + display-metadata idea is worth exploring as a generator that consumers run on demand; the committed fictional personas I'd leave out. But this is exactly the kind of cross-roster call worth deciding together — so, thoughts welcome.
All reactions