Hi @GavinW, welcome to the forum!
You could take a look at the Intake API, which describes the JSON Schema for the events that an agent sends. Once you have the basic C++ agent implemented, you should implement a gRPC Interceptor to start a transaction for each request. If you're familiar with the Go programming language, then you may find apmgrpc useful as a reference for the interceptor.
If you're familiar with another language which we support, it would probably be useful to use another agent as a reference to get you started; they're all open source and on GitHub. We'll be looking at introducing more documentation later to guide agent development.