Meta: Technical questions to resolve
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Questions
Do we need to send YAML to Duo Workflow Service or just an identifier?
If the agents are defined as regular flows in Flow Registry, and we want to execute as a flow, we should be able to invoke the execution by naming the flow directly, rather than sending all the YAML back through the gRPC API to invoke it.
However, if the agents are NOT defined as flows in Flow Registry, OR, if Custom Agent Selection can only work through sending YAML via gPC call, we will need to persist the agent YAML definitions (can be in Redis) and send them back to Duo Workflow Service as YAML when we invoke them.
If we need to send YAML, then can it be shipped simply as fixtures within Rails?
If they need to be full YAML definitions we send back, we could just ship GitLab with YAML fixtures of the data, the sync working would be syncing from those YAML fixtures, and the sync worker could run more often.
Question: Versionable or versionless?
These agents could either be versionless and always operating from the latest version in Flow Registry. This would mean they would not be version pinnable when we come to do versioning.
If we did want to support versioned agents, we would need to persist the definitions in PostgreSQL as we sync to be able to support a versioning logic like: Any change to the Flow Registry version
is a major bump. Any change to the agent definition within the same Flow Registry version
is a minor bump.
It feels, at this point, on balance, versionless might be simpler and be something customers would be okay with. It would mean, for example, that if GitLab adds a tool to an agent then suddenly the agents are all capable of new tool use. However, we could argue that’s the trust one puts in GitLab-created things. They could also copy agents to their own project to version pin to a specific version.
We can start with versionless, and then we can still switch to a versioned system later if we decide.