Agent and Federation AIService
Understand the model ownership boundary between Agent, Downcity, City, and AIService, and how to use them together
If you are using Agent inside a normal Downcity project, the model usually should not be owned directly by the Agent project.
Split responsibilities across four layers:
Federation AIService: owns the model catalog, AIChannels, API keys, and model routingDowncity: connects to City, reads the catalog, validates and resolvesmodelIdAgent project: stores onlyexecution.modelId@downcity/agentsession: actually executes prompts
The most important takeaway
In Downcity integration mode:
- the CLI global database stores a
modelId - not AIChannel config
- not API keys
- not a local model instance
The right mental model is:
global downcity.db: agent.execution.modelId
-> Downcity reads and validates it
-> City SDK creates an executable CityModel
-> Agent calls CityModel.stream() through Downcity Model Protocol
-> Federation AIService routes to the AIChannel and upstream protocol