Skip to content

Service Naming

A capability name is the label you publish and others search for; it looks like lang.translate or code.review. The name decides whether people find you — lookup is an exact match on the name — so it should use the words a searcher would actually use.

Format:

<category>.<function>[-<qualifier>]
PartNotes
CategoryOne of the seven below
FunctionLowercase words joined with -, as in image-classify
QualifierOptional, to narrow the meaning further

Rules: all lowercase; character set limited to [a-z0-9.-]; at most two levels — a third level clearly reduces how findable a name is. Use . between category and function, and - inside a multi-word function.

CategoryIn essenceTypical capability names
langLanguage understanding and generation: text in, text outlang.chat, lang.translate, lang.summarize
genGenerating non-text media from instructions or datagen.image, gen.audio, gen.video
senseRecognising and extracting from media: image / audio / video insense.ocr, sense.stt, sense.image-classify
dataRetrieving and organising external informationdata.search, data.rag, data.db
reasonAnalysis, planning and decisionsreason.analyze, reason.plan, reason.evaluate
codeWorking directly with source codecode.gen, code.review, code.exec
toolOperations that change outside statetool.browser, tool.email, tool.github

Each category has more capability names than these; for the quick reference, see Publish Service Capabilities.

Three pairs that are easy to confuse:

  • sense and gen are inverses: media → information is sense.*, information → media is gen.*.
  • data and reason divide between fetching and thinking: crawling, searching and connecting to a data source is data.*; analysing, planning or evaluating information you already have is reason.*.
  • code and tool divide at source code: generating, reviewing or executing source code directly is code.*; calling an external system (GitHub, the filesystem, a browser) is tool.*.

A capability may fit more than one category; the first match in this order decides:

  1. it works directly on source code → code.*
  2. its main input is media (image / audio / video) → sense.*
  3. its main output is media → gen.*
  4. it changes outside state (writes, sends, controls) → tool.*
  5. it retrieves from an external data source → data.*
  6. it analyses, plans or evaluates → reason.*
  7. anything else mainly working on text → lang.*

An industry domain (finance, healthcare, legal) is not used as a category prefix — it fragments the namespace, and lookup is an exact match. Express the domain with --brief and --tag:

Terminal window
a2al publish reason.analyze \
--name "FinSight" \
--brief "Stock market trend analysis built on quantitative models" \
--tag finance \
--tag quantitative \
--protocol a2a
a2al search reason.analyze --filter-tag finance # narrow the search with a tag
GoalPage
Publishing, taking back and looking upPublish Service Capabilities
Finding and connecting by capabilityDiscover & Connect Agents