code: func (s *Server) handleAgentForwardNode(req *ssh.Request, ctx *srv.ServerContext) error {
  	// check if the user's RBAC role allows agent forwarding
  	err := s.authHandlers.CheckAgentForward(ctx)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  
  	// open a channel to the client where the client will serve an agent
  	authChannel, _, err := ctx.Conn.OpenChannel(sshutils.AuthAgentRequest, nil)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  
  	// save the agent in the context so it can be used later
  	ctx.SetAgent(agent.NewClient(authChannel), authChannel)
  
  	// serve an agent on a unix socket on this node
  	err = s.serveAgent(ctx)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  
  	return nil
  }
docs: // handleAgentForwardNode will create a unix socket and serve the agent running
  // on the client on it.